菜鸟第一次分析病毒(下载者木马)
本帖最后由 kangkai 于 2013-8-22 15:29 编辑//Author: kangkai
//Date: 2013年8月22日
//Email: jxpenghu@sohu.com
文件: C:\Users\jiandun\Desktop\52\下载者.exe
大小: 32768 字节
文件版本: 10,1,53,64
修改时间: 2013年8月12日, 3:18:08
壳信息:无壳
MD5:00A037ED711FB8266DC213F24A5781A0
SHA1:F6DFE8A29EF2CE68572C11DB437E99CF82C1812B
CRC32:7763383B
00401260|. 50 push eax ; /Buffer
00401261|.6804010000 push 0x104 ; |BufSize = 104(260.)
00401266|. FF15 3C304000 call dword ptr ds:[<&KERNEL32.GetTempPa>;\GetTempPathA
0040126C|. 8D85 CCFDFFFF lea eax,
00401272|. 50 push eax ; /TempName
00401273|. 53 push ebx ; |Unique
00401274|. 8D85 C8FCFFFF lea eax, ; |
0040127A|.6808404000 push 00a037ed.00404008 ; |Prefix = "~dat"
0040127F|. 50 push eax ; |Path
00401280|. FF15 38304000 call dword ptr ds:[<&KERNEL32.GetTempFi>;\GetTempFileNameA
00401286|. 8D85 CCFDFFFF lea eax,
0040128C|.6A01 push 0x1 ; /Flags =REPLACE_EXISTING
0040128E|. 50 push eax ; |NewName@willJ
0040128F|. 56 push esi ; |ExistingName ="C:\Documents and Settings\Administrator\桌面\00a037ed711fb8266dc213f24a5781a0.exe"
00401290|. FF15 34304000 call dword ptr ds:[<&KERNEL32.MoveFileE>;\MoveFileExA
获取Temp路径,并生成临时文件,移动自身
0040128C |.6A 01 push 0x1 ; /Flags =REPLACE_EXISTING
0040128E |.50 push eax ; |NewName
0040128F |.56 push esi ; |ExistingName
00401290 |.FF15 34304000 call dword ptrds:[<&KERNEL32.>; \MoveFileExA
00401296 |.6A 01 push 0x1 ; /FailIfExists = TRUE
00401298 |.8D85 CCFDFFFF leaeax, ; |
0040129E |.56 push esi ; |NewFileName
0040129F |.50 push eax ; |ExistingFileName
004012A0 |.FF15 30304000 call dword ptrds:[<&KERNEL32.>; \CopyFileA
004012A6 |.6A 04 push 0x4 ; /Flags =DELAY_UNTIL_REBOOT
004012A8 |.8D85 CCFDFFFF leaeax, ; |
004012AE |.53 push ebx ; |NewName
004012AF |.50 push eax ; |ExistingName
004012B0 |.FF15 34304000 call dword ptrds:[<&KERNEL32.>; \MoveFileExA
将自身移动到C:\Documents and Settings\Administrator\Local Settings路径下面
004020C1|.FF75 10 push ; /String= "C:\Documents and Settings\Administrator\Local Settings\ERSvc.exe"
004020C4|.F3:AB rep stos dword ptres: ; |
004020C6|.8B35 90304000 mov esi,dword ptrds:[<&KERNEL32.lstrlenA>] ; |kernel32.lstrlenA
004020CC|.895D F8 mov ,ebx ; |
004020CF|.66:AB stos word ptr es: ; |
004020D1|.AA stos byte ptr es: ; |
004020D2|.895D FC mov ,ebx ; |
004020D5|.FFD6 call esi ;\lstrlenA
004020D7|.40 inc eax
004020D8|.85C0 test eax,eax
004020DA|.7E 29 jle X00a037ed.00402105
004020DC|.8DBD ECFCFFFF lea edi,
004020E2|>8B4D 10 /mov ecx,
004020E5|.8B45 FC |mov eax,
004020E8|.8A0408 |mov al,byte ptr ds:
004020EB|.3C 5C |cmp al,0x5C
004020ED|.75 07 |jnz X00a037ed.004020F6
004020EF|.8807 |mov byte ptr ds:,al
004020F1|.47 |inc edi
004020F2|.8807 |mov byte ptr ds:,al
004020F4|.EB 02 |jmp X00a037ed.004020F8
004020F6|>8807 |mov byte ptr ds:,al
004020F8|>47 |inc edi
004020F9|.FF45 FC |inc
004020FC|.51 |push ecx
004020FD|.FFD6 |call esi ;kernel32.lstrlenA
004020FF|.40 |inc eax
00402100|.3945 FC |cmp ,eax
00402103|.^ 7C DD \jl X00a037ed.004020E2
0040210B|.50 push eax ;/<%s>
0040210C|.8D85 ECECFFFF lea eax, ; |
00402112|.FF75 0C push ;|<%s>
00402115|.FF75 08 push ;|<%s> = "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
00402118|.68 90414000push 00a037ed.00404190 ; |Format ="Windows Registry Editor Version 5.00
[%s]
"%s"="%s"
"
0040211D|.50 push eax ; |s
0040211E|.FF15 DC304000 call dword ptrds:[<&USER32.wsprintfA>] ; \wsprintfA
在这将字符串输入到缓冲区,可能是为后面的文件开机启动做准备
0040214A|.68 7C414000push 00a037ed.0040417C ; /StringToAdd ="~dfds3.reg"
0040214F|.50 push eax ; |ConcatString ="C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\"
00402150|.FFD7 call edi ;\lstrcatA
00402152|.53 push ebx ; /hTemplateFile
00402153|.68 80000000push 0x80 ; |Attributes = NORMAL
00402158|.6A 02 push 0x2 ; |Mode = CREATE_ALWAYS
0040215A|.53 push ebx ;|pSecurity
0040215B|.6A 02 push 0x2 ; |ShareMode = FILE_SHARE_WRITE
0040215D|.8D85 F4FEFFFF lea eax, ; |
00402163|.68 000000C0push 0xC0000000 ;|Access = GENERIC_READ|GENERIC_WRITE
00402168|.50 push eax ; |FileName = "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\~dfds3.reg"
00402169|.FF15 2C304000 call dword ptrds:[<&KERNEL32.CreateFileA>] ; \CreateFileA
在这生成注册表文件
004021A9|.68 6C414000push 00a037ed.0040416C ; /String2 ="regedit.exe /s "
004021AE|.50 push eax ; |String1
004021AF|.FF15 58304000 call dword ptrds:[<&KERNEL32.lstrcpyA>] ; \lstrcpyA
004021B5|.8D85 F4FEFFFF lea eax,
004021BB|.50 push eax
004021BC|.8D85 F0FDFFFF lea eax,
004021C2|.50 push eax
004021C3|.FFD7 call edi
004021C5|.8D85 F0FDFFFF lea eax,
004021CB|.6A 05 push 0x5 ;/ShowState = SW_SHOW
004021CD|.50 push eax ; |CmdLine
004021CE|.FF15 AC304000 call dword ptrds:[<&KERNEL32.WinExec>] ; \WinExec
在这通过函数WinExec执行生成的注册表文件,使文件开机启动。注册表内容如下:
Windows Registry Editor Version 5.00
"ERSvc"="C:\\Documents andSettings\\Administrator\\Local Settings\\Cisvc.exe "
004021D4|.68 E8030000 push 0x3E8 ;/Timeout = 1000. ms
004021D9|.FF15 A8304000 call dword ptrds:[<&KERNEL32.Sleep>] ; \Sleep
004021DF|.8D85 F4FEFFFF lea eax,
004021E5|.50 push eax ; /FileName = "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\~dfds3.reg"
004021E6|.FF15 7C304000 call dword ptrds:[<&KERNEL32.DeleteFileA>] ; \DeleteFileA、
经过一个sleep删除生成的.reg文件
通过抓包工具没有抓到数据下载,可能是下载地址失效了,也可能是我水平有限没有分析出来,也可能是需要重新开机才能下载文件。由于水平有限以及低下,只能分析成这样了。在这非常感谢willJ的帮助。
楼主迈出了一大步恭喜 我也没找到下载的地址另外 解压密码 少了个e {:1_931:}我还没学会~ 马斯维尔 发表于 2013-8-22 15:09 static/image/common/back.gif
我也没找到下载的地址另外 解压密码 少了个e
多谢提醒。 心伤的天堂 发表于 2013-8-22 15:08 static/image/common/back.gif
楼主迈出了一大步恭喜
还处于菜鸟级别,一起努力。
36449708 发表于 2013-8-22 15:12 static/image/common/back.gif
我还没学会~
我也是菜鸟,共同努力,一起进步!
膜拜楼主,楼主厉害。 需要个样本测试用
谢谢 都测试了没,IA64 或者 360下有效不?
页:
[1]
2