11月,FortiGuard實驗室觀察到一個用Go語言編寫的獨特殭屍網絡通過物聯網漏洞進行了傳播。這個殭屍網絡被稱為Zerobot,包含幾個模塊,包括自我複制、針對不同協議的攻擊和自我傳播。它還使用WebSocket協議與其命令和控制服務器通信。根據一些IPS簽名觸發計數,該活動在11月中旬之後的某個時候開始了當前版本的傳播。
受影響的平台:Linux;
受影響組織:任何組織;
影響:遠程攻擊者可以控制易受攻擊的系統;
嚴重級別:嚴重。
本文詳細介紹了該惡意軟件如何利用漏洞,並在進入受感染的設備後檢查其行為。
IPS簽名活動
IPS簽名活動
感染Zerobot利用多個漏洞來訪問設備,然後下載腳本以進一步傳播。完整的腳本如下圖所示。請注意,下載URL已從http[:]//zero[.]sudolite[.]ml/bins更改為http[:]]//176[.]65.137[.]5/bins。此Zerobot變體針對以下架構:i386、amd64、arm、arm64、mips、mips64、mips64le、mipsle、ppc64、ppc64le、riscv64和s390x。它使用文件名“zero”保存,這是活動名稱的來源。
2022年11月24日之前使用的下載腳本
當前下載腳本
Zerobot有兩個版本。 11月24日之前使用的第一個僅包含基本功能。當前版本增加了一個“selfRepo”模塊來複製自身,並感染更多具有不同協議或漏洞的端點。舊版本的功能列表如下圖所示。然而,以下技術分析是基於新版本的。
11月24日之前Zerobot版本的主要功能
技術分析——初始化Zerobot首先檢查其與Cloudflare的DNS解析器服務器1.1.1.1的連接。
檢查1.1.1.1:80的網絡連接
然後,它根據受害者的操作系統類型將自己複製到目標設備上。對於Windows,它將自己複製到文件名為“FireWall.exe”的“Startup”文件夾中。 Linux有三個文件路徑:“%HOME%”、“/etc/init/”和“/lib/systemd/system/”。
複製本身的代碼流
然後,它設置了一個“AntiKill”模塊,以防止用戶中斷Zerobot程序。該模塊監視特定的十六進制值,並使用“signal.Notify”攔截任何發送來終止或終止進程的信號。
AntiKill的部分代碼
技術分析——命令初始化後,Zerobot使用WebSocket協議啟動到其C2服務器ws[:]//176[.]65[.]137[.]5/handle的連接。
連接到C2服務器
從受害者發送的數據如下圖所示。基於WebSocket協議,我們可以對其進行屏蔽,以獲取帶有受害者信息的JSON:
{'Platform':'linux','GCC':'386','CPU':1,'Payload':'Direct','Version':1}
C2連接的流量捕獲
通信通道設置後,客戶端等待來自服務器的命令,包括“ping”、“attack”、“stop”、“update”、“kill”、“disable_scan”、“enable_scan”和“command”。有關“enable_scan”中漏洞的詳細信息,接下來會講到。
在zero.mips中接收命令
zero.386中接收到的命令
技術分析——開發Zerobot包括21個漏洞,具體如圖12所示,下圖中受影響的產品如下所示。除了一些物聯網漏洞外,還包括Spring4Shell、phpAdmin、F5 Big等,以提高其攻擊成功率。
Zerobot中的漏洞列表
Zerobot針對的易受攻擊設備列表
上圖頂部名為“ZERO_