吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4649|回复: 4
收起左侧

[PC样本分析] 新手学习 PracticalMalwareAnalysis lab18-01

  [复制链接]
MaximeLionel 发表于 2022-5-1 23:10
使用论坛附件上传样本压缩包时必须使用压缩密码保护,压缩密码:52pojie,否则会导致论坛被杀毒软件等误报,论坛有权随时删除相关附件和帖子!
病毒分析分区附件样本、网址谨慎下载点击,可能对计算机产生破坏,仅供安全人员在法律允许范围内研究,禁止非法用途!
禁止求非法渗透测试、非法网络攻击、获取隐私等违法内容,即使对方是非法内容,也应向警方求助!

静态数据

  • MD5
    sha1,5C1F90ABD22AA3ED55638228862B7A24D4A38CDB
    sha256,2AC6635A26049D354C0C46243F6451E6594B130745A08C5A99E96A64FBBBEC0F
  • 有壳UPX - signature,UPX -> www.upx.sourceforge.net.
  • 导入表 - 发现有GetProcAddress函数,可以作为脱壳线索
    GetUserNameA,0x00,0xA0F8,reckoning,implicit,-,-,advapi32.dll
    URLDownloadToCacheFileA,0x00,0xA106,network,implicit,-,x,urlmon.dll
    VirtualProtect,0x00,0xA0BE,memory,implicit,-,x,kernel32.dll
    VirtualAlloc,0x00,0xA0CE,memory,implicit,-,-,kernel32.dll
    VirtualFree,0x00,0xA0DC,memory,implicit,-,-,kernel32.dll
    ExitProcess,0x00,0xA0EA,execution,implicit,-,-,kernel32.dll
    LoadLibraryA,0x00,0xA0A0,dynamic-library,implicit,-,-,kernel32.dll
    GetProcAddress,0x00,0xA0AE,dynamic-library,implicit,-,-,kernel32.dll

脱壳

寻找OEP

  • 使用OllyDbg打开,搜索GetProcAddress函数并下断点,运行程序,如下:
    76855F20 >  8BFF            mov     edi, edi                                          ; Lab18-01.0040800F
    76855F22    55              push    ebp
    76855F23    8BEC            mov     ebp, esp
    76855F25    FF75 04         push    dword ptr [ebp+4]
    76855F28    FF75 0C         push    dword ptr [ebp+C]
    76855F2B    FF75 08         push    dword ptr [ebp+8]
    76855F2E    FF15 200C8C76   call    dword ptr [<&KERNELBASE.GetProcAddressForCaller>] ; KERNELBA.GetProcAddressForCaller
    76855F34    5D              pop     ebp
    76855F35    C2 0800         retn    8
  • 发现该函数只是对GetProcAddress的封装,跳出该函数如下,发现该段loop函数应该是建立导入表:
    00409EE1 > > /8A07          mov     al, byte ptr [edi]                                ;  build import table
    00409EE3   . |47            inc     edi
    00409EE4   . |08C0          or      al, al
    00409EE6   .^|74 DC         je      short 00409EC4
    00409EE8   . |89F9          mov     ecx, edi
    00409EEA   . |57            push    edi
    00409EEB   . |48            dec     eax
    00409EEC   . |F2:AE         repne   scas byte ptr es:[edi]
    00409EEE   . |55            push    ebp
    00409EEF   . |FF96 54900000 call    dword ptr [esi+9054]                              ;  call GetProcAddress
    00409EF5   . |09C0          or      eax, eax                                          ;  KERNEL32.Sleep
    00409EF7   . |74 07         je      short 00409F00
    00409EF9   . |8903          mov     dword ptr [ebx], eax
    00409EFB   . |83C3 04       add     ebx, 4
    00409EFE   .^\EB E1         jmp     short <build import table>
  • 往下拉,发现有个疑似tail jump,后面全是0x00,跳转后第一条指令也是 push ebp,初步判断0x0040154F即为OEP:
    00409F3C   .  39C4          cmp     esp, eax
    00409F3E   .^ 75 FA         jnz     short 00409F3A
    00409F40   .  83EC 80       sub     esp, -80
    00409F43   .- E9 0776FFFF   jmp     0040154F                                          ;  目标 jump
    00409F48      00            db      00
    00409F49      00            db      00
    00409F4A      00            db      00
    00409F4B      00            db      00
    00409F4C      00            db      00

    建立输入表

  • dump上面找到OEP的process,记录OEP;
  • 使用imprec工具修复import table,并转存。

脱壳后静态数据:

  • 导入表 - 存在网络下载,文件写入,内存操作等功能函数。
    URLDownloadToCacheFileA,0xE3,0xB4EA,network,implicit,-,x,urlmon.dll
    HeapCreate,0x34D,0xB3A8,memory,implicit,-,-,kernel32.dll
    VirtualAlloc,0x5CC,0xB438,memory,implicit,-,-,kernel32.dll
    GetFileType,0x254,0xB37A,file,implicit,-,-,kernel32.dll
    WriteFile,0x618,0xB3DC,file,implicit,-,-,kernel32.dll
    CreateProcessA,0xE6,0xB21C,execution,implicit,-,-,kernel32.dll
  • 字符串检查 - 存在一个URL。
    ascii,49,0x00006062,-,format-string,-,http://www.practicalmalwareanalysis.com/%s/%c.png

动态数据:

执行程序后,发现有DNS query发往www.practicalmalwareanalysis.com。

    17  11.641527456    192.168.190.129 192.168.190.1   DNS 92  Standard query 0xc711 A www.practicalmalwareanalysis.com

IDA 分析

  • 进入main,首先是使用GetCurrentHWProfileA获取hardware的GUID.
  • 然后将GUID的最后12个数字以mac地址的格式写入字符串:
    movsx   edx, [ebp+HwProfileInfo.szHwProfileGuid+24h]
    push    edx
    movsx   eax, [ebp+HwProfileInfo.szHwProfileGuid+23h]
    push    eax
    movsx   ecx, [ebp+HwProfileInfo.szHwProfileGuid+22h]
    push    ecx
    movsx   edx, [ebp+HwProfileInfo.szHwProfileGuid+21h]
    push    edx
    movsx   eax, [ebp+HwProfileInfo.szHwProfileGuid+20h]
    push    eax
    movsx   ecx, [ebp+HwProfileInfo.szHwProfileGuid+1Fh]
    push    ecx
    movsx   edx, [ebp+HwProfileInfo.szHwProfileGuid+1Eh]
    push    edx
    movsx   eax, [ebp+HwProfileInfo.szHwProfileGuid+1Dh]
    push    eax
    movsx   ecx, [ebp+HwProfileInfo.szHwProfileGuid+1Ch]
    push    ecx
    movsx   edx, [ebp+HwProfileInfo.szHwProfileGuid+1Bh]
    push    edx
    movsx   eax, [ebp+HwProfileInfo.szHwProfileGuid+1Ah]
    push    eax
    movsx   ecx, [ebp+HwProfileInfo.szHwProfileGuid+19h]
    push    ecx
    push    offset aCCCCCCCCCCCC ; "%c%c:%c%c:%c%c:%c%c:%c%c:%c%c"
    lea     edx, [ebp+guid_last12bytes]
    push    edx             ; char *
    call    _sprintf
  • 再GetUserName获得当前用户的用户名,并与之前的GUID字符串结合成'guid_last12bytes-username'的格式。
  • 接着,程序会将该字符串用Base64的方式进行加密,注意该程序将a作为了默认padding字符。
  • 并将密文以http://www.practicalmalwareanalysis.com/ODA6NmU6NmY6NmU6Njk6NjMtWW9kYWEa/a.png的格式使用URLDownloadToCacheFileA函数进行下载文件。
  • 最后使用CreateProcess进行执行。

总结

该程序使用了UPX壳,使用在GetProcAddress下bp的方式找到OEP,再重建输入表进行脱壳。
脱壳后分析程序,首先获取了主机的硬件信息和用户名信息,使用Base64方式进行加密,并将加密字符串发往www.practicalmalwareanalysis.com,下载相应的文件,并执行。

免费评分

参与人数 7吾爱币 +12 热心值 +6 收起 理由
Hmily + 6 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
yiwangguli + 1 + 1 我很赞同!
snakenba580 + 1 + 1 用心讨论,共获提升!
maimiao + 1 热心回复!
XXFFKK + 1 + 1 热心回复!
loo1221ool + 1 + 1 我很赞同!
200132xp + 1 + 1 热心回复!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

头像被屏蔽
daisypojie 发表于 2022-5-2 08:12
提示: 作者被禁止或删除 内容自动屏蔽
heihuhu2012 发表于 2022-5-2 09:26
snakenba580 发表于 2022-5-2 10:51
cookieandww 发表于 2022-5-15 12:31
思路很好用,谢谢分享!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 09:49

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表