作者: 啟明星辰ADLab&電信云堤
1. 鯨鯊蠕蟲介紹
近期,啟明星辰ADLab與電信云堤發現了一款新型物聯網蠕蟲:鯨鯊蠕蟲,鯨鯊蠕蟲是首款利用物聯網設備來構建大型代理網絡的蠕蟲病毒,主要感染對象包括路由器、網絡攝像頭、交換機等物聯網設備,我們當前所發現的該蠕蟲受控于一臺位于俄羅斯的主機服務器。
此蠕蟲并未實現任何可以用于網絡攻擊的模塊,從我們目前的分析結果來看,該蠕蟲僅僅實現了一個 TCP 流量轉發的功能,黑客可以利用該功能向任何指定 IP 地址發送 TCP 數據包。因此我們推測,該黑客試圖利用蠕蟲來建立一個大型的網絡代理平臺,并利用該平臺管理的網絡設備來轉發其流量,以實現如下目的。
- 利用該代理平臺來提供代理服務謀取利益。
- 利用僵尸流量轉發功能來對目標實施如 HTTP 攻擊。
- 利用這些網絡設備來構建一個多級中轉站,為黑客提供攻擊掩護、身份隱藏等基礎設施。
該蠕蟲具備以下特點:
-
該蠕蟲擁有強大的可升級的弱口令密碼表,蠕蟲感染時利用的弱口令表由服務器在后臺進行升級。
-
蠕蟲感染行為較靈活,蠕蟲感染的目標可以由主控服務器指定,也可以由蠕蟲隨機生成感染的目標 IP。同時蠕蟲程序可以通過自帶的下載器下載或者利用 wget 或 tftp 程序從主控服務器下載。
-
蠕蟲適配物聯網設備不同的架構及軟件環境,該蠕蟲適配
mips、x86、arm、power pc、Hitachi的不同的 CPU 架構,兼容大端和小端的字節順序。在軟件環境方面,該蠕蟲適配帶 busybox 程序的環境和不帶 busybox 程序環境、適配帶 echo 程序的環境和帶 printf 程序的環境、適配帶wget/tftp/echo/printf的二進制回顯重定向的下載模式。 -
收集大量設備的網絡數據信息。主控服務器不僅收集受感染設備的用戶名、密碼、系統環境信息,還收集無法連接或連接異常的設備的IP及出錯原因。我們推測黑客企圖建立強大的設備數據庫信息,為后續的攻擊建立基礎。
可以看出,該蠕蟲與其他類型的物聯網僵尸(如 Mirai、Hajime、Qbot、KTN-RM 等)相比具有控制更加靈活、感染成功率更高、隱蔽性更好等優點。因而我們將這款新型的蠕蟲命名為“鯨鯊蠕蟲”。
2. 鯨鯊蠕蟲活躍量分析
在發現鯨鯊蠕蟲后,我們監測了鯨鯊蠕蟲最近一個月(2017年6月)的活躍IP數據并以周為單位進行了統計分析,如下圖所示。
根據活躍量柱狀圖顯示,在6月的第二周也就是6月8日至14日活躍量最高達到了 10975 個,而這個活躍量僅僅是當前所捕獲的單個 C&C 連接數量,也就是說僅在中國電信網絡中一個 C&C 所控制的物聯網設備就有上萬臺。而該蠕蟲絕不僅僅只有這么一個 C&C,按照黑客預配 C&C 的慣例,通常都會有多個 C&C,有的黑客組織還會預備幾十個,甚至成百上千個 C&C。因此,可以說目前所發現的感染設備僅僅只是該蠕蟲網絡的冰山一角。
此外,我們還對全國的感染設備數量做了進一步的監測統計,繪制了如下鯨鯊蠕蟲的全國感染分布圖。
從分布圖中可以看出,每個省份均有不同程度的感染,尤其是廣東省和江蘇省感染量最大,兩省感染數量總和接近全國感染量的50%。而這兩個省份同時也是攝像頭生成廠商最為密集、攝像頭安裝量最大的兩個省份。
3. 鯨鯊蠕蟲行為分析
3.1 行為分析

-
受控的 IoT 設備上的蠕蟲程序主動連接主控服務器的 6765 端口,獲得相應的弱口令表信息。
-
受控的 IoT 設備上的蠕蟲程序啟動多個進程連接新的 IoT 設備的
23和2323端口的 telnet 服務,利用弱口令攻擊目標設備的 telnet 服務,嘗試感染并控制目標設備。下圖為受感染設備的 TCP 連接列表的信息,我們從第三列的rem_address可以看到設備嘗試連接了大量 IP 的0x0017(23,telnet)端口。

-
受控的IoT設備上的蠕蟲程序會在新的 IoT 設備的根目錄、
/dev、/etc、/var、/var/tmp上尋找一個可讀寫的目錄,下載一個81c4603681c46036.*(根據目標CPU架構的不同,有armv4l、mips、i586、sh4等不同后綴名。)的蠕蟲文件。 -
被感染的 IoT 設備上的蠕蟲程序與主控服務器建立代理網絡,并將其用于中繼惡意流量以掩飾真實來源。
3.2 蠕蟲的核心流程

- 綁定
10000和20000端口,保證只有一個蠕蟲的主進程在運行。 - 查詢主機的 telnet 服務對應的 pid,kill 該 pid 對應服務進程。
- 綁定
23端口,防止被別的進程占用(禁止 telnet 服務再次被打開,或者被別的蠕蟲利用弱口令進入)。 - 連接主控服務器的
6745端口進行登錄驗證。 - 如果驗證成功,則接收主控服務器返回的數據,獲得新的主控服務器的ip和端口號(
6755端口,6765端口)。 - 從主控服務器獲取 16 字節的數據,作為后續隨機數的初始向量。
- 啟動網絡代理子進程。
- 啟動蠕蟲感染子進程。
3.3 蠕蟲感染的主要流程
- 蠕蟲程序連接主控服務器的
6765端口,進行登錄驗證。 - 從主控服務器獲取弱口令列表(共300組)。
- 蠕蟲程序產生 100 個 IP,給每個隨機 IP 發 tcp syn 包,探測這些隨機 IP 的
23/2323端口是否打開。 - 檢測目標設備的 CPU 架構。
- 在目標設備上尋找可以讀寫的目錄。
- 調用
wget/tftp/echo/printf程序下載蠕蟲。 - 向主控服務器上報目標IP攻擊的結果,包括目標 IP、端口號、成功/失敗原因、弱口令密碼表索引值、目標IP的設備架構和軟件架構。
3.3.1 登錄驗證
蠕蟲向主控服務器的 6765 端口發送特定的 TCP 數據包,主控服務器根據驗證結果,給蠕蟲下發驗證結果。

3.3.2 獲取弱口令表
如果登錄驗證通過,蠕蟲程序會從主控服務器獲取弱口令數據。

3.3.3 搜索感染目標
蠕蟲掃描隨機產生的 IPv4 地址并且嘗試連接它們的 23/2323 端口,如果連接成功,再嘗試使用主控端提供的 300 組密碼進行隨機嘗試。

3.3.4 判斷目標設備的CPU架構
蠕蟲程序通過 dump 目標設備 busybox 程序的22字節的 elf 文件頭,來判斷目標設備的 CPU 架構。根據不同的 CPU 架構,下載不同的蠕蟲程序。

3.3.5 軟件環境適配
蠕蟲程序在軟件環境適配方面做了很大的工作,可以適配多種目標設備的軟件環境。

3.3.6 監測可讀寫的目錄
測試根目錄、/dev、/etc、/var、/var/tmp 目錄的讀寫能力,尋找可以讀寫的目錄。

3.3.7 下載蠕蟲
在目標設備上通過 wget 或 tftp 下載對應設備 CPU 架構的蠕蟲,并修改程序的可執行權限,然后運行蠕蟲。

如果目標設備不存在 wget 或 tftp 程序,則通過 echo 或 printf 方式向目標設備推送下載器,然后在目標設備執行下載器程序,下載并運行蠕蟲程序。

蠕蟲程序內嵌下載器包括了 arm、mips、power pc 及 sh架構。

下載器可以通過 HTTP GET 請求的方式從黑客服務器上下載“鯨鯊蠕蟲”執行。

3.3.8 攻擊結果信息上報
蠕蟲的感染子進程會將目標 IP 的攻擊結果上報給主控服務器。

3.4 網絡代理實現流程
- 連接主控服務器的
6755端口,與主控服務器進行登錄驗證,利用報文校驗值進行認證。 - 從主控服務器中讀取數據,然后從數據中取出目標設備的 IP 和端口號,以及要下發的數據。
- 連接新的目標設備的 IP 和端口,將要轉發的數據發出去。
- 接收目標設備返回的數據。
- 將返回的數據發給主控服務器。
3.4.1 登錄驗證
蠕蟲向主控服務器的 6755 端口發送特定的 TCP 數據包,主控服務器根據驗證結果,給蠕蟲下發驗證結果,驗證通過后繼續后續流程。

3.4.2 接收要轉發的數據
從主控服務器接收要轉發的數據及目標 IP 和端口號。

3.4.3 連接目標地址
一旦接收到主控服務器發來的攻擊目標的 IP 和端口號,蠕蟲程序會主動連接目標。

3.4.4 發送轉發的數據
蠕蟲可以將從主控服務器接收到的數據,發送到目標IP。

3.4.5 轉發目標IP接收到的數據給主控服務器
蠕蟲將目標返回的流量數據轉發給主控服務器。

4. 總結
根據以上的分析可以看出,鯨鯊蠕蟲既沒有提供攻擊模塊,也沒有提供擴展組件的下載執行,因此對于鯨鯊蠕蟲本身而言,黑客當前的目的并不在于攻擊而是在于利用蠕蟲傳播的手段來搭建一個代理網絡平臺。此外,鯨鯊蠕蟲還會將掃描感染階段的所有設備信息都上傳到主控端,無論是已成功感染還是未成功感染的設備,這樣黑客可以依據這些信息來制定更有針對性的弱密碼表進行下發,以感染更多的設備。該蠕蟲構建的網絡最大的威脅可能在于,被利用來作為惡意攻擊的地下網絡,使得原攻擊者難以被追蹤。
啟明星辰積極防御實驗室(ADLab)
ADLab成立于1999年,是中國安全行業最早成立的攻防技術研究實驗室之一,微軟MAPP計劃核心成員。截止目前,ADLab通過CVE發布Windows、Linux、Unix等操作系統安全或軟件漏洞近300個,持續保持亞洲領先并確立了其在國際網絡安全領域的核心地位。實驗室研究方向涵蓋操作系統與應用系統安全研究、移動智能終端安全研究、物聯網智能設備安全研究、Web安全研究、工控系統安全研究、云安全研究。研究成果應用于產品核心技術研究、國家重點科技項目攻關、專業安全服務等。

本文由 Seebug Paper 發布,如需轉載請注明來源。本文地址:http://www.bjnorthway.com/349/
暫無評論