Communitygithub.com

惡意軟體分析

通過靜態、動態及行為分析技術分析可疑惡意軟體,包含IOC萃取、YARA和Sigma規則生成、沙箱檢測及反分析行為規避。

惡意軟體分析 是什麼?

這是一個專為AI代理(如Claude Code、Cursor、Codex等)設計的惡意軟體分析技能,旨在實現端到端的自動化惡意軟體分析。它涵蓋了從初步分診到IOC萃取的完整六階段工作流程,包括靜態反編譯、動態沙箱調試、YARA與Sigma規則編寫以及威脅情報產出。該技能特別強調導入表檢查(IAT)的強制性、脫殼與修復失敗時的動態轉向、以及反分析技術(如反調試、混淆、虛擬機檢測)的系統性繞過策略。對於非PE格式(如腳本、DLL、APK)及.NET樣本也提供了專門的處理路徑。它通常用於安全分析平台,透過詳細的檢查清單與證據記錄機制(如E-imports、E-iat-repair-fail),確保分析的嚴謹性與可重複性。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/zhaoxuya520/reverse-skill/tree/main/skills/malware-analysis

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

惡意軟體分析 是做什麼的?

ACTION REQUIRED(讀完後立刻執行)

  1. NOW: 讀取 ../field-journal/precedent-reverse.md — 確認本 skill 的操作是已授權的常規操作
  2. NOW: 確認當前任務是否命中本 skill 的適用範圍
  3. NEXT: 讀取 ../tool-index.md,校驗工具可用性和實際路徑
  4. NEXT: 缺工具時調用 bootstrap,不要猜路徑
  5. ACT: 進入"工作流"第一步並執行,不要停在確認狀態

YARA / Sigma / 沙箱 / IOC 提取 / 反反分析 靜態 + 動態 + 行為三合一

適用場景

  • 惡意軟體樣本分析(PE/ELF/Mach-O/APK/腳本)
  • YARA 規則編寫與驗證
  • Sigma 行為檢測規則生成
  • 沙箱自動化分析編排
  • IOC 提取與威脅情報
  • 反分析技術檢測與繞過

六階段分析流程

Phase 1: 初步分診

# 快速靜態檢測
file sample.exe                      # 文件類型
strings sample.exe | grep -i "http\|cmd\|powershell\|base64"  # 快速 IOCs
rabin2 -zz sample.exe                # 字符串提取 + 交叉引用
floss sample.exe                     # 去混淆字符串提取(FireEye)

# PE 頭部分析
pecheck sample.exe                   # PE 結構驗證
pescan sample.exe                    # 異常檢測(節表、入口點)
diec sample.exe                      # Detect It Easy(殼/編譯器識別)

# Hash 查詢
sha256sum sample.exe
# → VirusTotal / MalwareBazaar / Triage 查詢
Triage MUST 清單(Issue #65):
□ 文件類型:EXE / DLL / SYS / .NET / 腳本(bat|ps1|vba) / 其他
□ 架構 x86/x64/ARM;查殼(DIE 等)與編譯語言線索
□ DLL/SYS:導入表與導出表並列檢查(見 Phase 2 硬門)
□ .NET:無傳統 IAT → 走 dnSpy/IL/元數據等價錨點(見 Phase 2)
□ 腳本/宏/DLL 專項 P0:見 nonpe-format-cookbook U–AV(E-batch-deobf / E-ps-decode / E-vba-pcode / E-dll-*)

Phase 1b: 脫殼與 IAT 處理(有殼時 · Issue #65)

□ 無殼 / .NET → 跳到 Phase 2
□ 有殼:嘗試脫殼(授權隔離環境)→ 嘗試修復 IAT
  - x86:ImportREC(或等價);x64:Scylla(或等價)。禁止 64 位死磕 ImportREC
□ 【IAT 修復鐵律】優先自動/半自動修復;若工具報錯或修復後無法運行:
  - 立即終止繼續靜態 IAT 修復
  - MUST 記錄 E-iat-repair-fail(命令、工具、現象)
  - 轉入 Phase 3 動態:API 斷點(如 bp CreateFile)/ 硬件斷點 / 內存搜索抓取導入
  - 這不算跳過導入表:路徑已嘗試並記 Evidence
□ 【補丁 6】脫殼+修 IAT 後閃退/藍屏(疑 CRC/大小自校驗):
  - 放棄繼續靜態修文件;記 E-self-check-crash 或併入 E-iat-repair-fail
  - 轉 Phase 3:對 CreateFile / GetFileSize / 哈希相關 API 下斷
□ 用戶指令可行性(§0.5):加殼時用戶搶跑「先別脫殼先看導入表」→ 說明阻塞 + 請確認;強制則記 quality=unreadable/packed,禁止冒充完成有意義 IAT
□ 用戶要求重做「IAT 修復 / 導入表檢查」:MUST 重做被點名步驟(或經確認的前提協商結果),禁止換無關步驟冒充

Phase 2: 靜態分析

反彙編/反編譯:
□ IDA Pro / Ghidra: 深度反編譯
□ radare2: CLI 快速分析
□ x64dbg: Windows GUI 調試器

重點分析區域:
□ 入口點(Entry Point)→ 初始化邏輯
□ 導入表 → API 用途推斷(CreateRemoteThread=注入, CryptEncrypt=勒索)
   **MUST(硬門)**:執行 rabin2 -i / IDA imports / pecheck 等價命令,將導入表分類摘要寫入 Evidence(E-imports)後才能進入 Phase 3(除非已記 E-iat-repair-fail 並走動態旁路,見 Phase 1b)
   分類至少覆蓋:網絡 / 文件 / 加密 / 進程注入 / 註冊表 / 其他可疑 API
   解析失敗或表為空:仍 MUST 記錄失敗輸出,禁止靜默跳過
   **DLL/SYS**:MUST 並列記錄導出表 Evidence(E-exports,`rabin2 -E` 或等價)
   **.NET**:無傳統 IAT 時 MUST 用 dnSpy/IL/元數據/程序集引用與敏感 API 摘要作為等價錨點,寫入 E-imports / E-triage-imports 語義槽
   **乾淨導入表**:僅基礎 DLL、幾乎無業務 API → MUST 註明動態加載嫌疑(LoadLibrary/GetProcAddress),SHOULD 轉入 Phase 3 抓內存 API;若見哈希解析特徵 → E-api-hash(補丁 N)
   **寬字符串(T)**:ASCII strings 無 IOC 時 MUST 再試 UTF-16(strings -el / IDA unicode)
   **簽名(F)**:有簽名仍 MUST SigCheck;偽造/吊銷不降威脅等級
   用戶要求「重做導入表檢查」:MUST 重做本項(阻塞時先走可行性門閂協商),禁止改換其他步驟冒充完成
   **高危 API 組合(補丁 8)**:表過長時優先輸出惡意組合簇(如 FindWindow+WriteProcessMemory+CreateRemoteThread),過濾純系統基礎調用噪聲
□ 資源段 → 嵌入 Payload(.rsrc 節)
□ 字符串表 → URL/C2/文件路徑/Base64 blob
□ TLS 回調 → 調試器啟動前執行

Phase 3: 沙箱動態分析

自動化沙箱:
□ Joe Sandbox / ANY.RUN / Triage: 商業沙箱
□ CAPE Sandbox: 開源 + YARA 集成(推薦)
□ ASD Azul: 開源惡意軟體分析平台(2026 新發布)
□ Cuckoo Sandbox: 經典開源(逐步被 CAPE 取代)

調試起手式(補丁 7+10 · MUST 順序,用戶態調試器):
□ ① TLS 回調斷點 → ② 入口點 EP 斷點 → ③ 敏感 API 斷點 → ④ ExitProcess/退出路徑保底斷點
□ ExitProcess 觸發時:不急著重啟;立即 dump memory,路徑寫入 Evidence(補丁 10)

監控重點:
□ 進程創建: CreateProcess / ShellExecute
□ 文件操作: WriteFile → 勒索? DeleteFile → Wiper?
□ 註冊表: Run/RunOnce 持久化
□ 網絡: HTTP/DNS → C2 通信
□ 內存: VirtualAllocEx → 進程注入
□ 服務: CreateService → 持久化
□ IAT 修復失敗 / 自校驗閃退樣本:敏感 API + CreateFile/GetFileSize 斷點 / 硬件執行斷點 / 內存搜索

無行為應急分支(MUST):
□ 沙箱無行為、秒退或無限休眠 → 檢查反調試/反虛擬機(CPUID、計時、環境特徵)
□ 嘗試硬件斷點繞過、補丁檢測點、或換物理機/更高保真環境
□ 將「無行為 + 條件」寫入 Evidence;禁止無條件寫成「樣本無害」

時間盒(補丁 9 · SHOULD 默認,可覆蓋):
□ 靜態深挖約 15 分鐘無關鍵路徑 → 強制轉入本 Phase 動態
□ 動態單步約 200 條指令無惡意線索 → 強制回靜態字符串/交叉引用重錨

反調試/混淆旁路(Issue #65 A–T · 詳見 reverse-engineering/anti-analysis.md 食譜):
□ P0:CPUID / RDTSC / PEB / NtQueryInformationProcess → 記錄檢測點後 lab 繞過或換環境(E-anti-debug-*)
□ P0:乾淨 IAT → API 哈希動態解析(bp GetProcAddress,E-api-hash)
□ P0:strings 空 → 串解密例程 + 寬字符串 UTF-16(E-string-decrypt / E-wide-strings)
□ P0:可疑簽名 → SigCheck;無效/吊銷不降威脅(E-sig-forge)
□ P1:進程名掃描 / VEH / int3·DR / 重疊節 / Overlay / .rsrc / Delay-Load
□ H/S 平坦化與不透明謂詞 → ollvm-deobfuscation.md(不在此複製長文)
□ 繞過失敗也寫 Evidence;禁止反調試退出 = 樣本無害

非 PE / 腳本 / DLL 補洞(Issue #65 U–AV · 詳見 reverse-engineering/references/nonpe-format-cookbook.md):
□ bat/cmd:SET 拼接還原(U)→ E-batch-deobf;UTF-16 BOM(V);REM/GOTO 淹沒(W)
□ PowerShell:多層 Base64/Gzip(X)逐層 Evidence;IEX 拼接/反轉(Z)
□ VBA:Stomping/P-Code(AA);Chr/Base64(AB);自修改宏(AC)
□ DLL:TLS+DllMain(AJ);導出異常/無導出(AK/AL);Delay-Load 見 A–T R(AM);側加載/反射(AO/AP)
□ JS/APK/驅動:路由 js-reverse / apk-reverse / kernel-driver-reverse + cookbook,不在此複製長文

Phase 4: YARA 規則編寫

// 規則結構
rule MalwareFamily_Example {
    meta:
        description = "檢測 Example 惡意軟體家族"
        author = "分析者"
        date = "2026-05"
        severity = "high"
        hash = "d41d8cd98f00b204e9800998ecf8427e"
        mitre_id = "T1055"  // Process Injection

    strings:
        // 字符串匹配
        $str1 = "C2_SERVER_URL" ascii wide
        $str2 = "payload.dat" ascii

        // 十六進制匹配
        $hex1 = { 8B 45 ?? 50 FF 15 [4] 85 C0 }
        // 操作碼序列: mov eax, [ebp-?]; push eax; call [import]; test eax, eax

        // 正則匹配
        $re1 = /https?:\/\/[a-z0-9.-]+\/[a-z]{3,8}\.php/ ascii

    condition:
        // 組合條件
        uint16(0) == 0x5A4D and     // MZ 頭
        filesize < 500KB and
        (2 of ($str*) or $hex1)
}

Phase 5: Sigma 規則生成

# 行為檢測規則
title: Suspicious Process Injection via CreateRemoteThread
id: 5a3d2c1b-1234-5678-9abc-def012345678
status: experimental
description: 檢測使用 CreateRemoteThread 的進程注入行為
author: 分析者
date: 2026/05/25
tags:
    - attack.t1055          # Process Injection
    - attack.t1055.001      # DLL Injection
logsource:
    category: process_creation
    product: windows
detection:
    selection:
        Image|endswith: '\powershell.exe'
        CommandLine|contains:
            - 'CreateRemoteThread'
            - 'VirtualAllocEx'
            - 'WriteProcessMemory'
    condition: selection
falsepositives:
    - 合法的調試工具
level: high

Phase 6: IOC 提取與情報

IOC 類型分類:
□ 網絡 IOC:
  - IP: C2 地址(注意時效性)
  - Domain: DGA 算法生成的域名(rsnkfda.com, xpqmje.net)
  - URL: Payload 托管地址
  - User-Agent: 自定義 UA 字符串

□ 主機 IOC:
  - 文件路徑: %APPDATA%\Microsoft\Crypto\RSA\*.dat
  - 註冊表: HKCU\Software\Microsoft\Windows\CurrentVersion\Run\
  - Mutex: Global\{GUID} 互斥體名稱
  - 服務名: 偽裝成系統服務的名稱

□ 行為 IOC:
  - MITRE ATT&CK 技術 ID (T1055, T1003, T1571...)
  - Sigma 規則 → SIEM 集成
  - YARA 規則 → 端點檢測

□ 靜態 IOC:
  - 編譯時間戳(可偽造)
  - PDB 路徑(含開發者信息)
  - 節名異常(非標準 .text/.data)
  - 導入表異常組合(如勒索軟體 CryptEncrypt + DeleteShadowCopies)

反分析技術速查

技術檢測方法YARA 特徵
虛擬機檢測WMI Win32_BIOS/VideoController/ProcessorWin32_ 字符串 + 特定廠商名
沙箱檢測磁盤 < 60GB, RAM < 2GB, 單核 CPUGlobalMemoryStatusEx 調用模式
調試器檢測IsDebuggerPresent, CheckRemoteDebuggerPresentPEB.BeingDebugged 偏移訪問
定時逃逸Sleep(300000) 後執行惡意行為NtDelayExecution 長參數
地理位置檢測檢查鍵盤佈局/時區 → 排除 CIS 國家GetKeyboardLayoutList 調用
父進程檢測explorer.exe vs cmd.exe進程名字符串比較
API 直接 syscall繞過 EDR hooksyscall 指令 + SSN 解析

多 Agent 自動化分析 (SentinelHive 架構)

┌─────────────────────────────────────────────────┐
│                  Hive Director                    │
│          (Claude Opus 編排 + 仲裁)                │
└──────┬──────┬──────┬──────┬──────┬───────┘
       │      │      │      │      │
   ┌───┘  ┌───┘  ┌───┘  ┌───┘  ┌───┘
   ▼      ▼      ▼      ▼      ▼      ▼
Triage  RE    Behav  Intel  Detect Remed
 快速   反編譯  行為   威脅   規則   修復
 分診   靜態   動態   情報   YARA  方案
                          Sigma

工具鏈

工具用途獲取
Ghidra / IDA Pro深度反編譯ghidra-sre.org
CAPE Sandbox開源惡意軟體沙箱GitHub: kevoreilly/CAPEv2
ASD Azul大規模自動化分析GitHub: ASD
YARA模式匹配規則引擎pip install yara-python
SigmaSIEM 行為檢測規則GitHub: SigmaHQ/sigma
FLOSS去混淆字符串提取pip install flare-floss
Detect It Easy殼/編譯器檢測GitHub: horsicq/Detect-It-Easy
pe-sieve進程內存掃描GitHub: hasherezade/pe-sieve
VirusTotal API多引擎掃描virustotal.com
MalwareBazaar惡意軟體樣本庫bazaar.abuse.ch

參考

  • references/yara-sigma-rules.md — YARA + Sigma 編寫方法論
  • references/sandbox-orchestration.md — 沙箱編排與自動化
  • references/anti-analysis-techniques.md — 94 種反分析技術檢測
  • ../reverse-engineering/references/re-agent-workflow.md — IAT 鐵律與六階段門閂(Issue #65)
  • ../reverse-engineering/anti-analysis.md — Agent 響應食譜 A–T(反調試/混淆旁路)
  • ../reverse-engineering/references/nonpe-format-cookbook.md — 非 PE/多格式食譜 U–AV(腳本/宏/JS/驅動/DLL/Android)
  • ../reverse-engineering/references/ollvm-deobfuscation.md — 平坦化/不透明謂詞(H/S)

任務完成自檢(聲稱完成前 MUST 通過)

  • 我是否執行了工作流中的每一步(而不是只閱讀)?
  • 導入表 MUST 檢查是否已執行並寫入 Evidence(E-imports 或 .NET 等價錨點)?DLL/SYS 是否含 E-exports?
  • 若 IAT 修復失敗或自校驗閃退:是否記錄 E-iat-repair-fail / E-self-check-crash 並轉入動態?
  • 重做請求是否回到被點名步驟或經確認的前提協商?阻塞時是否說明+請確認而非偷換步驟?
  • 動態是否按 TLS→EP→敏感 API→ExitProcess 保底順序預置斷點?時間盒/高危 API 組合是否按旁路處理?
  • 反調試/混淆(A–T)是否按 anti-analysis 食譜記錄 Evidence?簽名無效是否未錯誤降級威脅?
  • 腳本/宏/DLL 等非 PE 類型是否按 U–AV cookbook 記錄對應 Evidence(如 E-batch-deobf / E-ps-decode / E-vba-pcode / E-dll-*)?
  • 我是否基於 tool-index 使用了真實工具路徑?
  • 我是否產出了可復現證據(命令/腳本/截圖/報告)?
  • 我是否完成並回寫了 RULES 要求的 Checklist 項?

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

api-security

Use for authorized security assessment of REST, GraphQL, WebSocket, or SOAP APIs, including discovery, authentication, authorization, rate-limit, and CI/CD testing.

apk-reverse

在 CLI 环境下做 Android APK 逆向时使用。适用于 APK 解包、Java 反编译、smali 修改、重打包、Frida 动态 Hook,以及按需切换到 so/native 分析。优先使用本机已安装的 jadx、apktool、frida、adb、ida-reverse、radare2。

attack-chain

Use for authorized multi-stage attack-path planning and orchestration when a task spans reconnaissance, initial access, privilege escalation, lateral movement, or impact assessment. Route single-stage tasks directly to their specialist skill.

binary-diff

|

binary-ninja-reverse

Use for authorized binary analysis in Binary Ninja, including HLIL/MLIL/LLIL inspection, strings/imports/exports, cross-references, types, patch review, Python API automation, and optional Binary Ninja MCP or localhost HTTP integration.

browser-automation

|

browser-extension-reverse

Use for authorized reverse engineering of browser extensions (Chrome/Firefox) including manifest analysis, background workers, and extension-based credential or traffic logic recovery.

case-review

Reviews a reverse-skill case package for scope readiness, Evidence to Finding to Path traceability, work item coverage, timeline references, and optional artifact hash integrity before report handoff.

cloud-k8s

Use for authorized cloud, container, and Kubernetes security assessment including metadata SSRF, IAM misconfig, container escape paths, and cluster RBAC review.

code-audit

Use for authorized source-code security review and SAST workflows including Semgrep, CodeQL patterns, dangerous API hunting, and fix verification.

ctf-sandbox

Thin PRIMARY for CTF / AWD / 靶场 multi-type orchestration. Hands off to the sidecar CTF-Sandbox-Orchestrator. Use when the user says CTF, AWD, 靶场, or 比赛题 and no more specific pwn/APK/IDA route already won.

database-security

Use for authorized database security assessment covering PostgreSQL/MySQL/MSSQL/Mongo/Redis exposure, authz, UDF/command paths, and misconfiguration review.

diagram-generator

generate, refine, validate, and render diagrams from natural language, notes, code snippets, schemas, tables, or existing diagram source. use for flowcharts, swimlanes, sequence diagrams, state diagrams, er diagrams, class diagrams, architecture/c4-style diagrams, dependency graphs, gantt charts, mind maps, user journeys, sankey-style flows, org charts, network graphs, and other visual models. supports mermaid by default, graphviz dot for complex graph layout, plantuml for uml-heavy engineering diagrams, and svg output when direct markup is more reliable.

digital-forensics

Use for authorized digital forensics including memory dumps, disk timelines, PCAP investigation, artifact triage, and IR evidence preservation.

docs-generator

|

dotnet-reverse

.NET / C# 二进制逆向。当目标是 .NET assembly(PE 头含 CLR、.exe/.dll 托管程序)、C# 编译产物(含 NativeAOT)、红队 Sharp* 工具(Rubeus / SharpHound / SharpHound 等)、.NET 混淆程序(ConfuserEx / SmartAssembly / Babel / Eazfuscator)、.NET loader / info-stealer / 套壳 malware 时使用。优先用 dnSpyEx + de4dot,需要 AI 直接操作时联动 dnSpy MCP。不用于纯 native 二进制(走 reverse-engineering / ida-reverse)。

edr-bypass-re

|

email-security

Use for authorized email security review including phishing analysis, header authentication (SPF/DKIM/DMARC), BEC patterns, and mailbox token abuse research.

firmware-pentest

|

ghidra-reverse

Use for free/open reverse engineering with Ghidra (headless or GUI), including decompile, cross-refs, and optional Ghidra MCP workflows when IDA is unavailable.

相關技能