「IOT幽靈」樣本分析報告:物聯網殭屍網路的監測與分析
背景
近年來,國家高度重視物聯網的發展,物聯網已經上升為國家戰略產業。隨著物聯網的普及,規模的擴大,安全問題也必然隨之而來。
16年10月,Mirai利用物聯網設備發動一起規模龐大的DDoS攻擊,引起了人們對物聯網安全問題的重視。
近日,蜜罐系統捕獲到與Mirai具有相同特點的攻擊樣本(Backdoor.Linux.Gafgyt,下面簡稱「Gafgyt」)。Gafgyt於 2014 年 8 月第一次被發現,2014 年末LizardSquard ( 黑客組織 ) 利用該樣本發起一起DDoS引起安全界的小範圍關注。 2015 年 1 月 Gafgyt 的源代碼被公開,出現越來越多的變種,安全威脅日趨嚴重。
蜜罐告警
7月13日,蜜罐系統監測到大量的telnet爆破事件
截止7月30號,兩周共捕獲到Gafgyt新變種樣本28個
我們統計了蜜罐最近一周telnet埠受到的攻擊次數
攻擊來源 | 攻擊次數 | 百分比 | IP歸屬地 |
---|---|---|---|
180.163.192.211 | 222530 | 21.76% | 上海市 |
84.244.31.8 | 76573 | 7.48% | 俄羅斯 |
85.154.111.67 | 69943 | 6.84% | 阿曼 |
122.54.169.122 | 61161 | 6.10% | 菲律賓 |
71.227.146.158 | 46205 | 4.52% | 美國 |
195.22.126.166 | 25567 | 2.50% | 波蘭 |
93.87.168.206 | 15316 | 1.50% | 塞爾維亞 |
61.48.40.26 | 15027 | 1.47% | 北京市 |
151.65.163.68 | 12691 | 1.24% | 義大利 |
178.132.2.114 | 11154 | 1.10% | 俄羅斯 |
行為分析
Gafgyt逐漸演變成一個龐大的家族,樣本支持X86-64/ARM/MIPS/PowerPC/Motorola68000/SPARC/SuperH等多個不同平台,每個樣本的上線(主控)IP也各不相同。
MD5 | 運行平台 | 主控IP |
---|---|---|
521fd3a64c9d50fb5cf88c306572ef24 | ARM | 185. . .25:444 |
5d8c1884e29ea1cfa81bf59079702d75 | X86 | 185. . .117:23 |
2d764a26d6bcbcabf1d87c94ca43d6cf | ARM | 104. . .150:444 |
我們重點分析了X86平台的變種(其它平台變種程序邏輯相同),首先看一下程序運行邏輯:
樣本運行後,首先將自身進程改名,偽裝成/usr/sbin/dropbear(類似SSH服務),這是Linux下木馬慣用伎倆,目的是讓TOP或PS命令所看到的進程路徑和樣本實際路徑不同,運維人員可能較容易發現可疑進程,但找到樣本 實際路徑需要費點功夫,增加了手工查殺的難度。
然後和主控端建立連接,連接後發送上線信息。
並創建埠監聽,接收並處理主控端發送的指令。
樣本包含15條通信指令
指令 | 含義 |
---|---|
PING | 心跳包,響應回復「PONG」 |
GETLOCALIP | 獲取本地ip |
SCANNER | 開始掃描 |
HOLD | 和指定ip保持連接 |
JUNK | 發送垃圾數據 |
UDP | UDP攻擊 |
TCP | TCP攻擊 |
HTTP | HTTP攻擊 |
CNC | 同指定ip建立連接 |
COMBO | 調用JUNK/HOLD兩處函數 |
KILLATTK | 結束所有任務 |
FATCOCK | 刪除一些文件 |
GTFOFAG | 結束自身進程 |
DUPPP | 結束自身進程 |
SH | 執行命令 |
下圖是PING、SH兩條指令的代碼截圖:
比較特殊的是SCANNER指令,當一個Bot端接收到這個指令時,將啟動一個子進程(以fork方式),該子進程在與主控端失聯的情況下,依然對公網隨機IP的23埠進行掃描爆破,除非接收到KILLATTK/GTFOFAG/ DUPPP指令。
接下來讓我們一起看看掃描爆破的流程是怎樣的,一提到掃描爆破,很多人會想到高效的掃描工具+強大的密碼字典,是黑客必備工具。但該樣本的密碼字典卻出奇的簡單(28個常見用戶名、密碼),如下圖:
看到上圖,你可能立即想問:這麼簡單的字典能爆破什麼東東啊?
在分析樣本時我們也有相同的疑問,按照以往的經驗,黑客用來爆破SSH/Telnet的字典數量一般在幾百到2000左右,這個樣本採用少量的密碼字典,推測一是跟大範圍的掃描公網IP,字典少掃描效率相對較高;二是和病毒作者想攻擊的目標有關——IoT設備,互聯網上存在大量的IOT設備(開啟Telnet 23埠)使用默認或簡單的密碼,說明這些設備的使用者安全意識比較薄弱,拿下這些設備反而能作為長期「肉雞」來使用。
以上只是我們的推測,歡迎各位大神拍磚,交流下不同的看法。
掃描開始之前會通過調用getrlimit函數計算一下最大能同時打開的文件數,並將該值的四分之三作為同時掃描的最大ip數,防止並發連接數過多,影響被感染設備正常運轉,避免被用戶察覺。
並且會建立一個結構體數組,數組元素如下圖所示:
每個元素裡面記錄了掃描目標和掃描中的一些狀態。
對於每個ip,從開始掃描到成功最多經歷9個狀態變化。對每個狀態作不同的處理:
case 0
:生成公網ip 嘗試連接如果成功連接會將該ip的狀態設置為1;如果失敗,則將更換ip標誌置1,下一輪循環的時候,重新生成目標ip。
case 1
:設置socket狀態檢查socket是否可寫,並設置一些掃描過程中需要的標誌。
case 2
:是否需要輸入賬號檢查是否需要輸入賬號密碼,如果不需要則下一輪循環直接跳到狀態7,開啟shell。
case 3
:發送爆破賬號
成功則進入狀態4;否則跳回狀態0。
case 4
:判斷是否需要密碼 判斷賬號是否正確判斷目標的telnet是否需要輸入密碼,如果需要,則進入狀態5;如果不需要輸入密碼,則直接跳到狀態7,開啟shell;出錯則跳回狀態0。
case 5
:輸入密碼成功則進入狀態6;否則跳回狀態0
case 6
:判斷密碼是否正確
判斷密碼是否正確,如果不正確的話,換下一個密碼,繼續嘗試連接。密碼正確則進入狀態7。
case 7
:開啟shellcase 8
:發送下載的指令 上傳賬號密碼開啟shell後,向目標主機發送下載指令,同時向主控端發送,發送下載指令時間間隔小於8秒,程序認為指令發送成功,並認為本次賬號+密碼+IP爆破成功,並且打開了shell。
向目標機發送下載的指令。這樣,目標也被感染木馬。
流量截圖
程序會將成功爆破的主機信息(IP+Username+Password)發送到主控端。
後續
物聯網(IOT)已經走入我們的生活,相信不久的將來,我們會越來越依賴物聯網的普及所帶來的方便與快捷,而黑客也把物聯網作為新的攻擊目標,攻擊規模會日益擴大。所以,物聯網安全值得我們每一個人去關注。
*本文原創作者:水滴安全實驗室,屬於FreeBuf原創獎勵計劃,禁止轉載。
※知道創宇趙偉:單打獨鬥非好漢,合作方能成就未來
※常見的WiFi攻擊技術及檢測方法總結
※ACHE:一款功能強大的聚焦型網路爬蟲
TAG:FreeBuf |