0x01 引言
一般情況下,網(wǎng)絡(luò)犯罪分子通常都會(huì)以產(chǎn)品套裝的形式來出售其攻擊軟件,其中包括:
惡意有效載荷:惡意軟件的前端,用于感染用戶。
C&C面板:惡意軟件的后端部分,通常為LAMP環(huán)境下的一個(gè)Web應(yīng)用程序。
生成器:一個(gè)應(yīng)用程序,用來打包有效載荷,并嵌入特定發(fā)布者所感興趣的信息,比如C&C地址、配置信息等。
這些惡意軟件套裝通常都是在黑市上銷售的,盡管如此,有時(shí)還是會(huì)流入主流媒體的手上。這就給研究人員提供了一個(gè)寶貴的機(jī)會(huì),來深入考察它們所使用的各種技術(shù)。
最近,我手頭上就得到了這樣的一個(gè)軟件套裝,其中就包括Neutrino僵尸網(wǎng)絡(luò)的生成器。盡管這不是最新的版本,但是依舊能夠提供有用的信息,來幫助我們與當(dāng)今廣泛傳播的樣本進(jìn)行對比分析。
0x02 相關(guān)組成部分
Neutrino Builder:32位PE程序,使用VS2013編寫,利用Safengine Shielden v2.3.6.0加殼(md5=80660973563d13dfa57748bacc4f7758)。
panel(利用PHP編寫的)。
stub(有效載荷):32位PE程序,是用MS Visual C++編寫的(md5=55612860c7bf1425c939815a9867b560, section .text md5=07d78519904f1e2806dda92b7c046d71)。
0x03 功能
Neutrino Builder v3.9.4
這個(gè)生成器是利用Visual Studio 2013編寫的,因此需要合適的可再發(fā)行組件包(Redistributable Package)才能夠正常運(yùn)行。這個(gè)生成器是一個(gè)破解版,因?yàn)閺臉?biāo)頭部分可以看到“Cracked and coded by 0x22”等字樣。
這個(gè)工具的功能非常簡單:向用戶詢問C&C的地址,然后將其寫入有效荷載。
比較兩個(gè)有效荷載:一個(gè)是原始的有效荷載,一個(gè)是由該生成器編輯過的有效荷載。我們發(fā)現(xiàn),實(shí)際上這個(gè)生成器所做的修改非常小,它只是對提供的URL進(jìn)行加密處理,然后將其保存到指定的地方。
下面的圖中,左圖(stub)是原始的有效荷載,右圖(test_stub.exe)是經(jīng)過編輯之后的有效荷載。
Panel
這個(gè)軟件套裝含有完整的使用說明(readme.txt),不過使用俄語編寫的,其中可以發(fā)現(xiàn)許多功能細(xì)節(jié)。
安裝面板所需的軟件:
PHP
MySQL,版本號不得低于5.6。
面板的默認(rèn)登錄名和口令:admin,admin。
被感染的客戶端可以根據(jù)要求而執(zhí)行的任務(wù):
各種類型的DDoS攻擊。
鍵盤記錄(啟用/禁用)功能,包括指定窗口內(nèi)的軌跡文本。
查找指定類型的文件。
更新bot。
刪除bot。
DNS欺騙(將地址X重定向到地址Y)。
Form表單截取,竊取FTP證書。
下載并執(zhí)行下列類型的文件(EXE、DLL、、bat 、vbs)。
向Windows注冊表添加指定內(nèi)容。
發(fā)送給bot的完整命令列表:
functions.php
C&C對非法請求非常敏感,并且會(huì)根據(jù)源IP黑名單作出相應(yīng)的反應(yīng):
functions.php
通過觀察install.php,我們還可以發(fā)現(xiàn)Form表單所截取的目標(biāo)。這里的列表中包括了最流行的電子郵件和社交網(wǎng)絡(luò)網(wǎng)站(facebook、linkedin、twitter等)。
install.php
用于實(shí)現(xiàn)跟bot通信的主文件是tasks.php,它只接收一種POST請求。
將bot發(fā)送的信息添加到數(shù)據(jù)庫:
tasks.php
打開index.php會(huì)導(dǎo)致客戶端的IP被加入黑名單(無條件):
index.php
Stub
在后端可以找到的所有命令在前端都有所反映,這一點(diǎn)可以清楚看出來,因?yàn)橛行Ш奢d根本就沒有經(jīng)過混淆處理!
硬編碼的驗(yàn)證密鑰,對于bot發(fā)送的每一個(gè)請求,C&C都會(huì)檢查其中的驗(yàn)證密鑰:
Bot自己會(huì)登錄到C&C,報(bào)告期版本和運(yùn)行環(huán)境:
下面是C&C請求的部分命令的實(shí)現(xiàn):
從C&C下載指定的有效載荷:
鍵盤記錄器的部分代碼:
Frame截取器的代碼片段:
竊取剪貼板中的內(nèi)容(部分代碼):
將竊取的內(nèi)容(如登錄密碼)保存到一個(gè)文件中(logs.rar)。然后,讀取這個(gè)文件,并將其上傳到C&C:
講這個(gè)文件封裝到POST請求中:
此外,無論C&C請求的任務(wù)是成功或失敗,bot都要提供相應(yīng)的報(bào)告:
這個(gè)惡意軟件所帶來的威脅,不僅僅局限于本地計(jì)算機(jī),此外,它還會(huì)掃描LAN,尋找共享資源,并竊取之:
竊取共享資源(部分代碼):
防御技術(shù)
除了上面介紹的攻擊性功能之外,這個(gè)有效載荷含有大量的防御功能。
除明顯的isDebuggerPresent之類檢查外,我們還發(fā)現(xiàn)了一些更加高級或者說非常怪異的東西,例如檢查用戶名是否含有下列字符串:maltest、tequilaboomboom、sandbox、virus、malware。完整的防御功能說明如下:
確定調(diào)用進(jìn)程是否為調(diào)試器,這需要借助于:
IsDebuggerPresent
確定調(diào)用進(jìn)程是否為遠(yuǎn)程調(diào)試器,這需要借助于:
CheckRemoteDebuggerPresent(GetCurrentProcess(), pDebuggerPresent)
檢測是否運(yùn)行在Wine下面,這需要借助于:
GetProcAddress(GetModuleHandleW(“kernel32.dll”), “wine_get_unix_file_name”)
檢查是否含有黑名單中的子串(忽略大小寫):
是否含有用戶名,這需要借助于:
GetUserNameW vs {“MALTEST“, “TEQUILABOOMBOOM“, “SANDBOX“, “VIRUS“,”MALWARE“}
是否含有當(dāng)前模塊名稱,這需要借助于:
GetModuleNameW vs {“SAMPLE“, “VIRUS“, “SANDBOX” }
是否含有BIOS版本號,這需要借助于注冊表:
“HARDWAREDescriptionSystem“, value “SystemBiosVersion” against: {“VBOX“, “QEMU“, “BOCHS“}
是否含有BIOS版本號,這需要借助于注冊表:
“HARDWAREDescriptionSystem“, value “VideoBiosVersion” against: “VIRTUALBOX“
是否含有SCSI信息,這需要借助于注冊表:
“HARDWAREDEVICEMAPScsiScsi Port 0Scsi Bus 0Target Id“, value “Identifier“), against {“VMWARE“, “VBOX“, “QEMU“}
檢查是否存在:
VMWareTools,這需要借助于注冊表:SOFTWAREVMware, Inc.VMware Tools。
VBoxGuestAdditions,這需要借助于注冊表:SOFTWAREOracleVirtualBox Guest Additions。
0x04 小結(jié)
通常情況下,惡意軟件分析人員只跟其中的一部分即惡意有效載荷打交道。通過像本文這樣考察整個(gè)套裝,能夠幫我們對惡意軟件了解地更加全面。
此外,它還能夠很好地幫我們了解分布式惡意軟件的各種活動(dòng)是如何組織協(xié)調(diào)的。如本文所示,網(wǎng)絡(luò)犯罪分子可以非常輕松的組配自己的惡意C&C。一個(gè)人,根本無需任何高深的技巧,照樣可以變身成為一個(gè)僵尸網(wǎng)絡(luò)的主人。我們?nèi)缃裆畹臅r(shí)代,是惡意軟件武器化的時(shí)代,是大眾也能取之即用的時(shí)代,所以,每個(gè)人都必須采取堅(jiān)固和多層的安全防護(hù)措施,這一點(diǎn)非常關(guān)鍵。