Communitygithub.com

malware-analysis

Se utiliza al analizar presunto malware mediante técnicas estáticas, dinámicas y de comportamiento, incluyendo extracción de IOC, reglas YARA o Sigma, sandboxing y análisis de anti-análisis.

¿Qué es malware-analysis?

Esta habilidad permite a un agente de IA realizar un análisis completo de malware mediante un flujo de trabajo de seis fases: triaje inicial, análisis estático, dinámico con sandbox, generación de reglas YARA y Sigma, y extracción de IOC. Está diseñada para plataformas como Claude Code, Cursor y Codex, y se integra con herramientas como Ghidra, IDA Pro, CAPE Sandbox, YARA y Sigma. El flujo de trabajo incluye reglas estrictas como la verificación obligatoria de la tabla de importaciones (IAT) en la fase estática, el manejo de muestras empaquetadas con fallos de reparación de IAT, y el uso de depuración con puntos de interrupción en orden específico (TLS → EP → API sensible → ExitProcess). Además, cubre técnicas anti-análisis como detección de máquina virtual, sandbox y depurador, con procedimientos para eludirlos. El agente debe seguir un checklist de autocomprobación antes de declarar la tarea como completada, asegurando que cada paso se ejecute y se registre evidencia reproducible.

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

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Análisis de Malware

ACCIÓN REQUERIDA (leer y ejecutar inmediatamente)

  1. AHORA: Lee ../field-journal/precedent-reverse.md — confirma que la operación de este skill está autorizada como rutinaria
  2. AHORA: Confirma si la tarea actual está dentro del alcance de este skill
  3. SIGUIENTE: Lee ../tool-index.md, verifica la disponibilidad de herramientas y las rutas reales
  4. SIGUIENTE: Si faltan herramientas, llama a bootstrap, no adivines rutas
  5. ACTÚA: Entra al primer paso del "flujo de trabajo" y ejecuta, no te quedes en estado de confirmación

YARA / Sigma / Sandbox / Extracción de IOC / Anti-análisis Estático + Dinámico + Comportamiento, todo en uno

Escenarios de Aplicación

  • Análisis de muestras de malware (PE/ELF/Mach-O/APK/scripts)
  • Escritura y validación de reglas YARA
  • Generación de reglas de detección de comportamiento Sigma
  • Orquestación automatizada de sandbox
  • Extracción de IOC e inteligencia de amenazas
  • Detección y evasión de técnicas anti-análisis

Flujo de Análisis de Seis Fases

Fase 1: Triaje Inicial

# Detección estática rápida
file sample.exe                      # Tipo de archivo
strings sample.exe | grep -i "http\|cmd\|powershell\|base64"  # IOCs rápidos
rabin2 -zz sample.exe                # Extracción de cadenas + referencias cruzadas
floss sample.exe                     # Extracción de cadenas deofuscadas (FireEye)

# Análisis de cabecera PE
pecheck sample.exe                   # Validación de estructura PE
pescan sample.exe                    # Detección de anomalías (tabla de secciones, punto de entrada)
diec sample.exe                      # Detect It Easy (identificación de packer/compilador)

# Consulta de hash
sha256sum sample.exe
# → VirusTotal / MalwareBazaar / Triage
Lista de verificación MUST de Triage (Issue #65):
□ Tipo de archivo: EXE / DLL / SYS / .NET / script(bat|ps1|vba) / otro
□ Arquitectura x86/x64/ARM; detectar packer (DIE etc.) y pistas de lenguaje de compilación
□ DLL/SYS: verificar tabla de importaciones y exportaciones en paralelo (ver Fase 2 regla estricta)
□ .NET: sin IAT tradicional → usar dnSpy/IL/metadatos como anclaje equivalente (ver Fase 2)
□ Script/Macro/DLL prioridad P0: ver cookbook nonpe-format-cookbook U–AV (E-batch-deobf / E-ps-decode / E-vba-pcode / E-dll-*)

Fase 1b: Desempaquetado y Reparación de IAT (si hay packer · Issue #65)

□ Sin packer / .NET → saltar a Fase 2
□ Con packer: intentar desempaquetar (entorno aislado autorizado) → intentar reparar IAT
  - x86: ImportREC (o equivalente); x64: Scylla (o equivalente). Prohibido usar ImportREC en 64 bits
□ 【Regla de reparación de IAT】Priorizar reparación automática/semiautomática; si la herramienta da error o el archivo reparado no se ejecuta:
  - Detener inmediatamente la reparación estática de IAT
  - MUST registrar E-iat-repair-fail (comando, herramienta, fenómeno)
  - Pasar a Fase 3 dinámica: puntos de interrupción en API (ej. bp CreateFile) / puntos de interrupción de hardware / búsqueda en memoria para capturar imports
  - Esto no es saltarse la tabla de imports: la ruta se ha intentado y se ha registrado Evidence
□ 【Parche 6】Tras desempaquetar+reparar IAT, el programa crashea o pantalla azul (sospecha de CRC/autoverificación de tamaño):
  - Abandonar la reparación estática del archivo; registrar E-self-check-crash o fusionar en E-iat-repair-fail
  - Pasar a Fase 3: poner puntos de interrupción en CreateFile / GetFileSize / API relacionadas con hash
□ Viabilidad de instrucción del usuario (§0.5): Si el usuario insiste en "no desempaquetes, primero mira la tabla de imports" cuando hay packer → explicar bloqueo + solicitar confirmación; si fuerza, registrar quality=unreadable/packed, prohibido fingir que se ha completado un IAT significativo
□ Usuario solicita rehacer "reparación de IAT / revisión de tabla de imports": MUST rehacer los pasos señalados (o resultado de negociación previa confirmada), prohibido sustituir con pasos no relacionados

Fase 2: Análisis Estático

Descompilación/Desensamblado:
□ IDA Pro / Ghidra: descompilación profunda
□ radare2: análisis rápido por CLI
□ x64dbg: depurador GUI para Windows

Áreas de análisis clave:
□ Punto de entrada (Entry Point) → lógica de inicialización
□ Tabla de importaciones → inferencia de propósito de API (CreateRemoteThread=inyección, CryptEncrypt=ransomware)
   **MUST (regla estricta)** : Ejecutar rabin2 -i / IDA imports / pecheck (comando equivalente), clasificar y resumir la tabla de importaciones en Evidence (E-imports) antes de pasar a Fase 3 (a menos que se haya registrado E-iat-repair-fail y se haya tomado la ruta dinámica alternativa, ver Fase 1b)
   Clasificación cubre al menos: Red / Archivo / Cifrado / Inyección de procesos / Registro / Otras API sospechosas
   Si el análisis falla o la tabla está vacía: MUST registrar la salida del fallo, prohibido saltar en silencio
   **DLL/SYS**: MUST registrar en paralelo Evidence de tabla de exportaciones (E-exports, `rabin2 -E` o equivalente)
   **.NET**: Sin IAT tradicional, MUST usar dnSpy/IL/metadatos/referencias de ensamblado y resumen de API sensibles como anclaje equivalente, escribir en ranuras semánticas E-imports / E-triage-imports
   **Tabla de imports limpia**: Solo DLLs básicas, casi sin API de negocio → MUST anotar sospecha de carga dinámica (LoadLibrary/GetProcAddress), SHOULD pasar a Fase 3 para capturar API en memoria; si se ven características de resolución de hash → E-api-hash (Parche N)
   **Cadenas anchas (T)** : Si ASCII strings no tiene IOCs, MUST probar UTF-16 (strings -el / IDA unicode)
   **Firma (F)** : Con firma, MUST hacer SigCheck; firma falsa/revocada no reduce nivel de amenaza
   Usuario solicita "rehacer revisión de tabla de imports": MUST rehacer este paso (si hay bloqueo, primero ir por la compuerta de viabilidad para negociar), prohibido cambiar a otros pasos para fingir finalización
   **Combinaciones de API de alto riesgo (Parche 8)** : Si la tabla es muy larga, priorizar salida de combinaciones maliciosas (ej. FindWindow+WriteProcessMemory+CreateRemoteThread), filtrar ruido de llamadas base del sistema
□ Sección de recursos → Payload incrustado (sección .rsrc)
□ Tabla de cadenas → URL/C2/rutas de archivo/blob Base64
□ Callbacks TLS → se ejecutan antes de que arranque el depurador

Fase 3: Análisis Dinámico con Sandbox

Sandbox automatizados:
□ Joe Sandbox / ANY.RUN / Triage: sandbox comerciales
□ CAPE Sandbox: código abierto + integración YARA (recomendado)
□ ASD Azul: plataforma de análisis de malware de código abierto (nuevo en 2026)
□ Cuckoo Sandbox: código abierto clásico (reemplazado gradualmente por CAPE)

Rutina de inicio de depuración (Parches 7+10 · MUST en orden, depurador en modo usuario):
□ ① Punto de interrupción en callback TLS → ② Punto de interrupción en punto de entrada EP → ③ Puntos de interrupción en API sensibles → ④ Punto de interrupción de respaldo en ExitProcess/ruta de salida
□ Cuando se activa ExitProcess: no te apresures a reiniciar; haz dump de memoria inmediatamente, escribe la ruta en Evidence (Parche 10)

Puntos de monitoreo clave:
□ Creación de procesos: CreateProcess / ShellExecute
□ Operaciones de archivo: WriteFile → ¿Ransomware? DeleteFile → ¿Wiper?
□ Registro: Run/RunOnce persistencia
□ Red: HTTP/DNS → comunicación C2
□ Memoria: VirtualAllocEx → inyección de procesos
□ Servicios: CreateService → persistencia
□ Muestras con fallo de reparación de IAT / autoverificación que crashea: puntos de interrupción en API sensibles + CreateFile/GetFileSize / puntos de interrupción de ejecución por hardware / búsqueda en memoria

Rama de emergencia sin comportamiento (MUST):
□ El sandbox no muestra comportamiento, sale inmediatamente o tiene sleep infinito → comprobar anti-depuración/anti-VM (CPUID, temporizadores, características del entorno)
□ Intentar evasión con puntos de interrupción de hardware, parchear puntos de detección, o cambiar a máquina física/entorno de mayor fidelidad
□ Escribir "sin comportamiento + condiciones" en Evidence; prohibido escribir incondicionalmente como "muestra inofensiva"

Caja de tiempo (Parche 9 · SHOULD por defecto, se puede sobrescribir):
□ Tras ~15 minutos de análisis estático profundo sin ruta crítica → forzar entrada a esta Fase dinámica
□ Tras ~200 instrucciones de paso a paso dinámico sin pista maliciosa → forzar retorno a cadenas estáticas/referencias cruzadas para re-anclar

Derivación anti-depuración/ofuscación (Issue #65 A–T · ver recetario en reverse-engineering/anti-analysis.md):
□ P0: CPUID / RDTSC / PEB / NtQueryInformationProcess → registrar punto de detección, luego evadir en laboratorio o cambiar entorno (E-anti-debug-*)
□ P0: IAT limpio → resolución dinámica de hash de API (bp GetProcAddress, E-api-hash)
□ P0: strings vacío → rutina de descifrado de cadenas + cadenas anchas UTF-16 (E-string-decrypt / E-wide-strings)
□ P0: Firma sospechosa → SigCheck; inválida/revocada no reduce amenaza (E-sig-forge)
□ P1: Escaneo de nombre de proceso / VEH / int3·DR / secciones superpuestas / Overlay / .rsrc / Delay-Load
□ H/S: Aplanamiento de flujo y predicados opacos → ollvm-deobfuscation.md (no se replica el texto largo aquí)
□ Si la evasión falla, escribir Evidence; prohibido que salida por anti-depuración = muestra inofensiva

Parche para no-PE / scripts / DLL (Issue #65 U–AV · ver recetario en reverse-engineering/references/nonpe-format-cookbook.md):
□ bat/cmd: Reconstrucción por concatenación SET (U) → E-batch-deobf; BOM UTF-16 (V); inundación REM/GOTO (W)
□ PowerShell: Base64/Gzip multicapa (X) Evidence capa por capa; concatenación/inversión IEX (Z)
□ VBA: Stomping/P-Code (AA); Chr/Base64 (AB); macros auto-modificantes (AC)
□ DLL: TLS+DllMain (AJ); exportaciones anómalas/sin exportaciones (AK/AL); Delay-Load ver A–T R (AM); side-loading/reflexión (AO/AP)
□ JS/APK/driver: enrutar a js-reverse / apk-reverse / kernel-driver-reverse + cookbook, no se replica texto largo aquí

Fase 4: Escritura de Reglas YARA

// Estructura de regla
rule MalwareFamily_Example {
    meta:
        description = "Detecta la familia de malware Example"
        author = "Analista"
        date = "2026-05"
        severity = "high"
        hash = "d41d8cd98f00b204e9800998ecf8427e"
        mitre_id = "T1055"  // Process Injection

    strings:
        // Coincidencia de cadenas
        $str1 = "C2_SERVER_URL" ascii wide
        $str2 = "payload.dat" ascii

        // Coincidencia hexadecimal
        $hex1 = { 8B 45 ?? 50 FF 15 [4] 85 C0 }
        // Secuencia de opcodes: mov eax, [ebp-?]; push eax; call [import]; test eax, eax

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

    condition:
        // Condición combinada
        uint16(0) == 0x5A4D and     // Cabecera MZ
        filesize < 500KB and
        (2 of ($str*) or $hex1)
}

Fase 5: Generación de Reglas Sigma

# Regla de detección de comportamiento
title: Inyección de proceso sospechosa mediante CreateRemoteThread
id: 5a3d2c1b-1234-5678-9abc-def012345678
status: experimental
description: Detecta comportamiento de inyección de procesos usando CreateRemoteThread
author: Analista
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:
    - Herramientas de depuración legítimas
level: high

Fase 6: Extracción de IOC e Inteligencia

Clasificación de tipos de IOC:
□ IOC de red:
  - IP: Dirección C2 (tener en cuenta caducidad)
  - Domain: Dominio generado por algoritmo DGA (rsnkfda.com, xpqmje.net)
  - URL: Dirección de alojamiento de Payload
  - User-Agent: Cadena UA personalizada

□ IOC de host:
  - Ruta de archivo: %APPDATA%\Microsoft\Crypto\RSA\*.dat
  - Registro: HKCU\Software\Microsoft\Windows\CurrentVersion\Run\
  - Mutex: Global\{GUID} nombre de mutex
  - Nombre de servicio: nombre que se hace pasar por servicio del sistema

□ IOC de comportamiento:
  - ID de técnica MITRE ATT&CK (T1055, T1003, T1571...)
  - Regla Sigma → Integración SIEM
  - Regla YARA → Detección en endpoint

□ IOC estáticos:
  - Marca de tiempo de compilación (puede ser falsa)
  - Ruta PDB (contiene información del desarrollador)
  - Anomalías en nombre de sección (no estándar .text/.data)
  - Combinaciones anómalas en tabla de importaciones (ej. ransomware CryptEncrypt + DeleteShadowCopies)

Referencia Rápida de Técnicas Anti-Análisis

TécnicaMétodo de DetecciónCaracterística YARA
Detección de VMWMI Win32_BIOS/VideoController/ProcessorCadena Win32_ + nombre de fabricante específico
Detección de sandboxDisco < 60GB, RAM < 2GB, CPU mononúcleoPatrón de llamada GlobalMemoryStatusEx
Detección de depuradorIsDebuggerPresent, CheckRemoteDebuggerPresentAcceso al offset PEB.BeingDebugged
Evasión por temporizadorSleep(300000) y luego ejecuta comportamiento maliciosoParámetro largo en NtDelayExecution
Detección de geolocalizaciónVerifica distribución de teclado/zona horaria → excluye países CISLlamada a GetKeyboardLayoutList
Detección de proceso padreexplorer.exe vs cmd.exeComparación de cadena de nombre de proceso
Syscall directo de APIEvita hook de EDRInstrucción syscall + resolución SSN

Análisis Automatizado Multi-Agente (Arquitectura SentinelHive)

┌─────────────────────────────────────────────────┐
│                  Hive Director                    │
│          (Claude Opus orquestación + arbitraje)  │
└──────┬──────┬──────┬──────┬──────┬───────┘
       │      │      │      │      │
   ┌───┘  ┌───┘  ┌───┘  ┌───┘  ┌───┘
   ▼      ▼      ▼      ▼      ▼      ▼
Triage  RE    Behav  Intel  Detect Remed
Triaje  Ing.   Compor. Intel. Detecc. Remedi.
 rápido rev.  dinám. t.    reglas  solución
        estáti.        amenaz YARA
        co                     Sigma

Cadena de Herramientas

HerramientaPropósitoObtención
Ghidra / IDA ProDescompilación profundaghidra-sre.org
CAPE SandboxSandbox de malware de código abiertoGitHub: kevoreilly/CAPEv2
ASD AzulAnálisis automatizado a gran escalaGitHub: ASD
YARAMotor de reglas de coincidencia de patronespip install yara-python
SigmaReglas de detección de comportamiento SIEMGitHub: SigmaHQ/sigma
FLOSSExtracción de cadenas deofuscadaspip install flare-floss
Detect It EasyDetección de packer/compiladorGitHub: horsicq/Detect-It-Easy
pe-sieveEscaneo de memoria de procesosGitHub: hasherezade/pe-sieve
VirusTotal APIEscaneo multi-motorvirustotal.com
MalwareBazaarRepositorio de muestras de malwarebazaar.abuse.ch

Referencias

  • references/yara-sigma-rules.md — Metodología de escritura YARA + Sigma
  • references/sandbox-orchestration.md — Orquestación y automatización de sandbox
  • references/anti-analysis-techniques.md — Detección de 94 técnicas anti-análisis
  • ../reverse-engineering/references/re-agent-workflow.md — Regla estricta de IAT y compuertas de seis fases (Issue #65)
  • ../reverse-engineering/anti-analysis.md — Recetario de respuesta de agente A–T (derivación anti-depuración/ofuscación)
  • ../reverse-engineering/references/nonpe-format-cookbook.md — Recetario para no-PE/múltiples formatos U–AV (scripts/macros/JS/driver/DLL/Android)
  • ../reverse-engineering/references/ollvm-deobfuscation.md — Aplanamiento de flujo/predicados opacos (H/S)

Autocomprobación de Finalización de Tarea (MUST pasar antes de declarar finalizada)

  • ¿He ejecutado cada paso del flujo de trabajo (no solo lo he leído)?
  • ¿Se ha realizado la comprobación MUST de la tabla de importaciones y se ha escrito en Evidence (E-imports o anclaje equivalente .NET)? ¿DLL/SYS incluye E-exports?
  • Si falló la reparación de IAT o crasheó por autoverificación: ¿se ha registrado E-iat-repair-fail / E-self-check-crash y se ha pasado a dinámico?
  • Las solicitudes de rehacer, ¿han vuelto al paso señalado o al resultado de negociación previa confirmada? ¿Se ha explicado el bloqueo + solicitado confirmación en lugar de cambiar sigilosamente de paso?
  • En dinámico, ¿se han preestablecido puntos de interrupción en el orden TLS→EP→API sensible→ExitProcess de respaldo? ¿Se ha manejado la caja de tiempo/combinaciones de API de alto riesgo según las reglas de derivación?
  • ¿Se ha registrado Evidence contra el recetario anti-análisis (A–T) para anti-depuración/ofuscación? ¿No se ha reducido erróneamente la amenaza cuando la firma es inválida?
  • Para tipos no-PE como scripts/macros/DLL, ¿se ha registrado Evidence correspondiente según cookbook U–AV (ej. E-batch-deobf / E-ps-decode / E-vba-pcode / E-dll-*)?
  • ¿He utilizado rutas reales de herramientas basadas en tool-index?
  • ¿He producido evidencia reproducible (comandos/scripts/capturas de pantalla/informes)?
  • ¿He completado y reescrito los elementos de la Checklist requeridos por RULES?

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.

Skills relacionados