全天候攻擊:物聯網僵尸網絡GorillaBot揭秘
發布時間 2025-01-07導語:
啟明星辰與廣州大學網安學院監測到一個自稱GorillaBot的物聯網僵尸網絡。本文通過對該僵尸網絡進行樣本技術分析,全面介紹了其基本信息、攻擊目標、傳播方式等細節,以作為各行業及相關企業制定網絡安全策略的參考。
2024年9月初,啟明星辰在參與國家重點研發計劃項目“大規模異構物聯網威脅可控捕獲與分析技術(2022YFB3104100)”的研究過程中,監測到了一個自稱GorillaBot的物聯網僵尸網絡。
自發現以來,GorillaBot僵尸網絡在發起分布式拒絕服務(DDoS)攻擊方面表現出異?;钴S的態勢。根據監測統計,截至9月底,該僵尸網絡的命令與控制(C2)服務器已下發超過30萬條攻擊指令。此外,GorillaBot所發動的DDoS攻擊呈現出全天候、24小時不間斷的特點,不同于一些有規律作息模式的攻擊行為,此次攻擊沒有表現出任何休息或減弱的跡象,顯示出攻擊者意在長期維持高壓態勢,對目標造成持續性的壓力和損害。
攻擊活動一直持續到11月下旬,期間我們觀察到C2服務器的數量逐漸減少,最終下線。然而,到了12月,新的GorillaBot樣本再次出現,并迅速部署了一套全新的C2基礎設施,重新恢復并維持了高強度的全天候攻擊態勢。
技術分析
1、基本信息
GorillaBot同樣基于Mirai進行的二次開發。在9月份捕獲的樣本幾乎完全復用了Mirai的源代碼,并在此基礎上引入了多種新的DDoS攻擊方法,增強了其攻擊能力。從10月份開始,其代碼開始進行優化調整,新版本在通信協議中引入了加密及校驗機制,進一步增強了其攻擊活動的隱蔽性和抗干擾能力,并且一直保持到了現在。
運行后,它會在屏幕上打印字符串“The Gorilla Botnet Cats Came After You!”,這也是GorillaBot名稱的由來。
GorillaBot致力于多平臺適配工作,旨在擴大其潛在感染范圍。自9月份以來,它已經支持了包括arm、misp、x86_64以及x86在內的多種CPU架構。隨著版本迭代,在10月份新增了對mipsel架構的支持;到12月,又進一步擴展至m68k、sh4和sparc等更多樣化的處理器類型。
2、攻擊目標
截止目前,GorillaBot的攻擊活動已經波及全球超過130個國家和地區。其攻擊目標涉及各種行業領域,包括但不限于電信、運營商、銀行、云計算數據中心、游戲、教育、政府網站、博彩等。尤其值得注意的是,中國和美國是此次攻擊活動受害最為嚴重的兩個國家。
國內有4300多個目標IP被攻擊,涵蓋全國所有省級行政區,包括港澳臺。從地域分布來看,受害最嚴重的地區是香港、浙江、廣東、湖北、江蘇等省份。
另外,從攻擊方式來看,GorillaBot更傾向于發起UDP協議的DDoS攻擊,占整個攻擊活動的42%以上。包括udp_plain、vse、udp_discord、udp_a2s、udp_fivem、udp_openvpn。
3、傳播方式
GorillaBot主要使用Telnet弱口令猜解的方式擴散,通過內置硬編碼的96種常見弱口令組合嘗試未經授權訪問設備。
在9月初的早期樣本中,GorillaBot曾短暫地利用了Hadoop Yarn RPC未授權訪問漏洞來進行傳播,隨后更新便移除了針對Hadoop漏洞的利用代碼,最終僅保留了基于Telnet弱口令暴力破解這一簡單高效的傳統傳播手段。
行為分析
1、初始化
在2024年9月的早期樣本中,我們發現了大量與調試器檢測相關的字符串。這些字符串的存在表明攻擊者有意圖地設計了復雜的邏輯來識別是否存在調試工具正在監控或修改其行為。以下是一些在早期樣本中發現的典型調試器檢測字符串示例:
但是,并未發現這些字符串有任何實際引用,也未能找到其它檢測調試器的代碼。這表明雖然GorillaBot的開發者似乎有意圖加入調試器檢測功能,但在該版本中這些功能可能還沒有實現。
自2024年10月起,GorillaBot樣本引入了實際的調試器檢測機制。首先通過檢測"/proc/self/status"文件中的"TracerPid"字段來檢測調試器。如果檢測到調試器則立即退出進程。
繼而通過檢查文件"/proc"文件是否存在,作為判斷當前環境是否為蜜罐的依據。
隨后檢查cgroup信息中的特定字符串來判斷是否運行在容器環境中,特別是查找包含"kubepods"的字符串。
為了確保在系統重啟后仍能執行,GorillaBot采用了創建系統服務的方式實現持久化。具體來說,它會在/etc/systemd/system/目錄下創建一個名為custom.service的服務文件,使其能夠在系統啟動時自動運行。
custom.service服務的核心功能是下載名為lol.sh的腳本到/tmp/目錄,設置執行權限并執行。下載鏈接來自硬編碼的字符串"kwws=22;:14531;7157:2oro1vk",依次減去0x03即可解密出下載鏈接。
為了進一步確保其持久性,GorillaBot還會對關鍵系統配置文件(/etc/inittab、/etc/profile、/boot/bootcmd)進行修改添加命令,以實現在系統的不同啟動階段自動下載并執行lol.sh腳本。
在/etc/init.d/目錄下創建名為"mybinary"或者"system"的腳本,設置它在系統啟動時執行,去下載下載執行lol.sh腳本。
此外,GorillaBot還會嘗試在/etc/rc.d/rc.local或/etc/rc.conf(如果不存在)中添加指向"mybinary"或者"system"的軟鏈接,以確保在系統啟動時自動執行該腳本。
這種多層次、多途徑的持久化策略既反映了GorillaBot開發者對系統機制有很深刻的理解,也表明了致力于長期控制受感染者的設備。
上述步驟完成之后,則進入Mirai類物聯網僵尸網絡常見的執行流程:監聽38242端口以實現單一進程實例、開啟telnet掃描等,隨后和C2建立通信并等待執行C2下發的DDoS命令。
2、C2服務器
9月份的GorillaBot樣本硬編碼5個C2,減去0x03即可解密。10月份起,引入一個非常復雜的加密函數enc_switch,用來解密C2服務器字符串,每個C2都有一個的密鑰。
其實10月份之后的樣本,C2通信開啟加密驗證,加密也使用enc_switch函數。顯然,其實現的是某種對稱加密算法。12月份的樣本只有一個硬編碼的明文C2服務器,不再加密C2字符串。
3、通信協議
9月初的樣本完全復刻了Mirai的通信協議,包括上線數據,心跳包以及攻擊命令等各方面都和Mirai沒有任何區別。10月份起,樣本在總體保留Mirai通信協議的同時,新加入了加密和校驗機制。以上線數據與攻擊指令為例。
3.1 上線數據
連接C2成功后,首先向C2發送1字節的0x01。C2向Bot返回4字節的隨機數據,本例是"\x3f\xf3\x05\x62"。GorillaBot通過對稱加密算法,加密上述4字節數據,計算密文的Sha256,并發送給C2。C2在收到密文的Sha256,校驗無誤之后,返回1字節的0x01作為認證通過數據。隨后GorillaBot發送保留的Mirai協議數據,至此上線成功,進入互相發送心跳包以及下發DDoS指令階段。從上線到C2下發DDoS攻擊指令,整個交互流程如下:
3.2 攻擊指令
自9月份出現伊始,GorillaBot就進入異?;钴S的攻擊階段。C2每天下發的DDoS攻擊指令數量驚人,達到1萬條甚至2萬條以上。更值得注意的是,GorillaBot的攻擊是全天候的,一天24小時內都在不間斷下發攻擊指令,沒有任何休息間斷時間。
GorillaBot的攻擊指令載荷數據使用按字節加0x03的方式加密,對加密后數據的計算Sha256,作為校驗值使用。
GorillaBot在接收到DDoS攻擊指令后,先校驗攻擊指令載荷數據的Sha256,校驗通過之后,再減去0x03解密。隨后調用attack_parse函數去執行。
以某DDoS攻擊指令為例:
前2字節是本幀DDoS攻擊指令的數據長度減去2,隨后32字節是DDoS攻擊指令載荷數據的Sha256校驗值。上圖綠色部分是Sha256校驗值,從偏移34到結尾是的紅色部分是真正的DDoS攻擊指令載荷數據。驗證如下:
DDoS攻擊指令載荷數據減去0x03即可解密,如下:
解密后的DDoS攻擊指令載荷數據和Mirai完全一致。事實上,仔細觀察會發現,如果去掉Sha256校驗和加密,它完全就是Mirai的攻擊指令格式。上述攻擊指令簡要描述如下:
因此,上述DDoS攻擊指令即是向指定目標159.xxx.xxx.29:80,發起attack_udp_vse類型的攻擊,持續120秒鐘。攻擊流量如下:
目前,GorillaBot目前共支持20個 DDoS攻擊類型,如下:
總結
截至目前,GorillaBot僵尸網絡仍然處于高度活躍狀態,每天通過C2服務器下發接近一萬條攻擊指令,對全球范圍內的目標IP地址持續發起分布式拒絕服務(DDoS)攻擊,影響了從金融到公共服務等多個關鍵行業。它全天候、無間斷地對全球各地的目標進行攻擊,不僅頻率高而且覆蓋廣泛,已經成為當今互聯網安全領域的一大威脅。
此外,GorillaBot仍在不斷更新其代碼庫以保持最新的攻擊能力。盡管這些更新大多集中在細微之處,并未出現革命性的變化,我們仍會繼續跟蹤觀察,尤其是其攻擊目標的選擇以及攻擊能力的進化。同時,也提醒各機構和個人用戶加強對網絡安全防護措施的重視,如及時更新軟件補丁、強化密碼管理等,以降低遭受攻擊的風險。
IOC
C2:
LOL Download URL:
SHA256:
1276a39c595af5b314111387ef58fd3fc11c55e62a140b8a2c4ff0132b648243
23459e531e09663d4fe7b1d3cca93b278eabe438e843f33dea95124fe9bb081d
23c870185f29b1e92dbd10993e944c69dc50fc58cc2ee3e79712c9b5f3dd50d1
2970ffa62f3033c64a781ce28395103f6d0385b2b67988ad554c14c2440a4508
6d44898df317ce936f82196b60c65e1038610ce4e9d4e8ef8151d798af140a0d
3aaee5e38481750900c5949aa54e45acd43a162d009f04ec24893cd2ecb38d73
3c60e9e280de8798ffebfdd361f2fbbafe78c65e4ba0579ae1717684594a2ed5
3905126f5f9f7430dee31c207706852e56292291449b563781bc6ee0b540343a
549627b2ba0ef60640456a03a70e46d4c45726443fd9ac4f48bddb8aab625c9b
78cbf2863748c64ea013c2676744de4090a9029c00aade1b7cf9e698c1f95b56
ec194196bdb79b046a5dfab35a70e301376f29fa841698bf3819850168d0b09f
d339e88fd6b6f2ad713c835639d09022cbc92d55dab8a0a5006c18ca5d8e01a9
ff88b732f6fbcf440c03b1de170ab6d3b489477c93daca5057c5a7344d05f5b2
注: