行业解决方案查看所有行业解决方案
IDA 用于解决软件行业的关键问题。
发布时间:2022-10-09 14: 28: 12
本文首发在Freebuf,作者为蚁景科技,其主营业务是网络安全人才教育培养。详细的介绍了使用IDA和OD进行调试分析,针对分析D盾检查账号克隆功能,希望对关注网络安全和金融保险领域的人有所帮助。

D盾(IIS防火墙)是一款主动防御类保护软件,以内外保护的方式防止网站和服务器被入侵,在正常运行各类网站的情况下,越少功能服务器越安全的理念而设计。D盾有一项功能是账号克隆:

一、初步分析
我们进一步通过StudyPe查看,能发现其使用了NetUserEnum相关的函数,如下图:

这里通过查看微软官方的相关案例,也就是以下的链接:https://docs.microsoft.com/zh-cn/windows/desktop/api/lmaccess/nf-lmaccess-netuserenum
我们可以大致知道这些函数是怎么使用的。
二、OD调试
接下来,我们试着用OD调试,按ctrl+g输入NetUserEnum,如下图:

按F2下断点:

再按F9运行,点击D盾克隆账号检测,如下图:

此时能看到OD命中断点,我们需要记录返回地址:

三、IDA配合
接下来我们需要使用IDA,打开并按下快捷键G,输入地址:0051158B

移动并往上查找,查看函数头,地址为5114A4:

此时需要分析sub_5114A4函数:

//32此结构在系统有异常的情况下NetUserEnum将失败返回2221状态值
typedefstruct _USER_INFO_3{
LPWSTR usri3_name;0
LPWSTR usri3_password;4
DWORD usri3_password_age;8
DWORD usri3_priv;C
LPWSTR usri3_home_dir;10
LPWSTR usri3_comment;14
DWORD usri3_flags;18
LPWSTR usri3_script_path;1C
DWORD usri3_auth_flags;20
LPWSTR usri3_full_name;24
LPWSTR usri3_usr_comment;28
LPWSTR usri3_parms;2C
LPWSTR usri3_workstations;30
DWORD usri3_last_logon;34
DWORD usri3_last_logoff;38
DWORD usri3_acct_expires;3C
DWORD usri3_max_storage;40
DWORD usri3_units_per_week;44
PBYTE usri3_logon_hours;48
DWORD usri3_bad_pw_count;4C
DWORD usri3_num_logons;50
LPWSTR usri3_logon_server;54
DWORD usri3_country_code;58
DWORD usri3_code_page;5C
DWORD usri3_user_id;60
DWORD usri3_primary_group_id;64
LPWSTR usri3_profile;68
LPWSTR usri3_home_dir_drive;6C
DWORD usri3_password_expired;70
}USER_INFO_3,*PUSER_INFO_3,*LPUSER_INFO_3;

再来看一下权限问题:



接下来,读取F值:


F值二进制流30h偏移是关联的user_id:


我们通过搜索,发现了F值的含义:
http://www.beginningtoseethelight.org/ntsecurity/index.htm

以及关键字符串:


三、进一步分析
通过以上OD和IDA的一系列调试操作,我们想要的检测逻辑相比较就比较清楚:

通过逆向的分析,利用OD和IDA配合调试分析,我们挖掘和学习了D盾判断账号克隆功能实现的逻辑。
原文声明:笔者初衷用于分享与普及网络知识,若读者因此作出任何危害网络安全行为后果自负,与合天智汇及原作者无关,如需转载,请注明出处。
原文链接:https://www.freebuf.com/articles/network/205094.html
展开阅读全文
︾
读者也喜欢这些内容:
IDA C反编译怎么看指针结构体 IDA C反编译结构体怎么重建字段
在IDA里看C反编译结果时,结构体相关内容之所以会显得乱,很多时候不是反编译器完全看不出来,而是当前变量还停留在无类型指针、整数偏移或不完整联合体的状态。Hex-Rays官方文档明确提到,Set type可以显著改变输出结果并减少多余强转;反过来,如果对象还是void指针或类型信息不足,反编译结果的可读性就会明显下降。...
阅读全文 >
IDA Pro着色规则怎么设置 IDA Pro着色突然失效怎么恢复
IDA Pro的着色不止一种表现形式,既包含界面主题与反汇编列表的配色,也包含高亮、行级标记、图模式节点染色,甚至还能影响伪代码窗口的显示效果。很多人觉得着色像是偏好设置,其实它更像审计辅助工具,配得好能让关键分支、可疑调用、关注变量一眼就跳出来。下面按可复用的配置动作讲清楚怎么设,以及突然失效时怎么用最小代价恢复。...
阅读全文 >
ida设置断点怎么运行 ida断点在键盘上的使用方法
在使用IDA pro进行逆向分析的过程中,断点设置是最基础也是最常用的调试手段之一。尤其是在处理复杂的汇编逻辑或定位关键执行点时,合理地设置并运行断点,能够极大提升分析效率与准确度。本文将围绕ida设置断点怎么运行,ida断点在键盘上的使用方法两个关键问题展开,详细介绍IDA pro中的断点操作方式、快捷键使用逻辑及其在多架构平台上的适配特性,帮助用户在实战中更加高效掌控IDA pro的调试能力。...
阅读全文 >
IDA Pro怎么做嵌入式开发 IDA Pro如何分析固件
IDA Pro 是一款不可或缺的反汇编和逆向工程工具。它能够帮助开发者深入理解嵌入式固件中的函数逻辑、通信协议和潜在漏洞。那么,IDA Pro怎么做嵌入式开发? 如何分析嵌入式固件?本文将围绕“IDA Pro怎么做嵌入式开发”和“IDA Pro如何分析固件”两个主题,讲解操作步骤。...
阅读全文 >