DanaBot木馬更新C2通訊
DanaBot是一款快速發展和模組化的木馬,自出現以來已經經過了多次修改,最新版本的木馬使用了全新的C2通訊協議。2019年1月發現的DanaBot變種中的C2協議對C2通訊加入了多層加密。
除了通訊協議的變化,DanaBot的架構和攻擊活動ID也發生了改變。
DanaBot
自2018年5月出現以來,DanaBot木馬就非常活躍,先後出現在攻擊澳大利亞、波蘭、義大利、德國、奧地利、烏克蘭以及美國的垃圾郵件活動中。在針對歐洲的攻擊活動中研究人員發現木馬擴充套件了新外掛和垃圾郵件傳送功能來增加其功能。
2019年1月25日,研究人員發現一個DanaBot相關的可執行檔案。進一步檢查和分析發現,這些二進位制檔案事實上是DanaBot的變種,但使用的C2通訊協議與之前的變種有所不同。從2019年1月26日起,DanaBot運營者已經不再用舊的C2協議來構建二進位制檔案。
截止目前,新變種一共以兩種場景進行傳播:
·以更新的方式傳遞給現有DanaBot的受害者;
· 通過波蘭的垃圾郵件攻擊活動。
新通訊協議
1月25日之前使用的通訊協議中,包並沒有加密,如圖1所示:
圖1 – 舊協議中資料包以明文形式存在
在新變種中,DanaBot在C2通訊協議中使用AES和RSA加密演算法。新協議更加複雜,使用了多層加密技術,如圖2所示:
圖2 –DanaBot新通訊協議
這些變化打破了現有的基於網路的簽名機制,因此很難在IDPS中寫入新的規則。如果沒有對應的RSA金鑰,就無法解密傳送或接收的packet,因此基於雲分析系統的PCAP檔案對研究人員來說是無法使用的。
圖3 – 獲取的使用新通訊協議的packet
客戶端傳送的每個packet都有一個24 (0x18)位元組的header:
對每個packet,header之後是AES加密的packet資料,然後是表示AES padding大小的4位元組的值,最後是RSA解密的AES金鑰。每個packet都使用不同的AES金鑰。
伺服器響應都使用相同的格式。而在之前的版本中,伺服器響應的packet資料並不遵守特定的佈局。
Packet data layout
2018年10月,proof對packet data layout進行了詳細 說明 。最新的DanaBot變種中,資料佈局進行了簡單修改,如圖4所示:
圖4 –DanaBot不同版本的packet data layout比較
DanaBot架構的變化
除了通訊協議外,DanaBot的架構也發生了變化。之前的DanaBot版本包含一個下載和執行main模組的部分。Main模組會下載和執行外掛和配置。
最新的版本將所有的責任都轉變到新的載入器模組,這是用來下載所有外掛的。駐留是通過將載入器以服務的形式註冊。
圖5 –DanaBot不同版本的架構比較
命令
根據研究人員的分析,載入器模組會使用下面的命令:
·0x12C – Hello. 客戶端傳送給伺服器的第一條命令
· 0x12D – 下載32/64位的啟動器元件
· 0x12E – 外掛和配置檔案的請求列表
· 0x12F – 下載外掛和配置檔案
下載外掛和配置檔案是用來自客戶端ID的AES key來解密的。外掛還使用ZIP格式和LZMA壓縮方式進行壓縮,而配置檔案是用zlib方式壓縮的。
ID為0x130 – 0x134的命令是main模組傳送的:
· 0x130 – 上傳收集的資訊到C2伺服器
· 0x131 – 上傳收集的資訊到C2伺服器
· 0x132 – 請求C2伺服器下一步的命令,大概有30種不同種類的後門命令,包括啟動外掛、收集詳細的系統資訊和修改客戶端系統上的檔案
· 0x133 – 通過Tor代理更新C2伺服器列表
· 0x134 – 目的位置,可能是用於外掛和C2之間的通訊
攻擊活動ID的變化
之前的研究表明DanaBot主要通過不同的“affiliate ID”和“campaign ID”進行傳播。
在DanaBot之前的版本中,使用了大約20種不同的campaign ID。在最新的版本中,campaign ID明顯變化了。截止2019年2月5日,研究人員共發現以下ID:
· ID=2測試版本,服務有限的配置檔案,沒有webinjects
· ID=3 主要攻擊波蘭和義大利的使用者,服務於波蘭和義大利目標的配置檔案和webinjects
· ID=5 服務於澳大利亞目標的配置檔案
· ID=7 主要在波蘭傳播,服務於波蘭目標的webinjects
· ID=9 好像是另外一個測試版本,沒有特定的目標,主要服務於幾個配置檔案
結論
2018年,研究人員發現DanaBot在傳播和功能上都進行了擴充套件。2019年初,研究人員發現DanaBot的內部結構發生了變化,表明惡意軟體正在活躍的開發中。最新的變化表明攻擊者在網路層努力來繞過檢測。