吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 12112|回复: 21
收起左侧

[PC样本分析] 对一绑马文件的分析

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

基本信息

  报告名称:对一绑马文件的分析
  作者:willJ
  报告更新日期:2012/6/9
  样本发现日期:未知
  样本类型:远控
  样本文件MD5 校验值: 7B595050348A9F03CA1EE308E0319910  
  壳信息:无壳   
  可能受到威胁的系统:Windowsxp 以上系统
  相关漏洞:无


通过资源文件释放病毒文件,加入注册表达到自启动,病毒文件同过自己构造PE加载器加载自己的一个资源文件,资源文件为一个远控。

被感染系及网症状

进程中一直有一个vptray.exe

文件系统变

Temp目录下面多出一个Vptray.exe以及up.bak文件

注册表

通过向注册表SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\run创建键值为symantecupdate注册表项达到自启动Temp目录的VPTray.exe文件

症状

用户电脑被apples.suroot.com控制
详细分析/功能介

文件主体的分析:
1. 首先检查消息队列中有没有键盘鼠标消息,然后发送一个WM_NULL消息过去
.text:0040145B 55                push    ebp
.text:0040145C 8B EC             mov     ebp, esp
.text:0040145E 81 EC C0 08 00 00 sub     esp, 8C0h
.text:00401464 57                push    edi
.text:00401465 FF 15 F4 70 40 00 call    ds:GetInputState      ; 检测有没有鼠标键盘消息在消息队列中
.text:0040146B 6A 00             push    0                     ; lParam
.text:0040146D 6A 00             push    0                     ; wParam
.text:0040146F 6A 00             push    0                     ; Msg
.text:00401471 FF 15 20 70 40 00 call    ds:GetCurrentThreadId
.text:00401477 50                push    eax                   ; idThread
.text:00401478 FF 15 F8 70 40 00 call    ds:PostThreadMessageA
.text:0040147E 6A 00             push    0                     ; wMsgFilterMax
.text:00401480 6A 00             push    0                     ; wMsgFilterMin
.text:00401482 6A 00             push    0                     ; hWnd
.text:00401484 8D 85 A8 FE FF FF lea     eax, [ebp+Msg]
.text:0040148A 50                push    eax                   ; lpMsg
.text:0040148B FF 15 FC 70 40 00 call    ds:GetMessageA


2. 动态获取各种与资源相关的API
.text:00401491 E8 CA 03 00 00    call    Get_ResourceAPI       ; 获取和资源相关的API


3. 根据文件名做不同的操作,如果文件名不是VPtray.exe做第4步,否则到第9步
.text:004014BD FF 15 78 AD 40 00 call    Kernel_GetModuleFileName
.text:004014C3 E8 88 02 00 00    call    Nothing
.text:004014C8 68 74 80 40 00    push    offset SubStr         ; "vptray.exe"
.text:004014CD 8D 95 E8 FE FF FF lea     edx, [ebp+String]
.text:004014D3 52                push    edx                   ; String
.text:004014D4 E8 FD 4C 00 00    call    __strlwr              ; 将大写字符转换为小写
.text:004014D9 83 C4 04          add     esp, 4
.text:004014DC 50                push    eax                   ; Str
.text:004014DD E8 1E 0D 00 00    call    _strstr               ; 查找是不是vptray.exe
.text:004014E2 83 C4 08          add     esp, 8
.text:004014E5 85 C0             test    eax, eax
.text:004014E7 0F 87 51 01 00 00 ja      loc_40163E            ; 关键的一个跳转(根据程序名做不同的操作)


4. 将文件以Vptray.exe拷贝到Temp目录下面

5. 解密注册表操作的字符串
.text:0040154D 52                push    edx                   ; Str
.text:0040154E 68 8C 80 40 00    push    offset ValueName      ; "SymantecUpdate"
.text:00401553 68 A0 80 40 00    push    offset a0nzl09te0elly9 ; "0Nzl09Te0eLLy9r2APH88PwF88vL1Pb9A/z08Mv"...
.text:00401558 E8 CC FC FF FF    call    decryption_RegeditPath ; 解密注册表字符串SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\run

   
6. 将Temp目录下面的vptray.exe加入注册表自启动项
1.jpg
7. 获取本地时间与oxffff相与,如果等于4就执行下面的操作,否则继续循环获取本地时间(应该是起到一个延时的作用)
.text:004015CF B9 01 00 00 00    mov     ecx, 1
.text:004015D4 85 C9             test    ecx, ecx
.text:004015D6 74 24             jz      short loc_4015FC
.text:004015D8 8D 95 80 F9 FF FF lea     edx, [ebp+SystemTime]
.text:004015DE 52                push    edx                   ; lpSystemTime
.text:004015DF FF 15 28 70 40 00 call    ds:GetLocalTime
.text:004015E5 8B 85 8C F9 FF FF mov     eax, dword ptr [ebp+SystemTime.wSecond]
.text:004015EB 25 FF FF 00 00    and     eax, 0FFFFh
.text:004015F0 3B 85 7C F9 FF FF cmp     eax, [ebp+var_684]
.text:004015F6 75 02             jnz     short loc_4015FA
.text:004015F8 EB 02             jmp     short loc_4015FC      ; 获取本地时间,当达到本地时间与FFFF相与等于4就执行下面的操作
.text:004015FA                   ; ---------------------------------------------------------------------------
.text:004015FA
.text:004015FA                   loc_4015FA:                   ; CODE XREF: WinMain(x,x,x,x)+19Bj
.text:004015FA EB D3             jmp     short loc_4015CF


8. 运行Temp目录下面的vptray.exe,生成一个cmd命令操作ping本地三次后删除文件本身达到自删除的效果,进程结束。
.text:004015FC 6A 00             push    0
.text:004015FE 8D 8D 90 F9 FF FF lea     ecx, [ebp+NewFileName]
.text:00401604 51                push    ecx
.text:00401605 FF 15 68 AD 40 00 call    kernel32_Winexec      ; 运行Temp目录下的程序本身
.text:0040160B 8D 95 48 F7 FF FF lea     edx, [ebp+ExistingFileName]
.text:00401611 52                push    edx
.text:00401612 68 E8 80 40 00    push    offset aCmd_exeCPingLo ; "cmd.exe /c ping localhost -n 3 & del "%"...
.text:00401617 8D 85 60 F8 FF FF lea     eax, [ebp+var_7A0]
.text:0040161D 50                push    eax
.text:0040161E FF 15 74 AD 40 00 call    User32_wsprintfA      ; 拼接cmd.exe /c ping localhost -n 3 & del \文件本身
.text:00401624 83 C4 0C          add     esp, 0Ch
.text:00401627 6A 00             push    0
.text:00401629 8D 8D 60 F8 FF FF lea     ecx, [ebp+var_7A0]
.text:0040162F 51                push    ecx
.text:00401630 FF 15 68 AD 40 00 call    kernel32_Winexec      ; 运行一个CMD ping 本地三次 然后删除自己
.text:00401636 6A 00             push    0                     ; uExitCode
.text:00401638 FF 15 2C 70 40 00 call    ds:ExitProcess

9. 创建一个互斥对象,然后释放了互斥对象(这步我不太明白为什么)

10.对资源文件进行解密操作,然后在Temp目录释放一个up.bak文件(DLL)并且载入
11.开始一直循环着接收消息
释放在Temp目录的up.bak文件分析
Up.bak的主要功能就是集中在两个导出函数上面:
2.jpg
1. Loop作用
接收键盘鼠标消息

2. mydoor的作用:
载入资源,获取两个ntdll.dll中的函RtlDecompressBufferRtlGetCompressionWorkSpaceSize并且解密了资源文件
3.jpg
  解密后:
4.jpg
没有将资源释放出来执行,而是通过申请内存,模拟PE加载器加载这个PE,通过loadlibrary执行功能,前面通过hook了heapdestroy,修改签名的字节为retn 0x4达到方式系统回收内存空间
5.jpg
通过对up.bak释放在内存中的资源的查看,是一个远控,一直向apples.suroot.com连接着。
6.jpg
通过下面看来很有一个名叫Ghost远控的风格
7.jpg
文件中也有大量的对注册表,文件,服务等操作的API

防及修复措施
手工修复方式:
删除注册表:
8.jpg
删除temp目录下面的vptray.exeup.bak文件
重启电脑

术热点及总结
VPTray.exeNorton AntiVirus反病毒软件的系统托盘程序。它用于快速访问Norton Antivirus反病毒软件。通过这个文件名来欺骗用户,冒充正常软件。
对于远控主体并没有自己释放出来,而是自己写了一个PE装载器去执行这个远控达到比较好的逃避杀毒的效果。
Hookheapdestroy这个API,防止加载在内存的远控主体被清楚掉。

分析完了,那个远控就不分析了,网上的Ghost源码很多,可以下载来看看

分析得不好的地方还请大牛指点

免费评分

参与人数 3热心值 +3 收起 理由
KaQqi + 1 我很赞同!
Victory.ms + 1 你那么有才华干嘛不去分析一下“火焰病毒”.
Peace + 1 我很赞同!

查看全部评分

本帖被以下淘专辑推荐:

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

LShang 发表于 2012-6-9 19:29
膜拜JJ大牛,顶礼膜拜
insipid 发表于 2012-6-9 19:30
啤啤 发表于 2012-6-9 19:34
 楼主| willJ 发表于 2012-6-9 20:46
LShang 发表于 2012-6-9 19:29
膜拜JJ大牛,顶礼膜拜

LShang谦虚了
Kavia 发表于 2012-6-9 22:16
膜拜J牛!
1354669803 发表于 2012-6-9 22:57
膜拜大神 感谢分析 辛苦了
resote 发表于 2012-6-10 02:43
膜拜大牛
cs994789570 发表于 2012-6-10 10:28
学习了
 楼主| willJ 发表于 2012-6-10 11:14
Kavia 发表于 2012-6-9 22:16
膜拜J牛!

小师妹好啊,你头像好萌啊
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-24 14:47

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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