作者:ADLab
近期,啟明星辰ADLab與電信云堤發(fā)現(xiàn)了一款新型物聯(lián)網(wǎng)蠕蟲:鯨鯊蠕蟲,鯨鯊蠕蟲是首款利用物聯(lián)網(wǎng)設(shè)備來構(gòu)建大型代理網(wǎng)絡(luò)的蠕蟲病毒,主要感染對象包括路由器、網(wǎng)絡(luò)攝像頭、交換機(jī)等物聯(lián)網(wǎng)設(shè)備,我們當(dāng)前所發(fā)現(xiàn)的該蠕蟲受控于一臺位于俄羅斯的主機(jī)服務(wù)器。
此蠕蟲并未實(shí)現(xiàn)任何可以用于網(wǎng)絡(luò)攻擊的模塊,從我們目前的分析結(jié)果來看,該蠕蟲僅僅實(shí)現(xiàn)了一個 TCP 流量轉(zhuǎn)發(fā)的功能,黑客可以利用該功能向任何指定 IP 地址發(fā)送 TCP 數(shù)據(jù)包。因此我們推測,該黑客試圖利用蠕蟲來建立一個大型的網(wǎng)絡(luò)代理平臺,并利用該平臺管理的網(wǎng)絡(luò)設(shè)備來轉(zhuǎn)發(fā)其流量,以實(shí)現(xiàn)如下目的。
該蠕蟲具備以下特點(diǎn):
mips
、x86
、arm
、power pc
、Hitachi
的不同的 CPU 架構(gòu),兼容大端和小端的字節(jié)順序。在軟件環(huán)境方面,該蠕蟲適配帶 busybox 程序的環(huán)境和不帶 busybox 程序環(huán)境、適配帶 echo 程序的環(huán)境和帶 printf 程序的環(huán)境、適配帶 wget/tftp/echo/printf
的二進(jìn)制回顯重定向的下載模式。可以看出,該蠕蟲與其他類型的物聯(lián)網(wǎng)僵尸(如 Mirai
、Hajime
、Qbot
、KTN-RM
等)相比具有控制更加靈活、感染成功率更高、隱蔽性更好等優(yōu)點(diǎn)。因而我們將這款新型的蠕蟲命名為“鯨鯊蠕蟲”。
在發(fā)現(xiàn)鯨鯊蠕蟲后,我們監(jiān)測了鯨鯊蠕蟲最近一個月(2017年6月)的活躍IP數(shù)據(jù)并以周為單位進(jìn)行了統(tǒng)計分析,如下圖所示。
此外,我們還對全國的感染設(shè)備數(shù)量做了進(jìn)一步的監(jiān)測統(tǒng)計,繪制了如下鯨鯊蠕蟲的全國感染分布圖。
23
和 2323
端口的 telnet 服務(wù),利用弱口令攻擊目標(biāo)設(shè)備的 telnet 服務(wù),嘗試感染并控制目標(biāo)設(shè)備。下圖為受感染設(shè)備的 TCP 連接列表的信息,我們從第三列的 rem_address
可以看到設(shè)備嘗試連接了大量 IP 的 0x0017(23,telnet)
端口。/dev
、/etc
、/var
、/var/tmp
上尋找一個可讀寫的目錄,下載一個 81c4603681c46036.*
(根據(jù)目標(biāo)CPU架構(gòu)的不同,有 armv4l
、mips
、i586
、sh4
等不同后綴名。)的蠕蟲文件。10000
和 20000
端口,保證只有一個蠕蟲的主進(jìn)程在運(yùn)行。23
端口,防止被別的進(jìn)程占用(禁止 telnet 服務(wù)再次被打開,或者被別的蠕蟲利用弱口令進(jìn)入)。6745
端口進(jìn)行登錄驗(yàn)證。6755
端口,6765
端口)。6765
端口,進(jìn)行登錄驗(yàn)證。23/2323
端口是否打開。wget/tftp/echo/printf
程序下載蠕蟲。蠕蟲向主控服務(wù)器的 6765
端口發(fā)送特定的 TCP 數(shù)據(jù)包,主控服務(wù)器根據(jù)驗(yàn)證結(jié)果,給蠕蟲下發(fā)驗(yàn)證結(jié)果。
如果登錄驗(yàn)證通過,蠕蟲程序會從主控服務(wù)器獲取弱口令數(shù)據(jù)。
蠕蟲掃描隨機(jī)產(chǎn)生的 IPv4 地址并且嘗試連接它們的 23/2323
端口,如果連接成功,再嘗試使用主控端提供的 300 組密碼進(jìn)行隨機(jī)嘗試。
蠕蟲程序通過 dump 目標(biāo)設(shè)備 busybox 程序的22字節(jié)的 elf 文件頭,來判斷目標(biāo)設(shè)備的 CPU 架構(gòu)。根據(jù)不同的 CPU 架構(gòu),下載不同的蠕蟲程序。
蠕蟲程序在軟件環(huán)境適配方面做了很大的工作,可以適配多種目標(biāo)設(shè)備的軟件環(huán)境。
測試根目錄、/dev
、/etc
、/var
、/var/tmp
目錄的讀寫能力,尋找可以讀寫的目錄。
在目標(biāo)設(shè)備上通過 wget 或 tftp 下載對應(yīng)設(shè)備 CPU 架構(gòu)的蠕蟲,并修改程序的可執(zhí)行權(quán)限,然后運(yùn)行蠕蟲。
如果目標(biāo)設(shè)備不存在 wget 或 tftp 程序,則通過 echo 或 printf 方式向目標(biāo)設(shè)備推送下載器,然后在目標(biāo)設(shè)備執(zhí)行下載器程序,下載并運(yùn)行蠕蟲程序。
蠕蟲程序內(nèi)嵌下載器包括了 arm
、mips
、power pc
及 sh架構(gòu)
。
下載器可以通過 HTTP GET 請求的方式從黑客服務(wù)器上下載“鯨鯊蠕蟲”執(zhí)行。
蠕蟲的感染子進(jìn)程會將目標(biāo) IP 的攻擊結(jié)果上報給主控服務(wù)器。
6755
端口,與主控服務(wù)器進(jìn)行登錄驗(yàn)證,利用報文校驗(yàn)值進(jìn)行認(rèn)證。蠕蟲向主控服務(wù)器的 6755
端口發(fā)送特定的 TCP 數(shù)據(jù)包,主控服務(wù)器根據(jù)驗(yàn)證結(jié)果,給蠕蟲下發(fā)驗(yàn)證結(jié)果,驗(yàn)證通過后繼續(xù)后續(xù)流程。
從主控服務(wù)器接收要轉(zhuǎn)發(fā)的數(shù)據(jù)及目標(biāo) IP 和端口號。
一旦接收到主控服務(wù)器發(fā)來的攻擊目標(biāo)的 IP 和端口號,蠕蟲程序會主動連接目標(biāo)。
蠕蟲可以將從主控服務(wù)器接收到的數(shù)據(jù),發(fā)送到目標(biāo)IP。
蠕蟲將目標(biāo)返回的流量數(shù)據(jù)轉(zhuǎn)發(fā)給主控服務(wù)器。
根據(jù)以上的分析可以看出,鯨鯊蠕蟲既沒有提供攻擊模塊,也沒有提供擴(kuò)展組件的下載執(zhí)行,因此對于鯨鯊蠕蟲本身而言,黑客當(dāng)前的目的并不在于攻擊而是在于利用蠕蟲傳播的手段來搭建一個代理網(wǎng)絡(luò)平臺。此外,鯨鯊蠕蟲還會將掃描感染階段的所有設(shè)備信息都上傳到主控端,無論是已成功感染還是未成功感染的設(shè)備,這樣黑客可以依據(jù)這些信息來制定更有針對性的弱密碼表進(jìn)行下發(fā),以感染更多的設(shè)備。該蠕蟲構(gòu)建的網(wǎng)絡(luò)最大的威脅可能在于,被利用來作為惡意攻擊的地下網(wǎng)絡(luò),使得原攻擊者難以被追蹤。