欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

飞鸽子分析报告

飞鸽子分析报告

【第三次修改】以前的版本写的很挫,无颜见江东父老。这是我重新分析的报告,行为分析+代码分析+手杀,手杀部分在附件中。纯粹练手,不足的地方,请大家拍砖
一、  基本信息
  报告名称:PutHupigon.exe
  
  报告更新
  样本发现
  样本类型:木马
  样本文件大小/被感染文件变化长度:    
  样本文件MD5 校验值:592F49A7419E3B8153D8E5FD7F5EED9B                             
  样本文件SHA1 校验值:26A2AA3D694E39683C67CA15D754287BD90CA9C4                            
  壳信息:UPX
  可能受到威胁的系统:这是一个后门木马,提供远程控制服务                                
  相关漏洞:                                                    
  已知检测名称:                                            

二、  初步分析
加了壳,初步估计是UPX
三、  行为分析
开启Filemon.exe、Regmon.exe、procexp.exe等工具,然后运行PutHupigon.exe,监控它的行为。
主要释放了3个文件:领取黄砖&黄转化肥.exe、vx_server_setup.exe、弯刀反鲨-2009.exe。
图1:Filemon.exe
 
图2:Filemon.exe
 
图3:Regmon.exe
 
四、  代码分析
4.1、  PutHupigon.exe
样本文件MD5 校验值:592F49A7419E3B8153D8E5FD7F5EED9B 
样本文件SHA1 校验值:26A2AA3D694E39683C67CA15D754287BD90CA9C4 
壳信息:UPX
先手动脱壳/自动脱壳,打开IDA/OD代码分析
    
    写文件:
    UPX0:00403481                 push    0FFFFh
UPX0:00403486                 mov     ecx, dword_4056E4
UPX0:0040348C                 mov     dl, 1
UPX0:0040348E                 mov     eax, off_4027B0
UPX0:00403493                 call    sub_402B60
UPX0:00403498                 mov     dword_4056EC, eax
UPX0:0040349D                 xor     eax, eax
UPX0:0040349F                 push    ebp
UPX0:004034A0                 push    offset loc_4034E3
UPX0:004034A5                 push    dword ptr fs:[eax]
UPX0:004034A8                 mov     fs:[eax], esp
UPX0:004034AB                 mov     edx, dword_4056F0 ; 写入的内容
UPX0:004034B1                 mov     ecx, dword_4056F4 ; 写入的handle
UPX0:004034B7                 mov     eax, dword_4056EC ; nNumberOfBytesToWrite
UPX0:004034BC                 call    sub_40295C      ; 写文件
移动文件:eg. 领取黄砖&黄转化肥.jpg  ?  领取黄砖&黄转化肥.exe
UPX0:004034EA ; ---------------------------------------------------------------------------
UPX0:004034EA
UPX0:004034EA loc_4034EA:                             ; CODE XREF: start+2CA j
UPX0:004034EA                                         ; DATA XREF: start+2BB o
UPX0:004034EA                 mov     edx, dword_4056E8
UPX0:004034F0                 mov     eax, dword_4056E4
UPX0:004034F5                 call    sub_402320      ; movefile  移动文件
启动程序:
loc_40351E:             ; nShowCmd
push    1
push    0               ; lpDirectory
push    0               ; lpParameters
mov     eax, dword_4056E8
call    sub_401D08
push    eax             ; lpFile
push    offset Operation ; "open"
call    j_GetDesktopWindow
push    eax             ; hwnd
call    j_ShellExecuteA ; 启动lpFile
通过循环以上写文件、复制文件、启动该文件3个步骤,领取黄砖&黄转化肥.exe、vx_server_setup.exe两个程序启动了。
4.2、  vx_server_setup.exe
样本文件MD5 校验值:B8BE469E42B904D79ACF413711B17123 
样本文件SHA1 校验值:0DCCE4729AF917DE573CC6BB2FE8824A5BFFA4C6
壳信息:UPX
先手动脱壳/自动脱壳,打开IDA/OD代码分析
产生自身文件弯刀反鲨-2009.exe
4.3、  弯刀反鲨-2009.exe
样本文件MD5 校验值:B8BE469E42B904D79ACF413711B17123 
样本文件SHA1 校验值:0DCCE4729AF917DE573CC6BB2FE8824A5BFFA4C6
壳信息:UPX
注册服务、设置服务状态、创建线程:
UPX0:004A1934 ; 当前函数是服务入口点函数,执行服务初始化任务
UPX0:004A1934 ; Attributes: bp-based frame
UPX0:004A1934
UPX0:004A1934 ServiceMain     proc near               ; DATA XREF: UPX0:004A211C o
UPX0:004A1934
UPX0:004A1934 Parameter       = byte ptr -4
UPX0:004A1934
UPX0:004A1934                 push    ebp
UPX0:004A1935                 mov     ebp, esp
UPX0:004A1937                 push    ecx
UPX0:004A1938                 push    ebx
UPX0:004A1939                 mov     ebx, lpServiceStatus ; 当前函数是服务入口点函数
UPX0:004A193F                 mov     dword ptr [ebx], 30h
UPX0:004A1945                 mov     dword ptr [ebx+4], 2
UPX0:004A194C                 mov     dword ptr [ebx+8], 3
UPX0:004A1953                 xor     eax, eax
UPX0:004A1955                 mov     [ebx+0Ch], eax
UPX0:004A1958                 xor     eax, eax
UPX0:004A195A                 mov     [ebx+10h], eax
UPX0:004A195D                 xor     eax, eax
UPX0:004A195F                 mov     [ebx+14h], eax
UPX0:004A1962                 xor     eax, eax
UPX0:004A1964                 mov     [ebx+18h], eax
UPX0:004A1967                 push    offset HandlerProc ; lpHandlerProc
UPX0:004A196C                 mov     eax, off_4A5B78
UPX0:004A1971                 mov     eax, [eax]
UPX0:004A1973                 call    @System@@LStrToPChar$qqrx17System@AnsiString ; System::__linkproc__ LStrToPChar(System::AnsiString)
UPX0:004A1978                 push    eax             ; lpServiceName
UPX0:004A1979                 call    j_RegisterServiceCtrlHandlerA ; 注册HandlerProc来处理各种服务的回调函数
UPX0:004A197E                 mov     edx, off_4A5B00
UPX0:004A1984                 mov     [edx], eax
UPX0:004A1986                 mov     eax, off_4A5B00
UPX0:004A198B                 cmp     dword ptr [eax], 0
UPX0:004A198E                 jz      short loc_4A19DF
UPX0:004A1990                 mov     dword ptr [ebx+4], 4
UPX0:004A1997                 xor     eax, eax
UPX0:004A1999                 mov     [ebx+14h], eax
UPX0:004A199C                 xor     eax, eax
UPX0:004A199E                 mov     [ebx+18h], eax
UPX0:004A19A1                 push    ebx             ; lpServiceStatus
UPX0:004A19A2                 mov     eax, off_4A5B00
UPX0:004A19A7                 mov     eax, [eax]
UPX0:004A19A9                 push    eax             ; hServiceStatus
UPX0:004A19AA                 call    j_SetServiceStatus ; send status information to the service control manager
UPX0:004A19AA                                         ; 设置服务的状态
UPX0:004A19AF                 cmp     eax, 1
UPX0:004A19B2                 sbb     eax, eax
UPX0:004A19B4                 inc     eax
UPX0:004A19B5                 test    al, al
UPX0:004A19B7                 jz      short loc_4A19E0
UPX0:004A19B9                 lea     eax, [ebp+Parameter]
UPX0:004A19BC                 push    0               ; lpThreadId
UPX0:004A19BE                 push    0               ; dwCreationFlags
UPX0:004A19C0                 push    eax             ; lpParameter
UPX0:004A19C1                 push    offset sub_4A185C ; lpStartAddress
UPX0:004A19C6                 push    0               ; dwStackSize
UPX0:004A19C8                 push    0               ; lpThreadAttributes
UPX0:004A19CA                 call    j_CreateThread_0 ; 创建线程,关联的函数sub_4A185C
UPX0:004A19CF                 mov     ebx, eax
UPX0:004A19D1                 push    0FFFFFFFEh      ; dwMilliseconds
UPX0:004A19D3                 push    ebx             ; hHandle
UPX0:004A19D4                 call    j_WaitForSingleObject ; 等待响应
UPX0:004A19D9                 push    ebx             ; hObject
UPX0:004A19DA                 call    j_CloseHandle_0
UPX0:004A19DF
UPX0:004A19DF loc_4A19DF:                             ; CODE XREF: ServiceMain+5A j
UPX0:004A19DF                 pop     ebx
UPX0:004A19E0
UPX0:004A19E0 loc_4A19E0:                             ; CODE XREF: ServiceMain+83 j
UPX0:004A19E0                 pop     ecx
UPX0:004A19E1                 pop     ebp
UPX0:004A19E2                 retn    0Ch
线程关联的函数:
UPX0:004A185C ; DWORD __stdcall sub_4A185C(LPVOID)
UPX0:004A185C sub_4A185C      proc near               ; CODE XREF: UPX0:004A1EB0 p
UPX0:004A185C                                         ; UPX0:loc_4A2130 p ...
UPX0:004A185C                 cmp     byte_4A7F64, 0
UPX0:004A1863                 jz      short loc_4A186A
UPX0:004A1865                 call    sub_49C348
UPX0:004A186A
UPX0:004A186A loc_4A186A:                             ; CODE XREF: sub_4A185C+7 j
UPX0:004A186A                 mov     eax, off_4A5978
UPX0:004A186F                 mov     eax, [eax]
UPX0:004A1871                 call    sub_457228      ; 初始化
UPX0:004A1876                 mov     eax, off_4A5978
UPX0:004A187B                 mov     eax, [eax]
UPX0:004A187D                 mov     byte ptr [eax+5Bh], 0
UPX0:004A1881                 mov     ecx, off_4A5690
UPX0:004A1887                 mov     eax, off_4A5978
UPX0:004A188C                 mov     eax, [eax]
UPX0:004A188E                 mov     edx, off_497180
UPX0:004A1894                 call    @Forms@TApplication@CreateForm$qqrp17System@TMetaClasspv ; Forms::TApplication::CreateForm(System::TMetaClass *,void *)
UPX0:004A1899                 mov     eax, off_4A5978
UPX0:004A189E                 mov     eax, [eax]
UPX0:004A18A0                 call    @Forms@TApplication@Run$qqrv ; 等待处理消息
UPX0:004A18A5                 retn
UPX0:004A18A5 sub_4A185C      endp
五、  手杀

上传的附件 PutHupigon(未脱壳).zip(请到论坛原帖下载)
灰鸽子病毒分析.pdf

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途。
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功