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
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:
- 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"]
]
}
- 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
Publicar un comentario