CrimsonEDR: una herramienta para simular el comportamiento de un EDR (y aprender a evadirlo)

CrimsonEDR es un proyecto de código abierto de Matthias Ossard (aka helixo32) diseñado para identificar patrones de malware específicos y ofrecer una herramienta para perfeccionar las habilidades para eludir la detección y respuesta de endpoints (EDR). Al aprovechar diversos métodos de detección, permite a los usuarios profundizar su comprensión de las tácticas de evasión de seguridad.

Características: 

Detección Descripción
 Direct Syscall  Detecta el uso de direct system calls, a menudo usado por malware para bypassear API hooks tradicionales.
 NTDLL Unhooking  Identifica intentos de deshookear funciones dentro de la librería NTDLL, un técnica de evasión bastante común.
 AMSI Patch  Detecta modificaciones en Anti-Malware Scan Interface (AMSI) mediante una análisis a nivel de byte.
 ETW Patch  Detecta alteraciones a nivel de byte en Event Tracing for Windows (ETW), normalmente algo que el malware suele manipular para evadir la detección.
 PE Stomping  Identifica instancias de PE (Portable Executable) stomping.
 Reflective PE Loading  Detecta reflective loading de ficheros ejecutables PE, una técnica usada por malware para evadir el análisis estático.
 Unbacked Thread Origin  Identifica threads originadas desde regiones de memoria unbacked, normalmente indicativo de malware.
 Unbacked Thread Start Address  Detecta threads con direcciones de inicio apuntando a memoria unbacked, una señal potencial de inyección de código.
 API hooking  Pone un hook en la función NtWriteVirtualMemory para monitorizar modifcaciones en memoria.
 Custom Pattern Search  Permite buscar por patrones específicos configurados en un fichero JSON, facilitando la identificación de firmas de malware.

Instalación:

1. Instalar dependencias:
sudo apt-get install gcc-mingw-w64-x86-64
2. Clonar el repositorio:
git clone https://github.com/Helixo32/CrimsonEDR
3. Compilar el proyecto:
    cd CrimsonEDR;
    chmod +x compile.sh;
    ./compile.sh
    ⚠️ Warning
    Windows Defender y otros programas antivirus pueden marcar la DLL como maliciosa debido a que su contenido contiene bytes utilizados para verificar si el AMSI ha sido parcheado. Asegúrese de incluir la DLL en la lista blanca o deshabilite su antivirus temporalmente cuando utilice CrimsonEDR para evitar interrupciones.

    Uso:

    1. Asegúrate de que el archivo ioc.json esté ubicado en el directorio actual desde el cual se inicia el ejecutable que se está monitorizando. Por ejemplo, si inicias tu ejecutable para monitorizar desde C:\Users\admin\, la DLL buscará ioc.json en C:\Users\admin\ioc.json. Actualmente, ioc.json contiene patrones relacionados con msfvenom. Puedes agregar fácilmente el tuyo propio en el siguiente formato:
    {
      "IOC": [
        ["0x03", "0x4c", "0x24", "0x08", "0x45", "0x39", "0xd1", "0x75"],
        ["0xf1", "0x4c", "0x03", "0x4c", "0x24", "0x08", "0x45", "0x39"],
        ["0x58", "0x44", "0x8b", "0x40", "0x24", "0x49", "0x01", "0xd0"],
        ["0x66", "0x41", "0x8b", "0x0c", "0x48", "0x44", "0x8b", "0x40"],
        ["0x8b", "0x0c", "0x48", "0x44", "0x8b", "0x40", "0x1c", "0x49"],
        ["0x01", "0xc1", "0x38", "0xe0", "0x75", "0xf1", "0x4c", "0x03"],
        ["0x24", "0x49", "0x01", "0xd0", "0x66", "0x41", "0x8b", "0x0c"],
        ["0xe8", "0xcc", "0x00", "0x00", "0x00", "0x41", "0x51", "0x41"]
      ]
    }
    1. Ejecuta CrimsonEDRPanel.exe con los siguientes argumentos:
    -d <ruta_a_dll>: especifica la ruta al archivo CrimsonEDR.dll.
    -p <id_proceso>: especifica el ID de proceso (PID) del proceso de destino donde desea inyectar la DLL.

    Por ejemplo:
    .\CrimsonEDRPanel.exe -d C:\Temp\CrimsonEDR.dll -p 1234

    Comentarios