kangkai 发表于 2013-8-22 14:17

菜鸟第一次分析病毒(下载者木马)

本帖最后由 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的帮助。

心伤的天堂 发表于 2013-8-22 15:08

楼主迈出了一大步恭喜

马斯维尔 发表于 2013-8-22 15:09

我也没找到下载的地址另外 解压密码 少了个e

36449708 发表于 2013-8-22 15:12

{:1_931:}我还没学会~

kangkai 发表于 2013-8-22 16:03

马斯维尔 发表于 2013-8-22 15:09 static/image/common/back.gif
我也没找到下载的地址另外 解压密码 少了个e

多谢提醒。

kangkai 发表于 2013-8-22 16:04

心伤的天堂 发表于 2013-8-22 15:08 static/image/common/back.gif
楼主迈出了一大步恭喜

还处于菜鸟级别,一起努力。

kangkai 发表于 2013-8-22 16:06

36449708 发表于 2013-8-22 15:12 static/image/common/back.gif
我还没学会~

我也是菜鸟,共同努力,一起进步!

montana 发表于 2013-8-22 16:50

膜拜楼主,楼主厉害。

taoyouya 发表于 2013-10-10 10:38

需要个样本测试用
谢谢

ren970122 发表于 2013-10-13 17:27

都测试了没,IA64 或者 360下有效不?
页: [1] 2
查看完整版本: 菜鸟第一次分析病毒(下载者木马)