首页
社区
课程
招聘
[原创]一个木马简单分析
发表于: 2012-5-18 19:08 8305

[原创]一个木马简单分析

2012-5-18 19:08
8305

昨天在天空软件下载了一个ftp上传软件...结果是捆绑马的!!由此就有了这篇文章

程序运行之后会在system32下生成两个文件 程序默认是隐藏属性
Windows目录下生成一个ini文件
C:\WINDOWS\shell.ini
C:\WINDOWS\system32\svehost.exe
C:\WINDOWS\system32\Deleteme.bat
生成的文件是一个syn发包工具
连接的域名是:3ghvck.3322.org
有自删除  添加启动项
Bat里面的内容
:try
del "C:\Documents and Settings\Administrator\桌面\Shell32.exe"
if exist "C:\Documents and Settings\Administrator\桌面\Shell32.exe" goto try
del %0
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]添加
启动项"Shell32.exe"="C:\\WINDOWS\\system32\\Shell32.exe"

入口:
00409400 >/$  55            push ebp
00409401  |.  8BEC          mov ebp,esp
00409403  |.  B9 0B000000   mov ecx,0B                               ;  ecx = 11
00409408  |>  6A 00         /push 0
0040940A  |.  6A 00         |push 0
0040940C  |.  49            |dec ecx                                 ;  ecx做计数器
0040940D  |.^ 75 F9         \jnz short Shell32.00409408

这里读取system32的完整路径
0040942E  |.  E8 39FCFFFF   call Shell32.0040906C
00409433  |.  8BD8          mov ebx,eax
00409435  |.  68 04010000   push 104                                 ; /取system32完整目录路径返回长度为19
0040943A  |.  53            push ebx                                 ; |文本类型,缓冲区
0040943B  |.  E8 00B9FFFF   call <jmp.&kernel32.GetSystemDirectoryA> ; \GetSystemDirectoryA
00409440  |.  8D55 EC       lea edx,dword ptr ss:[ebp-14]
00409443  |.  8BC3          mov eax,ebx                              ;  eax就是system32的完整路劲

00409457  |.  E8 90AAFFFF   call Shell32.00403EEC                    ;  读取文件相关信息返回为1表示存在
0040945C  |.  8D45 E8       lea eax,dword ptr ss:[ebp-18]
0040945F  |.  BA D4964000   mov edx,Shell32.004096D4                 ;  ASCII "svehost.exe"
00409464  |.  E8 9FA9FFFF   call Shell32.00403E08                    ;  生成的文件名

0040948F  |.  68 E8030000   push 3E8                                 ; /Timeout = 1000. ms
00409494  |.  E8 B7EBFFFF   call <jmp.&kernel32.Sleep>               ; \Sleep

C:\WINDOWS\system32\svehost.exe

0040949C  |.  B9 E8964000   mov ecx,Shell32.004096E8                 ;  ASCII "svehost.exe"
004094A1  |.  8B15 F0B74000 mov edx,dword ptr ds:[40B7F0]
004094A7  |.  E8 40AAFFFF   call Shell32.00403EEC                    ;  拼接system32和svehost.exe

00409504  |.  50            push eax                                 ;  读取到的文件路径
00409505  |.  8D45 CC       lea eax,dword ptr ss:[ebp-34]
00409508  |.  B9 FC964000   mov ecx,Shell32.004096FC                 ;  ASCII "Shell32.exe"
0040950D  |.  8B15 F0B74000 mov edx,dword ptr ds:[40B7F0]
00409513  |.  E8 D4A9FFFF   call Shell32.00403EEC                    ;  copyshell32.exe到system32下
00409518  |.  8B55 CC       mov edx,dword ptr ss:[ebp-34]
0040951B  |.  58            pop eax
0040951C  |.  E8 CBAAFFFF   call Shell32.00403FEC                    ;  system32目录长度
00409521  |.  0F84 9F000000 je Shell32.004095C6
00409527  |.  6A FF         push -1
00409529  |.  8D45 C8       lea eax,dword ptr ss:[ebp-38]            ;  ebp-38栈地址给eax
0040952C  |.  B9 FC964000   mov ecx,Shell32.004096FC                 ;  ASCII "Shell32.exe"
00409531  |.  8B15 F0B74000 mov edx,dword ptr ds:[40B7F0]            ;  edx就是system32根目录
00409537  |.  E8 B0A9FFFF   call Shell32.00403EEC                    ;  返回shell32.exe的长度为
0040953C  |.  8B45 C8       mov eax,dword ptr ss:[ebp-38]            ;  这里返回shell32文件的完整路径
0040953F  |.  E8 5CABFFFF   call Shell32.004040A0                    ;  再一次读取shell32.exe的完整路径
00409544  |.  50            push eax                                 ;  shell32的完整路径入栈

如果文件不存在的话就开始copy
0040954F  |.  8B45 C4       mov eax,dword ptr ss:[ebp-3C]
00409552  |.  E8 49ABFFFF   call Shell32.004040A0
00409557  |.  50            push eax                                 ; |ExistingFileName
00409558  |.  E8 3BB7FFFF   call <jmp.&kernel32.CopyFileA>           ; \CopyFileA
0040955D  |.  8D45 BC       lea eax,dword ptr ss:[ebp-44]
00409560  |.  B9 FC964000   mov ecx,Shell32.004096FC                 ;  ASCII "Shell32.exe"

004095C9  |.  BA 08974000   mov edx,Shell32.00409708                 ;  ASCII "c:\windows\shell.ini"
004095CE  |.  E8 35A8FFFF   call Shell32.00403E08                    ;  这里就是生存ini文件的一些信息
004095D3  |.  8B4D B4       mov ecx,dword ptr ss:[ebp-4C]
004095D6  |.  BA 28974000   mov edx,Shell32.00409728                 ;  ASCII "INI"
004095DB  |.  B8 34974000   mov eax,Shell32.00409734                 ;  ASCII "FILE"
004095E0  |.  E8 77FBFFFF   call Shell32.0040915C
004095E5  |.  84C0          test al,al
004095E7  |.  74 5E         je short Shell32.00409647
004095E9  |.  8D45 AC       lea eax,dword ptr ss:[ebp-54]
004095EC  |.  B9 E8964000   mov ecx,Shell32.004096E8                 ;  ASCII "svehost.exe"

调用winexec函数
sevehost.exe在dos下运行的命令行参数
00409626  |.  8D45 A8       lea eax,dword ptr ss:[ebp-58]
00409629  |.  B9 E8964000   mov ecx,Shell32.004096E8                 ;  ASCII "svehost.exe"
0040962E  |.  8B15 F0B74000 mov edx,dword ptr ds:[40B7F0]
00409634  |.  E8 B3A8FFFF   call Shell32.00403EEC
00409639  |.  8B45 A8       mov eax,dword ptr ss:[ebp-58]
0040963C  |.  E8 5FAAFFFF   call Shell32.004040A0
00409641  |.  50            push eax                                 ; |CmdLine
00409642  |.  E8 51B7FFFF   call <jmp.&kernel32.WinExec>             ; \WinExec

附件中是那个样本和我分析IDB文件

到这里就大概的分析的完了...第一次分析病毒..希望大家多多指教! 后续...


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 6
支持
分享
最新回复 (7)
雪    币: 1689
活跃值: (379)
能力值: ( LV15,RANK:440 )
在线值:
发帖
回帖
粉丝
2
沙发,多谢LZ的分享,一起学习。
2012-5-18 19:09
0
雪    币: 183
活跃值: (55)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
呵呵....分析的很烂,不要见笑,还需要继续学习!!
2012-5-18 21:55
0
雪    币: 16
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
感谢大侠 呵呵
2012-5-18 22:27
0
雪    币: 239
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
感谢分享,学习了
2012-5-18 22:53
0
雪    币: 434
活跃值: (72)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
估计还没下下来,就被卡擦了!!!!!!!!
2012-5-18 23:01
0
雪    币: 403
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
下载下来看了一下,很多函数的作用看的还不是很明白
看来我的逆向功力差的还很远啊   
连接那个域名的端口是7788吗?
2012-5-23 22:34
0
雪    币: 1024
活跃值: (240)
能力值: ( LV12,RANK:310 )
在线值:
发帖
回帖
粉丝
8
又见3322.org
2012-5-24 00:29
0
游客
登录 | 注册 方可回帖
返回
//