Mandiant托管防禦服務產品以主動威脅搜尋計劃而被人們所熟知,旨在保護客戶免受繞過傳統檢測機制的高級威脅參與者工具、策略和技術的侵害。2022年7月,在一傢媒體行業公司的主動威脅搜尋工作中,MandiantManagedDefense揪出被UNC4034組織所利用的新一輪網絡釣魚活動。
(來自:Mandiant Blog)
Mandiant 認為 UNC4034 與朝方的幾個組織有重疊,其通過 WhatsApp 即時通訊服務與受害者建立聯系,並引誘其下載惡意 ISO 包。
然而 Mandiant Intelligence:Staging Directories 檢查發現(通過搜索寫入常用目錄的異常文件),其明面上有提到虛假的工作機會、但實質上是利用 PuTTY 來部署 AIRDRY.V2 木馬後門。
官方原版 / 惡意修改版 PuTTY 的數字簽名對比
PuTTY 是一款開源的 SSH 與 Telnet 客戶端,最初線索顯示器下載名為 amazon_assessment.iso 的檔案文件。
而從 Windows 10 開始,系統已能夠通過雙擊自動加載虛擬光驅。與 RAR 等其它格式相比,這減少查看嵌入文件所需的工作量。
通過 Mandiant Managed Defense 對主機展開深入調查,可知 UNC4034 通過電子郵件向受害者忽悠可提供在亞馬遜工作的機會而建立聯系。
隨後該組織會利用 WhatsApp 與之通信並傳送 amazon_assessment.iso 文件,且裡面有個可執行文件(PuTTY.exe)和一個文本文件(Readme.txt)。
原版 PuTTY / 惡意樣本中的 .data 部分
隨著惡意 PuTTY 在目標主機上被執行,受害者的機器也被植入後門,Mandiant 識別其為 AirDry 的一個變種。
盡管 Mandiant Managed Defense 早在 7 月 5 日就調查到入侵,並在潛在的後門部署前控制住主機。
但更早的 6 月 27 日,VirusTotal 就已經發現同名的 PuTTY 可執行文件。
此外 Mandiant 發現第二個名為 amazon_test.iso 的 ISO 存檔,可知其於 6 月 17 日被 VirusTotal 數據庫給收錄。
類似構造的惡意軟件,最終都是為加載 AirDry.V2 後門這個有效載荷。釣魚手段方面,攻擊者加裝自己是亞馬遜的招聘評估人員。
通過分析 ISO 鏡像中的文件,可知兩者帶有相同的木馬化 PuTTY 可執行文件、以及位於自述文件中的服務器端 IP 地址。
每個樣本中包含的惡意代碼,會將嵌入式有效載荷寫入磁盤並啟動,但不同樣本還可能將木馬插入到代碼中的不同位置。
比如 VirusTotal 檢出的樣本,就看到被插入 ssh2_userauth_process_queue 函數中的惡意代碼(源文件在 putty-0.77\ssh\userauth2-client.c)。
執行惡意樣本時的 PuTTY 圖形界面
與公鑰或鍵盤交互等其它驗證方法不同的是,該代碼位於負責執行密碼驗證的函數部分。一旦用戶建立連接並輸入他們的賬密,惡意代碼就會被執行,而無論身份驗證的結果到底如何。
此外兩個樣本中丟棄和執行有效負載的惡意代碼部分幾乎相同:
合法的 Windows 可執行文件 C:\Windows\System32\colorcpl.exe 被復制到 C:\ProgrAMData\PackageColor 這個新目錄。
嵌入的有效負載則被寫入 C:\ProgramData\PackageColor\colorui.dll,期間可觀察到如上圖所示的劫持與命令啟動。
接下來被執行的 colorcpl.exe 二進制文件則來自 C:\Windows\System32\cmd.exe /c start /b C:\ProgramData\PackageColor\colorcpl.exe 0CE1241A44557AA438F27BC6D4ACA246 。
不過在 VirusTotal 的示例中,cmd.exe 並未用於啟動 colorcpl.exe —— 因為 Windows API 函數 WinExec 會執行上述命令。
兩種情況下,傳遞過來的 colorcpl.exe 命令行參數,都與 Windows 可執行文件的合法功能無關。相反,每個參數都被惡意的動態鏈接庫所使用。
先是通過 schtasks.exe 為 C:\ProgramData\PackageColor\colorcpl.exe 建立持久性,然後借助名為PackageColor 的計劃任務,在每天上午 10:30 執行該二進制文件。
至於 colorui.dll 樣本,檢測發現它是由商業軟件保護程序 Themida 打包的。
解壓後的樣本,包含揭示其用途(ShellCodeLoader)的嵌入式文件路徑 ——
W:\Develop\aTool\ShellCodeLoader\App\libressl-2.6.5\crypto\cryptlib.c
—— 兩個樣本都包含一個名單 DAVESHELL 的相同 shellcode 有效負載。
然後使用基於 XOR 的自定義算法和動態生成的密鑰對有效負載進行解密可得如上圖所示的字符串。
Mandiant 指出,包含的該密鑰,也可作為一種反分析機制 —— 若缺少正確的密鑰,則執行 DLL 時不會觸發任何重要的操作。