ASD

Memory Forensics

Domina técnicas de forense de memoria: adquisición, análisis de procesos y extracción de artefactos con Volatility y herramientas relacionadas, para dumps de RAM y análisis de malware.

Estrellas
38.8k

en todo el repo

Actividad
47

0–100, la ruta de este skill

Actualizado
hace 2 meses

último commit aquí

Commits
1

últimos 90 días

Contexto
2.1k tok

63 tok en reposo

Paquete
2 archivos

11 KB

Instalar

Funciona con cualquier agente que lea SKILL.md

npx -y skills add wshobson/agents --skill memory-forensics --agent claude-code

Se instala solo en este repositorio.

Qué hace

  • Guía la adquisición de memoria RAM en Windows, Linux, macOS y máquinas virtuales con herramientas como WinPmem, LiME y osxpmem
  • Provee flujos de trabajo con Volatility 3 (vol) para triage de malware y respuesta a incidentes
  • Detalla técnicas de detección de inyección de procesos, rootkits y extracción de credenciales
  • Incluye reglas YARA para escanear memoria y comandos de extracción de strings (strings, FLOSS)

Úsalo cuando

  • Se realiza análisis de memoria durante respuesta a incidentes o investigación de brechas
  • Se extraen artefactos de malware (procesos, código inyectado, conexiones de red) de una captura RAM
  • Se adquiere memoria volátil de un sistema Windows/Linux/macOS en vivo antes de apagarlo
  • Se usa Volatility 3 / Rekall para hacer triage de volcados de memoria

No lo uses cuando

    Qué lo activa

    Di cualquiera de estas frases y el agente debería cargar este skill.

    • Analiza este volcado de memoria con Volatility para buscar malware
    • Ayúdame a extraer credenciales de un dump de RAM
    • Necesito detectar inyección de procesos en esta captura de memoria
    • Cómo adquirir memoria en vivo de un servidor Linux comprometido

    SKILL.md

    En inglés

    Memory Forensics

    Comprehensive techniques for acquiring, analyzing, and extracting artifacts from memory dumps for incident response and malware analysis.

    When to Use This Skill

    • Performing memory analysis during incident response or breach investigation
    • Extracting malware artifacts (processes, injected code, network connections) from a RAM capture
    • Acquiring volatile memory from a live Windows/Linux/macOS system before shutdown
    • Using Volatility 3 / Rekall to triage memory dumps
    • Recovering credentials, browser sessions, or open files from process memory

    Memory Acquisition

    Live Acquisition Tools

    Windows

    # WinPmem (Recommended)
    winpmem_mini_x64.exe memory.raw
    
    # DumpIt
    DumpIt.exe
    
    # Belkasoft RAM Capturer
    # GUI-based, outputs raw format
    
    # Magnet RAM Capture
    # GUI-based, outputs raw format
    

    Linux

    # LiME (Linux Memory Extractor)
    sudo insmod lime.ko "path=/tmp/memory.lime format=lime"
    
    # /dev/mem (limited, requires permissions)
    sudo dd if=/dev/mem of=memory.raw bs=1M
    
    # /proc/kcore (ELF format)
    sudo cp /proc/kcore memory.elf
    

    macOS

    # osxpmem
    sudo ./osxpmem -o memory.raw
    
    # MacQuisition (commercial)
    

    Virtual Machine Memory

    # VMware: .vmem file is raw memory
    cp vm.vmem memory.raw
    
    # VirtualBox: Use debug console
    vboxmanage debugvm "VMName" dumpvmcore --filename memory.elf
    
    # QEMU
    virsh dump <domain> memory.raw --memory-only
    
    # Hyper-V
    # Checkpoint contains memory state
    

    Detailed section: Volatility 3 Framework

    Originally a 2680-byte section in this SKILL.md. Moved to references/details.md to fit Codex's 8 KB skill body cap.

    Analysis Workflows

    Malware Analysis Workflow

    # 1. Initial process survey
    vol -f memory.raw windows.pstree > processes.txt
    vol -f memory.raw windows.pslist > pslist.txt
    
    # 2. Network connections
    vol -f memory.raw windows.netscan > network.txt
    
    # 3. Detect injection
    vol -f memory.raw windows.malfind > malfind.txt
    
    # 4. Analyze suspicious processes
    vol -f memory.raw windows.dlllist --pid <PID>
    vol -f memory.raw windows.handles --pid <PID>
    
    # 5. Dump suspicious executables
    vol -f memory.raw windows.pslist --pid <PID> --dump
    
    # 6. Extract strings from dumps
    strings -a pid.<PID>.exe > strings.txt
    
    # 7. YARA scanning
    vol -f memory.raw windows.yarascan --yara-rules malware.yar
    

    Incident Response Workflow

    # 1. Timeline of events
    vol -f memory.raw windows.timeliner > timeline.csv
    
    # 2. User activity
    vol -f memory.raw windows.cmdline
    vol -f memory.raw windows.consoles
    
    # 3. Persistence mechanisms
    vol -f memory.raw windows.registry.printkey \
        --key "Software\Microsoft\Windows\CurrentVersion\Run"
    
    # 4. Services
    vol -f memory.raw windows.svcscan
    
    # 5. Scheduled tasks
    vol -f memory.raw windows.scheduled_tasks
    
    # 6. Recent files
    vol -f memory.raw windows.filescan | grep -i "recent"
    

    Data Structures

    Windows Process Structures

    // EPROCESS (Executive Process)
    typedef struct _EPROCESS {
        KPROCESS Pcb;                    // Kernel process block
        EX_PUSH_LOCK ProcessLock;
        LARGE_INTEGER CreateTime;
        LARGE_INTEGER ExitTime;
        // ...
        LIST_ENTRY ActiveProcessLinks;   // Doubly-linked list
        ULONG_PTR UniqueProcessId;       // PID
        // ...
        PEB* Peb;                        // Process Environment Block
        // ...
    } EPROCESS;
    
    // PEB (Process Environment Block)
    typedef struct _PEB {
        BOOLEAN InheritedAddressSpace;
        BOOLEAN ReadImageFileExecOptions;
        BOOLEAN BeingDebugged;           // Anti-debug check
        // ...
        PVOID ImageBaseAddress;          // Base address of executable
        PPEB_LDR_DATA Ldr;              // Loader data (DLL list)
        PRTL_USER_PROCESS_PARAMETERS ProcessParameters;
        // ...
    } PEB;
    

    VAD (Virtual Address Descriptor)

    typedef struct _MMVAD {
        MMVAD_SHORT Core;
        union {
            ULONG LongFlags;
            MMVAD_FLAGS VadFlags;
        } u;
        // ...
        PVOID FirstPrototypePte;
        PVOID LastContiguousPte;
        // ...
        PFILE_OBJECT FileObject;
    } MMVAD;
    
    // Memory protection flags
    #define PAGE_EXECUTE           0x10
    #define PAGE_EXECUTE_READ      0x20
    #define PAGE_EXECUTE_READWRITE 0x40
    #define PAGE_EXECUTE_WRITECOPY 0x80
    

    Detection Patterns

    Process Injection Indicators

    # Malfind indicators
    # - PAGE_EXECUTE_READWRITE protection (suspicious)
    # - MZ header in non-image VAD region
    # - Shellcode patterns at allocation start
    
    # Common injection techniques
    # 1. Classic DLL Injection
    #    - VirtualAllocEx + WriteProcessMemory + CreateRemoteThread
    
    # 2. Process Hollowing
    #    - CreateProcess (SUSPENDED) + NtUnmapViewOfSection + WriteProcessMemory
    
    # 3. APC Injection
    #    - QueueUserAPC targeting alertable threads
    
    # 4. Thread Execution Hijacking
    #    - SuspendThread + SetThreadContext + ResumeThread
    

    Rootkit Detection

    # Compare process lists
    vol -f memory.raw windows.pslist > pslist.txt
    vol -f memory.raw windows.psscan > psscan.txt
    diff pslist.txt psscan.txt  # Hidden processes
    
    # Check for DKOM (Direct Kernel Object Manipulation)
    vol -f memory.raw windows.callbacks
    
    # Detect hooked functions
    vol -f memory.raw windows.ssdt  # System Service Descriptor Table
    
    # Driver analysis
    vol -f memory.raw windows.driverscan
    vol -f memory.raw windows.driverirp
    

    Credential Extraction

    # Dump hashes (requires hivelist first)
    vol -f memory.raw windows.hashdump
    
    # LSA secrets
    vol -f memory.raw windows.lsadump
    
    # Cached domain credentials
    vol -f memory.raw windows.cachedump
    
    # Mimikatz-style extraction
    # Requires specific plugins/tools
    

    YARA Integration

    Writing Memory YARA Rules

    rule Suspicious_Injection
    {
        meta:
            description = "Detects common injection shellcode"
    
        strings:
            // Common shellcode patterns
            $mz = { 4D 5A }
            $shellcode1 = { 55 8B EC 83 EC }  // Function prologue
            $api_hash = { 68 ?? ?? ?? ?? 68 ?? ?? ?? ?? E8 }  // Push hash, call
    
        condition:
            $mz at 0 or any of ($shellcode*)
    }
    
    rule Cobalt_Strike_Beacon
    {
        meta:
            description = "Detects Cobalt Strike beacon in memory"
    
        strings:
            $config = { 00 01 00 01 00 02 }
            $sleep = "sleeptime"
            $beacon = "%s (admin)" wide
    
        condition:
            2 of them
    }
    

    Scanning Memory

    # Scan all process memory
    vol -f memory.raw windows.yarascan --yara-rules rules.yar
    
    # Scan specific process
    vol -f memory.raw windows.yarascan --yara-rules rules.yar --pid 1234
    
    # Scan kernel memory
    vol -f memory.raw windows.yarascan --yara-rules rules.yar --kernel
    

    String Analysis

    Extracting Strings

    # Basic string extraction
    strings -a memory.raw > all_strings.txt
    
    # Unicode strings
    strings -el memory.raw >> all_strings.txt
    
    # Targeted extraction from process dump
    vol -f memory.raw windows.memmap --pid 1234 --dump
    strings -a pid.1234.dmp > process_strings.txt
    
    # Pattern matching
    grep -E "(https?://|[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})" all_strings.txt
    

    FLOSS for Obfuscated Strings

    # FLOSS extracts obfuscated strings
    floss malware.exe > floss_output.txt
    
    # From memory dump
    floss pid.1234.dmp
    

    Best Practices

    Acquisition Best Practices

    1. Minimize footprint: Use lightweight acquisition tools
    2. Document everything: Record time, tool, and hash of capture
    3. Verify integrity: Hash memory dump immediately after capture
    4. Chain of custody: Maintain proper forensic handling

    Analysis Best Practices

    1. Start broad: Get overview before deep diving
    2. Cross-reference: Use multiple plugins for same data
    3. Timeline correlation: Correlate memory findings with disk/network
    4. Document findings: Keep detailed notes and screenshots
    5. Validate results: Verify findings through multiple methods

    Common Pitfalls

    • Stale data: Memory is volatile, analyze promptly
    • Incomplete dumps: Verify dump size matches expected RAM
    • Symbol issues: Ensure correct symbol files for OS version
    • Smear: Memory may change during acquisition
    • Encryption: Some data may be encrypted in memory

    Reproducido de wshobson/agents bajo licencia MIT. Leer esta página en markdown.

    Archivos

    2 archivos en el paquete. Solo se lee SKILL.md al activarse — las referencias se cargan si el skill decide que las necesita.

    Antes de instalar

    Requiere herramientas como Volatility 3 (vol), WinPmem/LiME/osxpmem, YARA y opcionalmente FLOSS instaladas.

    Detalles

    Creador
    wshobson
    Categoría
    Seguridad
    Licencia
    MIT
    Recursos incluidos
    referencias
    Repositorio
    wshobson/agents
    Código fuente
    Ver SKILL.md

    Etiquetas

    Más de wshobson/agents

    Este repo incluye 180 skills. Si instalas uno, normalmente ya tienes los demás.

    Úsalo al seleccionar y colocar iconos, imágenes, SVGs, diagramas o infografías de apoyo aprobados en un PPTX editable.

    Costo de contexto al activarse
    344 tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 26 días
    documentos

    Úsalo cuando pidan optimizar un prompt, mejorar su rendimiento, diseñar una plantilla, aplicar chain-of-thought, few-shot prompting o técnicas avanzadas de prompt engineering para producción.

    Costo de contexto al activarse
    1.3k tok
    Tamaño del paquete
    10 archivos
    Última actualización
    el mes pasado
    herramientas desarrollo

    Úsalo al redactar o reparar una especificación JSON con coordenadas explícitas para un PPTX editable.

    Costo de contexto al activarse
    489 tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 26 días
    documentos

    Úsalo para validar o reparar un PPTX editable en cuanto a geometría, accesibilidad, editabilidad nativa, linaje de fuente e integridad del paquete OOXML.

    Costo de contexto al activarse
    409 tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 26 días
    documentos

    Úsalo para analizar un PPTX de referencia en modo solo lectura: estructura, tema, tipografía, ritmo de layout, diagnósticos, catálogos de plantillas derivados o inspección segura del paquete OOXML.

    Costo de contexto al activarse
    689 tok
    Tamaño del paquete
    8 archivos
    Última actualización
    hace 26 días
    documentos

    Úsalo al preparar la narrativa, las fuentes y el contexto de diseño para un nuevo deck PPTX editable.

    Costo de contexto al activarse
    415 tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 26 días
    documentos

    Skills relacionados

    Domina las mejores prácticas de seguridad en smart contracts para prevenir vulnerabilidades comunes e implementar patrones seguros en Solidity.

    Costo de contexto al activarse
    891 tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 2 meses
    seguridad

    Configura un gating humano para las acciones de revisión de agentes IA en Claude Code, con un rastro de aprobación auditable criptográficamente y gates aplicados con Cedar.

    Costo de contexto al activarse
    1.4k tok
    Tamaño del paquete
    1 archivo
    Última actualización
    el mes pasado
    seguridad

    Domina patrones de autenticación y autorización (JWT, OAuth2, sesiones, RBAC) para construir sistemas de control de acceso seguros y escalables.

    Costo de contexto al activarse
    669 tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 2 meses
    seguridad