幽影之網:揭密OpenNIC域名背后的新生僵尸網絡DawnBot

發布時間 2023-06-29

啟明星辰與廣州大學網安學院發現了一個使用OpenNIC域名作為C2的物聯網僵尸網絡,并將其命名為DawnBot。本文將從僵尸網絡規模及失陷主機分布、傳播方式、樣本技術分析等方面,對該僵尸網絡的感染、傳播、攻擊全生命周期細節等進行全面介紹,以作為各行業及相關企業制定網絡安全策略的參考。


2023年5月中下旬,啟明星辰在參與國家重點研發計劃項目“大規模異構物聯網威脅可控捕獲與分析技術(2022YFB3104100)”的研究過程中,發現了一個使用OpenNIC域名作為C2的物聯網僵尸網絡。這是繼Focha之后,又一個使用OpenNIC域名的僵尸網絡,而且其C2的單詞語義和Fodcha非常相似。目前,它的DDoS攻擊并不活躍,但仍然值得高度關注。


在我們跟蹤監測期間,該僵尸網絡一直在快速迭代其代碼,甚至一天內更新數次,最終在6月下旬趨于穩定。有趣的是,它運行后會在Console上打印輸出“monke”,并且其中一個C2域名是boat.pirate(海盜船),該僵尸網絡控制者應該是著名漫畫《One Piece》(中文名:海賊王/航海王)的粉絲。其中monkey是該漫畫主角姓氏,該角色家族以字母“D”為代號,代表黎明(Dawn)的意思。因此我們將該僵尸網絡命名為DawnBot,簡稱DBot。


網絡規模及失陷主機分布


據不完全統計,DawnBot控制的境內肉雞數(IP數計算)超過3000個,廣泛分布在全國24個省級行政區。以下是被控主機排名前10位的省級行政區:



傳播方式


目前為止,DawnBot主要使用telnet弱口令傳播,共硬編碼96個加密的telnet弱口令,暫時還沒發現利用漏洞的行為。在最初樣本里,并沒有telnet傳播功能。后續曾加入此功能,但期間也曾一度取消。


DawnBot隨機生成IP地址,當其23端口開放時,嘗試使用硬編碼telnet弱口令登錄。如果登錄成功,會把相關信息回傳給如下C2服務器:smellychink[.]geek,telnethakkas[.]pirate,hellochineseman[.]dyn,95[.]214[.]26[.]112。


樣本技術分析


DawnBot僵尸網絡支持多種CPU架構,包括arm、mips、mpsl和x86。為了跟蹤以及行文描述更方便,我們依據其主要功能特性的迭代變化,劃分為V1和V2兩個版本。以下是主要變化對比:



5月19號,我們首次檢測到V1樣本;6月8號出現V2樣本,V2最大變化是使用RC4加密敏感資源,并加入telnet傳播功能。


在本文中,我們主要以V2樣本為主進行分析,并穿插介紹V1到V2樣本的主要迭代變化。這些變化的細節可能包括代碼邏輯的微調、加密算法的調整等。整體而言,DawnBot僵尸網絡保持了相對穩定的基礎架構和C2通信模式。


1、初始化


為對抗沙盒等模擬環境的自動化分析,與其它流行僵尸網絡相同,DawnBot運行時首先會對啟動參數進行檢查,以確保自身的安全性。如果不攜帶參數,則直接退出。不同于其它家族的是,DawnBot運行后會將啟動參數發送至C2服務器進行額外的二次校驗。


當參數正確時,則進入執行流程:進程名偽裝、解密資源、檢測watchdog、開啟telnet掃描。隨后和C2建立通信并等待執行C2下發的指令。


在V2版本中會將進程名偽裝成“-/bin/sh”或者“-sh”,V1則為“TopG”。V2使用RC4加密敏感資源,在早期的V2樣本里,仍然存在部分明文字符串。但在快速更新迭代之后,最新V2版本里,除alphaset字符串之外,所有資源都被加密。


而在V1版本中,所有字符串都是明文的,包括C2、OpenNIC域名體系的NameServer以及其它一切字符串。


資源解密完成之后,DawnBot將在Console上打印解密出的字符串“monke”。V1版本則是打印明文的“what color is your botnet?”。


V2通過打開“/dev/watchdog”“/bin/watchdog”“/sbin/watchdog”設備,來檢測Linux看門狗。存在watchdog,即退出進程。


2、OpenNIC域名


從V1到早期的V2版本,DawnBot一直使用OpenNIC域名作為C2服務器,但從6月23號開始,V2樣本改用ICANN域名。OpenNIC是獨立于ICANN的另一套域名體系,它支持的TLDs如下:



DawnBot共有10個OpenNIC域名C2,其中3個用來回傳報告telnet傳播數據。另外7個用來作為控制C2,具有二層控制結構:boat.pirate、hahaidiot.dyn、eggfriedrice.geek、stoleyourbots.geek、donteatmycat.geek、donteatmydog.geek、ihateyellowpeople.dyn。


OpenNIC的域名無法通過常見的DNS(如8.8.8.8、114.114.114.114)解析,必須使用指定的NameServer。V1硬編碼了10個NameServer:



V1運行后,隨機選擇一個NameServer,向其請求解析C2,實際解析如下:



多數V2通過API接口動態獲取NameSever,6月8號的V2使用“/geoip/?res=1&r”。



6月12號的V2使用“/geoip/?res=10&r",從6月15號開始一直使用“/geoip/?res=20&r”。


V2通過硬編碼的IP:116.203.98.109動態獲取NameServer,并不是解析api.opennicproject.org得來的IP。且host是假冒的1.1.1.1,如下動態獲取NameServer:



在動態獲取到NameServer之后,隨機選擇一個,請求解析C2域名。



也有部分V2樣本,內部同樣硬編碼了RC4加密的NameServer,在動態獲取失敗時,使用硬編碼的NameServer解析C2。


從6月23號開始,DawnBot改用ICANN體系的C2:skidlord.re,但對應的IP沒有變化。


DawnBot是繼Fodcha之后,第二個嘗試使用OpenNIC域名作為C2的物聯網僵尸網絡家族。它C2的單詞語義和Fodcha非常相似,幾乎難以區分。合理猜測,也許兩者有某種關聯。目前,DawnBot仍然在持續更新中,雖然DDoS攻擊并不活躍,但仍值得高度關注。


3、通信協議


DawnBot和C2的通信協議相對簡單,只需要4輪即可與C2建立通信,且全程都是明文。第1字節是命令碼或者說數據類型。我們運行arm7樣本,以下是實際流量:



Step1:Bot→C2向C2發送參數,第1字節\x01是硬編碼的命令碼,其后是參數字符串“telnet. arm7”。C2目前似乎只支持類似參數telnet.arm4、telnet.arm6、telnet.arm7、telnet.mips、telnet.mpsl。我們嘗試過其它參數,很快會收到RST包,或者退出進程命令。


Step2:C2→BotC2在收到\x01表示的參數后,返回確認數據\x09。DawnBot只有收到\x09才會進行后續的操作。否則,會結束當前tcp連接,再重新連接C2。


Step3:Bot→C2向C2發送當前所使用C2服務器字符串,第1字節是命令碼\x10,隨后是C2服務器donteatmycat.geek,表示當前C2IP是由donteatmycat.geek解析而來。


Step4:Bot→C2向C2發送當前權限,第1字節是命令碼\x11,隨后是字符串root。如果當前不是運行在root權限下,則發送\x11nonroot。



至此,DawnBot上線成功,開始等待執行C2下發的指令。目前為止,只收到過6次DDoS攻擊指令,收到的主要是C2返回的心跳數據\x02,但DawnBot不會有任何回應,即心跳包是單方面由C2發送的。


4、攻擊指令


可能是DawnBot還處在構建迭代更新過程中,它的DDoS攻擊不是太活躍。截止到6月28號,我們只捕獲到6次DDoS攻擊指令。首次捕獲到的DDoS攻擊指令如下:



DawnBot的攻擊指令是明文的,各個參數以空格分隔。DDoS命令格式為:攻擊類型(1字節)、攻擊目標IP、端口,攻擊持續時間、攻擊payload長度。上述攻擊指令即是對目標85.217.xxx.xxx:80,發起icmp flood攻擊,持續120秒鐘,icmp payload長度為512字節。


必須指出的是,85.217.xxx.xxx是某個非?;钴SMirai的C2以及下載服務器。這頗有些黑吃黑的意味。


DawnBot共支持12類命令,包括DDoS攻擊命令,如下:



DawnBot支持3種協議(tcp、udp、icmp)共5個DDoS攻擊類型,包括syn_flood、ack_flood、udp_flood、udpbypass_flood、icmp_flood。


5、與其他家族的關聯


DawnBot v1會在Console上打印字符串“what color is your botnet? ”,我們曾分析過的新家族Andoryu是打印字符串“Project Andoryu (12/30/2022). What color is your botnet”。


除此之外,它們還有一個共同點,都會對連接C2失敗次數進行計數。DawnBot連接C2失敗超過一定次數會退出進程,Andoryu則是將該服務器廢棄不用。這在其它主流僵尸網絡里,并不多見。這實在不像是巧合,或許兩者背后的開發者存在某種關聯。


從DawnBot C2的單詞語義來看,作者充滿了種族歧視。這一點和Fodcha非常類似,兩者C2幾乎難以區分。以下是兩者C2的對比:



鑒于Andoryu和Focha也有一定相似之處,我們合理猜測,很可能三者背后的攻擊者存在某種關聯甚至是重合。但目前,我們還沒有更確切的證據。我們會繼續跟蹤觀察,查找它們之間的關聯。


IOC



關于“大規模異構物聯網威脅可控捕獲與分析技術”項目


啟明星辰是國家重點研發計劃項目“大規模異構物聯網威脅可控捕獲與分析技術(2022YFB3104100)”課題一“異構物聯網僵尸網絡威脅感知關鍵技術及系統(2022YFB3104101)”的核心承擔單位之一。項目及課題均由廣州大學網絡空間安全學院牽頭,旨在構建大規模物聯網攻擊威脅主動防護能力。