QQ木马分析.docx
- 文档编号:13133160
- 上传时间:2023-06-11
- 格式:DOCX
- 页数:24
- 大小:32.79KB
QQ木马分析.docx
《QQ木马分析.docx》由会员分享,可在线阅读,更多相关《QQ木马分析.docx(24页珍藏版)》请在冰点文库上搜索。
QQ木马分析
那天晚上在群里和backer下载一端口扫描器(一看就知道是qq木马),我们把它反汇编把其中的盗qq的邮箱给弄出来了。
下面抽工作之余我对这个家伙进行了详细的分析:
由于当时没有装虚拟器,就拿自己的笔记本做实验台了。
用peid查壳发现是FSG的一个变形的壳,只能手工脱了,用OD载入,脱壳的具体细节我也不说了,因为在我脱的过程中一不小心给运行了,发现界面确实是个扫描器,于是看了看我的临时目录下多出两个文件:
端口扫描器.exe和muma.exe看来这是个捆绑机啊。
也不用脱了muma.exe出来了。
再用peid查壳发现是UPX的一个变形壳。
载入OD手动脱掉之后(脱壳我就不分析了),脱出来的我们叫upack.exe吧。
用Ultraedit把它们都打开会发现muma.exe最后有一些加密的字符串,脱壳后的upack.exe里就没有。
把这些字串复制到upack.exe的结尾(注意要复制的刚好到位。
可能有人会问:
你怎么知道的呢。
我一开始的时候也没有复制,在跟踪的时候发现此程序在读自身,就察觉有问题)。
如果不复制的话带壳调也行。
下面开始真正的分析这个程序了:
0040507E 50 push eax
0040507F 6A 00 push 0
00405081 68 01001F00 push 1F0001
00405086 E8 65EBFFFF call
0040508B 85C0 test eax, eax
0040508D 75 13 jnz short 004050A2
一开始先检查互斥(判断程序运行是否唯一),由于我的机子已经中了这个木马了,需要改一下跳转。
0040508D 75 13 je short 004050A2
不然的话就自己动退出了。
004050D0 A1 C0604000 mov eax, dword ptr [4060C0] 把"ExeMutex_QQRobber2.0"给eax
004050D5 E8 1AE3FFFF call 004033F4 判断上面的字符串有没有
004050DA 50 push eax
004050DB 6A 00 push 0
004050DD 6A 00 push 0
004050DF E8 9CEAFFFF call 00403B80 以"ExeMutex_QQRobber2.0"创建互斥
看一下call 00403B80这个函数里面:
00403B80 55 push ebp
00403B81 8BEC mov ebp, esp
00403B83 8B45 10 mov eax, dword ptr [ebp+10]
00403B86 50 push eax
00403B87 837D 0C 01 cmp dword ptr [ebp+C], 1
00403B8B 1BC0 sbb eax, eax
00403B8D 40 inc eax
00403B8E 83E0 7F and eax, 7F
00403B91 50 push eax
00403B92 8B45 08 mov eax, dword ptr [ebp+8]
00403B95 50 push eax
00403B96 E8 DDFFFFFF call
00403B9B 5D pop ebp
00403B9C C2 0C00 retn 0C
创建了一个互斥
下面呢
004050E9 E8 16EEFFFF call 00403F04
到这个函数里去:
00403F25 E8 FAF5FFFF call 00403524
00403F2A 6A 32 push 32
00403F2C 8BC3 mov eax, ebx
00403F2E E8 19F5FFFF call 0040344C
00403F33 50 push eax
00403F34 E8 97FCFFFF call
00403F39 8D45 FC lea eax, dword ptr [ebp-4]
00403F3C E8 D7FEFFFF call 00403E18
得到系统目录,我的是:
C:
\windows(再往下看就知道为什么了)
看00403F3C E8 D7FEFFFF call 00403E18
里得到C:
\的具体信息,(推测是判断一下这个C:
\盘是否存在)
现在有了C:
\这个系统盘符了
00403F73 E8 3CF3FFFF call 004032B4
00403F78 EB 27 jmp short 00403FA1
在程序里有内置了一个目录是:
\Program Files\Common Files\Microsoft Shared\MSInfo
call 004032B4就是把C和上面的字串接起来
004050E9 E8 16EEFFFF call 00403F04
004050EE 8B55 EC mov edx, dword ptr [ebp-14]
004050F1 B8 B0764000 mov eax, 004076B0
004050F6 E8 05E0FFFF call 00403100
004050FB A1 B0764000 mov eax, dword ptr [4076B0]
00405100 E8 EFE2FFFF call 004033F4
上面的函数是通过一些算法随机算出一个dll文件名,我机子上是E83B4A4D.dll然后和上面的字串接起来成为:
C:
\Program Files\Common Files\Microsoft Shared\MSInfo\E83B4A4D.dll
00405105 8BD8 mov ebx, eax
00405107 53 push ebx 得到C:
\Program Files\Common Files\Microsoft Shared\MSInfo\E83B4A4D.dll的属性
00405108 E8 ABEAFFFF call
0040510D 83F8 FF cmp eax, -1 比较是否失败
这个程序判断一个文件是否存在用的不是FindFirstFile是GetFileAttributes函数,意思是如果得不到此文件的属性就认为它不存在
00405110 /74 0E je short 00405120
00405112 |6A 00 push 0
00405114 |53 push ebx
00405115 |E8 EEEAFFFF call
0040511A |53 push ebx
0040511B |E8 80EAFFFF call
00405120 \8D55 E4 lea edx, dword ptr [ebp-1C]
如果存在呢,设置文件的属性为正常,然后把它删掉
继续往下看这个00405125 E8 62D5FFFF call 0040268C
里面是:
004026A4 68 05010000 push 105
004026A9 8D4424 04 lea eax, dword ptr [esp+4]
004026AD 50 push eax
004026AE 6A 00 push 0
004026B0 E8 AFE9FFFF call
004026B5 8BC8 mov ecx, eax
得到自己程序和路径:
我的是C:
\Documents and Settings\javafish\Desktop\MSInfo\upack.exe
返回看00405130 E8 AFF7FFFF call 004048E4
里面:
00404927 6A 00 push 0
00404929 68 80000000 push 80
0040492E 6A 03 push 3
00404930 6A 00 push 0
00404932 6A 01 push 1
00404934 68 00000080 push 80000000
00404939 8B45 FC mov eax, dword ptr [ebp-4]
0040493C E8 B3EAFFFF call 004033F4
00404941 50 push eax
00404942 E8 29F2FFFF call
开始操作程序本身了
下面00404962 E8 A9F2FFFF call
调整好文件指针开始读自身的程序了
一直到:
004049EC 50 push eax
004049ED 56 push esi
004049EE E8 05F2FFFF call
HN <\HN @\HN 紧接着004049F9 E8 AAFCFFFF call 004046A8 对加密信息进行解密,大部分是解密算法,一直往下跟: 004047CA 3B75 F4 cmp esi, dword ptr [ebp-C] 004047CD ^ 0F8C 47FFFFFF jl 0040471A 木马配置信息是加密过的,以上是解密配置信息 004047D3 8D45 E0 lea eax, dword ptr [ebp-20] [ebp-20]处显示配置信息的明文 看看解密出来的明文吧: huwan520@ huwan520 100200520 huwan520@1 500 1 1 1 1 1 .u@. 根据经验可以看出邮件服务器为 收件箱为 huwan520@ Smtp服务器的用户名为huwan520,密码为: 100200520 登陆一下是可以进去的,里面有六百多个qq,木马传播者的信息呢(现在已改)。 继续分析: 一直跟到 00404CDA 8BD8 mov ebx, eax 以上在做字符串操作,把各个配置信息提取出来 会发现程序一直在做字串的拆解工作。 等函数都返回跟到: 00405138 50 push eax 00405139 6A 01 push 1 0040513B 8BCB mov ecx, ebx 0040513D BA 0C534000 mov edx, 0040530C ASCII "DATEINFO" 00405142 B8 0A000000 mov eax, 0A 00405147 E8 2CFCFFFF call 00404D78 发现在调用可疑的函数call 00404D78(为什么可疑呢: 上面那个字串"DATEINFO"的原因) 进去看看: 00404D96 55 push ebp 00404D97 68 F64E4000 push 00404EF6 00404D9C 64: FF30 push dword ptr fs: [eax] 00404D9F 64: 8920 mov dword ptr fs: [eax], esp 00404DA2 C645 FF 00 mov byte ptr [ebp-1], 0 00404DA6 56 push esi 00404DA7 57 push edi 00404DA8 A1 50764000 mov eax, dword ptr [407650] 00404DAD 50 push eax 00404DAE E8 F5EDFFFF call 它在加载资源,而资源的名称恰恰为: "DATEINFO" 以下的 00404DC4 E8 17EEFFFF call 00404DD4 E8 0FEEFFFF call 为取出资源来作准备 00404DEC 6A 00 push 0 00404DEE 6A 06 push 6 00404DF0 6A 02 push 2 00404DF2 6A 00 push 0 00404DF4 6A 00 push 0 00404DF6 68 000000C0 push C0000000 00404DFB 53 push ebx 00404DFC E8 6FEDFFFF call \PROGRAM FILES\COMMONS FILE\.... ―――真正的释放了 00404E2C E8 E7EDFFFF call 取得资源大小 00404E3F E8 E4EDFFFF call 写入文件,此文件正是: C: \Program Files\Common Files\Microsoft Shared\MSInfo\E83B4A4D.dll 还没完: 00404E69 50 push eax 00404E6A 56 push esi 00404E6B 8D45 0C lea eax, dword ptr [ebp+C] 00404E6E E8 D9E5FFFF call 0040344C 00404E73 50 push eax 00404E74 53 push ebx 00404E75 E8 AEEDFFFF call 最后FreeResouce收尾 函数返回接着 0040514C 6A 07 push 7 0040514E 53 push ebx 0040514F E8 B4EAFFFF call \Program Files\Common Files\Microsoft Shared\MSInfo\E83B4A4D.dll改为隐藏属性 下面注册dll为COM可以自启动 00405156 E8 15F2FFFF call 00404370 注册dll为Com 这个函数里用的都是注册表的操作 接下来 0040515E E8 75EEFFFF call 00403FD8 00405163 8B45 E0 mov eax, dword ptr [ebp-20] 00405166 E8 89E2FFFF call 004033F4 上面用一开始程序得到C: \Program Files\Common Files\Microsoft Shared\MSInfo\E83B4A4D.dll的方法得到一个C: \Program Files\Common Files\Microsoft Shared\MSINFO\E83B4A4D.dat的文件。 0040516B 50 push eax 0040516C E8 47EAFFFF call 再用GetFileAttributes函数判断C: \Program Files\Common Files\Microsoft Shared\MSINFO\E83B4A4D.dat是否存在,存在就删除 然后: 004051B6 50 push eax 004051B7 8D55 D0 lea edx, dword ptr [ebp-30] 004051BA 33C0 xor eax, eax 004051BC E8 CBD4FFFF call 0040268C 004051C1 8B45 D0 mov eax, dword ptr [ebp-30] 004051C4 E8 2BE2FFFF call 004033F4 004051C9 50 push eax 004051CA E8 99E9FFFF call 并设置属性为系统文件,让一般人都看不到 004051EA E8 B9F0FFFF call 004042A8//函数里得到系统目录 004051EF 8B55 C8 mov edx, dword ptr [ebp-38] 004051F2 B8 B4764000 mov eax, 004076B4 004051F7 B9 20534000 mov ecx, 00405320 ASCII "Help\wshmcepts.chm" 把系统目录和Help\wshmcepts.chm拼接成C: \windows\Help\wshmcepts.chm 同样的方法用 0040520E E8 A5E9FFFF call \windows\help\wshmcepts.chm 00405226 6A FF
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- QQ 木马 分析
![提示](https://static.bingdoc.com/images/bang_tan.gif)