暗影中的巨獸:物聯網僵尸網絡Andoryu近期變化分析
發布時間 2023-06-14啟明星辰與廣州大學網安學院發現了物聯網僵尸網絡Andoryu的新型變種Andoryu_V2。本文將從僵尸網絡規模、傳播方式、樣本技術分析三方面,對該僵尸網絡傳播、感染、C&C控制、攻擊全生命周期細節等進行介紹,可作為各行業及相關企業制定網絡安全策略的參考。
2023年3月底,啟明星辰在參與國家重點研發計劃項目“大規模異構物聯網威脅可控捕獲與分析技術(2022YFB3104100)”的研究過程中,發現了基于Socks5協議的物聯網僵尸網絡Andoryu的新型變種(Andoryu_V2)。
Andoryu_V1版本已于今年2月份被首次揭露,本次我們將對比分析Andoryu_V2版本和Andoryu_V1版本,詳細呈現出該僵尸網絡傳播、感染、C&C控制、攻擊全生命周期細節。此外,通過2個多月的監測分析發現,我們發現Andoryu_V2版本有新增利用CVE-2022-30525、CVE-2023-25717漏洞的行為,新增代理服務器超過130個,反映出該僵尸網絡進一步擴張的意圖,需要加強安全防范。同時,我們還發現該僵尸網絡與Fbot可能具有一定的關聯性。
僵尸網絡規模
監測分析發現,Andoryu僵尸網絡平均日增上線境內肉雞數(IP數計算)超過1500臺,正處于發展初期。2023年4月底到5月初,Andoryu有一次比較大規模的傳播,日存活量超過2000。
傳播方式
截止到目前,我們觀察到Andoryu主要使用NDay漏洞傳播。所用漏洞列表如下:
2023年2月-3月,Andoryu多使用CVE-2021-22205、LILIN DVR RCE漏洞傳播。
2023年4月,新加入CVE-2023-25717的利用,一個Ruckus Wireless設備的漏洞。利用成功后下載執行腳本文件ruckus.sh,以植入Andoryu。
2023年5月8日,我們監控到對Zyxel防火墻遠程命令注入漏洞CVE-2022-30525的利用。
在可預見的將來,Andoryu很可能還會加入新漏洞的利用,豐富其武器庫。
樣本技術分析
Andoryu僵尸網絡支持多種CPU架構,包括arm、m68k、mips、mpsl、sh4、spc和x86等。以下是主要變化對比:
在本文中,我們主要以5月8日的V2樣本為主進行分析,并穿插介紹V1到V2樣本的主要迭代變化。這些變化的細節可能包括代碼邏輯的微調、加密算法的調整等。整體而言,Andoryu僵尸網絡保持了相對穩定的基礎架構和C2通信模式。
1、初始化
為對抗沙盒等模擬環境的自動化分析,與其它流行僵尸網絡相同,Andoryu運行時首先會對啟動參數進行檢查,以確保自身的安全性。如果不攜帶參數,則直接退出。不同于其它家族的是,Andoryu運行后會將啟動參數發送至C2服務器進行額外的二次校驗。
當參數正確時,則進入執行流程:進程名偽裝、解密資源,隨后和C2建立通信并等待執行C2下發的指令。
在V2版本中會將進程名偽裝成"DvrHelper"或者"-bash" ,V1則為"/bin/bash"。解密敏感資源V2版本使用的是異或,而在V1版本中使用的是某種魔改版的xxtea算法解密:
有趣的是,資源解密工作完成之后,Andoryu將在Console上打印解密出的字符串"Project Andoryu (12/30/2022). What color is your botnet" 或"Andoryu botnet started (12/30/2022)",這表明Andoryu很可能是2022年12月30號啟動的項目。
2、通信協議
監測發現,絕大多數Andoryu的樣本均不直接與C2進行通信,而是通過Socks5代理服務器進行轉發,呈現兩層控制結構。5月8號的V2樣本曾短暫去除Socks5代理,但后來很快又恢復。在V1版本只有一個代理服務器,V2版本便增加至130多個。
在C2通信交互上,Andoryu與Fodcha非常類似,通過狀態碼切換以執行不同操作:
主要狀態如下:
Andoryu在與C2服務器進行通信時,使用定長為2152字節的數據結構封裝。V1和V2都是如此,整體封裝結構如下:
以上線數據為例:
首個4字節為公網IP;4字節隨機數據24 52 ae 57;2字節20 21為數據類型,表示為上線數據;4a d8 74 50 4d de 為xor加密后的數據內容,解密后實際為啟動參數。
32字節sha256校驗和5d 7f 05 6e...67 7b 05 68;偏移0x84C處 06 00 00 00 表示payload長度;偏移0x854處86 0f 為內存大小,0x0f86即為3974M;最后payload的異或Key隨機生成,并保存在上線數據的偏移0x861-0x864處,本例是38 ad 17 3b。
隨后C2返回的確認數據,前4字節是C2 地址,本例是68 ea ef b0。隨后4字節是隨機數據c7 fc b8 00。再之后2字節的20 22代表是確認數據,至此,Andoryu上線成功。
3、攻擊指令
Andoryu的攻擊很活躍,我們監控到很多次C2返回的DDoS攻擊命令,如下一例:
命令解析如下:
payload異或解密后為"udp-plain 135.xx.xx.xx 60 dport=53 psize=150",隨后Andoryu向135.xx.xx.xx:53發起udp-plain DDoS攻擊:
Andoryu對C2命令的處理函數沒有任何變化,以下是2月和5月樣本的對比:
目前,Andoryu共支持6類指令,包括DDoS攻擊命令,如下:
Andoryu支持3種協議(tcp、udp、icmp)共16個DDoS攻擊類型,包括tcp-raw、tcp-socket、tcp-cnc、tcp-handshake、tcp-ovh、tcp-bypass、udp-plain、udp-game、udp-ovh、udp-raw、udp-vse、udp-dstat、udp-bypass、udp-hex、udp-rhex、icmp-echo。
4、與其他家族的關聯
Andoryu和C2的通信交互在代碼層面和FodCha非常類似,都是一個永真的While循環,通過switch-case進行各個階段的處理。到目前為止,這種方式是已知僵尸網絡里唯二的例子。另外,Fodcha V3也使用xxtea加密算法,而Andoryu V1是使用某種魔改版的xxtea。
這似乎表明,兩者也許有某種關聯,但除了上述兩點,暫時沒有更多實錘證據。不過,Andoryu和Fbot有確切的關聯,他們曾經使用同一個C2。5月13號的V2樣本里,通過socks5連接C2服務器dnsresolve.socialgains.cf:10333。
而在5月4號,我們監控到有Fbot樣本使用dnsresolve.socialgains.cf:61002作為自己的C2服務器。我們會繼續跟蹤觀察,查找Andoryu和其它家族的關聯。
5、IoC