【本文仅为学习和交流,切勿用作非法攻击 ,参与非法攻击与笔者无关 !!!】
本次主要是对恶意代码分析实战中的Lab21-02.exe进行逆向,选择该exe原因一个是病毒后门常用到其次在一些免杀场景中也有类似手法。也是刚入门的逆向,难免出错,大佬勿喷
首先查壳
1、是否有加壳
2、版本信息
3、输入表
4、资源信息
IDA静态分析(x86)
1、F5 直接分析伪代码
2、分析的内容进行注释 方便分析查看
建议开启该功能 可以跟地址进行相互对照分析
1、通过LoadLibraryA加载DLL获取各个模块
2、判断当前系统版本(x64/x86)
3、下一步重点分析sub_401000()函数
if ( !sub_401000("X64DLL", "Lab21-02x.dll"))
exit(0);
if ( !sub_401000("X64", "Lab21-02x.exe"))
exit(0);
本质就是加载资源 申请内存空间 将获取的资源写入到dll、exe
x64的主要是利用Lab21-02x.exe来执行Lab21-02x.dll
x86的sub_401000("X86", "Lab21-02.dll")就是写入dll
sub_401130()主要是令牌窃取 提升权限
1、该循环主要是遍历进程与explorer.exe进程是否匹配
2、主要实现的函数在sub_4011A0()中
1、OpenProcess打开进程
2、VirtualAllocEx申请内存
3、WriteProcessMemory写入内存
4、GetProcAddress(v14, "LoadLibraryA")获取LoadLibraryA函数
5、CrateRemoteThread创建线程
资源分析(x64)
1、由于本机是x64的 通过IDA分析的资源获取进行手动Dump
"X64DLL", "Lab21-02x.dll"
"X64", "Lab21-02x.exe"
1、Lab21-02x.exe分析 基本跟上面一致 将dll注入到explorer.exe进程中
2、需要注意dll写入的位置在C:\Windows\SysWOW64\Lab21-02x.dll
Lab21-02x.dll进行分析创建线程 主要对sub_180001030函数分析
StartAddress函数进行分析主要就是弹窗MessageBox
动态分析x64
1、主要对Lab21-02x.exe进行分析 x64
2、可以看到dll的具体位置写入
call lab21-02x.7FF70E101090 //调用sub_140001090函数判断是否与explorer.exe相等返回1
mov r12d,eax //将eax赋值给r12d
cmp r12d,1 //r12d与1比较
jne lab21-02x.7FF70E101290 //检测ZF=0
1、更改EAX为1 使ZF=1
2、jne lab21-02x.7FF70E101290不跳转继续向下执行
3、可以通过F8不断遍历最后也可以继续向下执行
1、CreateRemoteThread函数在内存中找到加载的DLL名称及位置
1、通过火绒剑可清晰看到DLL已被加载成功且成功执行
原文始发于微信公众号(弱口令验证机器人):小记一次逆向分析
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论