案例研究 · 樣本分析
Darkhotel 組織 JPEG 隱寫樣本分析
你是接到疑似 APT 隱寫樣本的分析員,約束是全靜態分析、樣本零執行。照本文做完,你會得到隱寫格式的精確判定、約 990KB 寄生載荷的完整行為鏈還原,以及一份含壓縮密碼與注入 DLL 的 IOC 清單。
JPEG · 1,321,015 位元組· 隱寫載荷 ≈ 990KB(Base64 編碼)· 寄生宿主:WinRAR 32 位元· 全靜態 · 零執行· 瀾砥 N2.5
會話回放與報告為簡體中文原始記錄 · 生成依據:AVL Code + 瀾砥大模型
概覽
- 01
判型破局 — 報錯值 0xd8ff 暴露 JPEG 魔數
你把 MD5 命名的樣本交給 AVL Code;PE 解析與 imphash 連續報錯,但檔案頭/尾讀數把方向扳回「圖片藏貨」。
- 02
邊界定位 — JPEG + CRLF + 兩段 Base64 的隱寫格式
你看到 FF D9 在偏移 703、首行 24 字元解碼出 18 位元組、載荷以 "==" 收尾;解碼一次失敗後靠分行結構自癒,還原出 PE 載荷。
- 03
身分三重驗證 — 7-Zip 猜想反轉成 WinRAR
你拿到 PE32 指紋、編譯時間與熵;sharp.exe 壓縮命令一度指向 7-Zip,PDB 路徑最終把身分釘在 WinRAR 32 位元。
- 04
行為還原與 IOC — 檢測與處置當天可用
你得到持久化、WOW64 注入、竊密打包、PowerShell 混淆執行的行為鏈,以及含壓縮密碼與注入 DLL 的 IOC 表和結論報告。
向 AVL Code 發布任務
給我分析一下08943bb237926dd1376d799a4afe797d這個樣本 前提:工作區中已放有待分析樣本(本案例為以 MD5 命名的樣本檔案,存於隔離網分析環境);無需安裝任何分析工具,全程唯讀、不執行樣本
復現材料見文末 親自檢測 ↓
樣本判型
樣本以 MD5 命名、看不出來路,分析從最基礎的建檔與判型開始:
給我分析一下08943bb237926dd1376d799a4afe797d這個樣本獲取樣本雜湊與基本資訊(1,321,015 位元組)
→ PE 解析報錯、熵 5.349 成分不單一 → 讀檔案頭:FF D8 FF + "JFIF"——是一張 JPEG
→ 檔案尾大片 0x41 填充資料
→ sec.strings 在偏移 735 處發現 Base64 形態的 PE 檔案頭(解碼即 MZ)
→ 小結:圖片尾部附著一個 Base64 編碼的 Windows 可執行檔隱寫載荷提取
首行 18 位元組的「密鑰/標識」與被換行符切碎的 Base64,是這一步的兩次轉折:
給我分析一下08943bb237926dd1376d799a4afe797d這個樣本搜尋 JPEG 結束標記與 MZ → 命中:FF D9 之後緊跟 Base64 資料,直至檔案尾
→ 寫腳本提取並解碼:Python/跳脫一度受阻 → 改寫成腳本檔案執行
→ 解碼結果不以 MZ 開頭 → 排查發現 Base64 被換行符切碎:首行 24 字元解碼出 18 位元組「密鑰/標識」,第二行起才是 MZ
→ 剔除首行、清理空白後解碼成功:還原約 990KB 的 PE 載荷PE 建檔
身分認定沒有一次到位:一條壓縮命令字串把第一假設帶偏了:
給我分析一下08943bb237926dd1376d799a4afe797d這個樣本sec.pe_parse 建檔:PE32 (x86) · 熵 6.44 未加殼 · imphash 1a94fa4f…
→ 字串見 sharp.exe 與壓縮命令列 → 形似 7-Zip
→ 搜 7-Zip 相關 PDB 路徑未命中,反而命中 RAR.pdb → 身分反轉:是 WinRAR 32 位元歸檔工具
→ 雜湊建檔(MD5 / SHA256)行為與 IOC
載荷裡寄生的是一條完整的資訊竊取管線,全部證據來自字串與 PE 結構:
給我分析一下08943bb237926dd1376d799a4afe797d這個樣本用 Python 腳本檢索關鍵字串(grep 不適用於二進位)
→ 持久化:Run 機碼 + AppInit_Dlls · 注入:CreateRemoteThread / WriteProcessMemory,注入 DLL dpnom.dll
→ 竊密目標:郵件身分資料庫、最近文件列表等
→ 打包外發:sharp.exe 加密壓縮(密碼 PleaseTakeOut!@#)· 腳本執行:釋放 winword.ps1,大小寫混淆呼叫 PowerShell
→ 自刪除、提權、資訊收集 API 齊備
→ 彙總 IOC 表與結論報告親自檢測
下載會話匯入工作區回放完整過程,或把你的樣本直接交給 AVL Code:
› 給我分析一下 <你的樣本檔名>這個樣本 - 局限聲明:
- ①本會話為隔離網環境,樣本只提供雜湊,未做任何執行;
- ②會話匯出中工具呼叫渲染為空,動作序列以助手敘述、compact 摘要與最終報告為準;
- ③既有條目記載的 YARA/SIGMA/網路檢測規則與標準化處置流程,在本會話匯出中未出現其生成過程,本文未予呈現;④行為鏈條目(持久化/注入/竊密/腳本執行)在會話中主要出自最終報告一節,除既有成果摘要外未取得第二獨立來源;⑤首行 18 位元組 Base64 的「密鑰/標識」屬性為會話中的推測;⑥Darkhotel 歸因來自本案例既有條目,會話中未出現歸因過程。
下一個問題: 載荷本體是寄生了竊密模組的 WinRAR,但網路側 IOC 缺位——下一步:追查注入 DLL dpnom.dll 的載荷來源與 winword.ps1 的落地行為,把檢測規則補齊到主機側。
