Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Chimera — Herramienta automatizada de sideloading de DLL con capacidades de evasión de EDR | Kitploit
Herramientas/GitHubGitHub/georgesotiriadis/chimera
Generación de PayloadsExplotaciónShellcodeRed Teaming
GitHubgeorgesotiriadis/chimera

Chimera

Herramienta automatizada de sideloading de DLL con capacidades de evasión de EDR

Ver Repositorio
50758hace 2 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Chimera Unlea$ed 

Antecedentes de la Herramienta


Aunque la carga lateral de DLL se puede usar con fines legítimos, como cargar las bibliotecas necesarias para que un programa funcione, también se puede usar con fines maliciosos. Los atacantes pueden usar la carga lateral de DLL para ejecutar código arbitrario en un sistema objetivo, a menudo explotando vulnerabilidades en aplicaciones legítimas que se utilizan para cargar DLL.

Para automatizar el proceso de carga lateral de DLL y hacerlo más efectivo, se creó Chimera, una herramienta que incluye metodologías de evasión para eludir productos EDR/AV. Esta herramienta puede cifrar automáticamente un shellcode mediante XOR con una clave aleatoria y crear Imágenes de plantilla que se pueden importar a Visual Studio para crear una DLL maliciosa.

Además, se utilizan Dynamic Syscalls de SysWhispers3 y una versión de ensamblador modificada para evadir el patrón que busca el EDR, se agregan NOP sleds aleatorios y se mueven registros. Asimismo, también se utiliza Early Bird Injection para inyectar el shellcode en otro proceso que el usuario puede especificar, con mecanismos de evasión de Sandbox como la comprobación de disco duro y si el proceso está siendo depurado. Finalmente, se coloca un ataque de temporización (Timing attack) en el cargador que utiliza temporizadores de espera para retrasar la ejecución del shellcode.

Esta herramienta ha sido probada y ha demostrado ser efectiva para eludir productos EDR/AV y ejecutar código arbitrario en un sistema objetivo.

La versión actualizada de Chimera Unleashed ha demostrado avances significativos en la evasión tanto del análisis estático como dinámico, particularmente en el contexto del sistema de Detección y Respuesta de Puntos Finales (EDR) de Microsoft 365. Las técnicas de carga lateral de la herramienta, incluso cuando se aplican a binarios conocidos como OneDrive, lograron eludir la detección con éxito. Sin embargo, es notable que, mientras que el aspecto de carga lateral permaneció sin detectar, el proceso de Early Bird Injection empleado por la herramienta fue identificado por el sistema EDR. Esto resalta un área para refinamiento adicional para mejorar las capacidades generales de sigilo de la herramienta.

Uso de la Herramienta


Actualizaciones y Características Clave:

  • Estructura Reformateada: Se ha reestructurado todo el programa para facilitar el desarrollo y el mantenimiento futuro.
  • Integración de Código Polimórfico: Incorporación de código polimórfico, mejorando significativamente las capacidades de evasión y haciendo la herramienta más resistente al análisis estático.
  • Integración de SysWhispers 3: Transición de SysWhispers 2 a una versión modificada de SysWhispers 3. Esta actualización mejora la capacidad de la herramienta para evadir los mecanismos de reconocimiento de patrones empleados por los sistemas EDR, utilizando syscalls dinámicos y técnicas de ensamblador modificadas.
  • Cifrado AES: Implementación de cifrado AES para asegurar el shellcode, añadiendo una capa adicional de seguridad y ofuscación.
  • Early Bird Injection: La herramienta emplea técnicas de Early Bird Injection, permitiendo una ejecución de código más sigilosa dentro de los procesos objetivo.
  • Module Stomping: Se añadirá en el futuro; también puedes implementar tu propia técnica de inyección de código en la herramienta.

Chimera está escrito en python3 y no es necesario instalar dependencias adicionales.

Chimera actualmente soporta dos opciones de DLL: Microsoft Teams o Microsoft OneDrive.

Alguien puede crear userenv.dll, que es una DLL faltante de Microsoft Teams, e insertarla en la carpeta específica en

⁠%USERPROFILE%/Appdata/local/Microsoft/Teams/current

Para Microsoft OneDrive, el script utiliza version.dll, que es común porque falta en el binario, por ejemplo, onedriveupdater.exe.

Argumentos de Línea de Comandos

Chimera Unleashed utiliza argparser para el análisis de argumentos de línea de comandos. Los siguientes argumentos están disponibles:

  • --raw o -r: Ruta al archivo que contiene el shellcode. Obligatorio.
  • --path o -p: Ruta para generar el archivo de plantilla C. Obligatorio.
  • --pname o -n: Nombre del proceso en el que inyectar el shellcode. Obligatorio.
  • --dexports o -d: Especificar qué exports de DLL usar ('teams' o 'onedrive'). Obligatorio.
  • --enc o -e: Especificar el cifrado preferido (XOR / AES). Obligatorio.
  • --inj o -i: Especificar la técnica de inyección preferida (EB / MS). Obligatorio.
  • --rshell o -s: [Opcional] Reemplazar el nombre de la variable del shellcode con un nombre único. Por defecto es 'encoded_shell'.

Ejemplo de uso: python Chimera.py --raw <ruta_al_shellcode> --path <ruta_de_salida> --pname <nombre_del_proceso> --dexports <archivo_de_exports> --enc AES --inj EB --rshell my_shellcode

Nota Útil

Una vez completado el proceso de compilación, se generará una DLL que debe incluir ya sea "version.dll" para OneDrive o "userenv.dll" para Microsoft Teams. A continuación, es necesario renombrar las DLL originales.

Por ejemplo, la "userenv.dll" original debe renombrarse como "tmpB0F7.dll", mientras que la "version.dll" original debe renombrarse como "tmp44BC.dll". Además, tienes la opción de modificar el nombre de la DLL proxy según lo desees alterando el código fuente de los exports de la DLL en lugar de usar los nombres predeterminados del script.

El archivo code.h contiene el shellcode.

Configuración del Proyecto en Visual Studio


Paso 1: Crear un Nuevo Proyecto en Visual Studio con Plantilla DLL

  1. Inicia Visual Studio y haz clic en "Crear un nuevo proyecto" o ve a "Archivo" -> "Nuevo" -> "Proyecto".
  2. En la ventana de plantillas de proyecto, selecciona "Visual C++" en el lado izquierdo.
  3. Elige "Proyecto vacío" de las plantillas disponibles.
  4. Proporciona un nombre y una ubicación adecuados para el proyecto, luego haz clic en "Aceptar".
  5. En la ventana de propiedades del proyecto, navega a "Propiedades de configuración" -> "General" y establece "Tipo de configuración" en "Biblioteca dinámica (.dll)".
  6. Configura otras opciones del proyecto según se desee y guarda el proyecto.

Paso 2: Importar Archivos al Proyecto de Visual Studio

  1. Localiza la carpeta "chimera_automation" que contiene las Imágenes necesarias.
  2. Abre la carpeta e identifica los siguientes archivos: main.c, syscalls.c, syscallsstubs.std.x64.asm.
  3. En Visual Studio, haz clic derecho en el proyecto en el panel "Explorador de soluciones" y selecciona "Agregar" -> "Elemento existente".
  4. Navega hasta la ubicación de cada archivo (main.c, syscalls.c, syscallsstubs.std.x64.asm) y selecciónalos uno por uno. Haz clic en "Agregar" para importarlos al proyecto.
  5. Crea una carpeta llamada "header_files" dentro del directorio del proyecto si no existe.
  6. Localiza el archivo de encabezado "syscalls_mem.h" en la carpeta "header_files" del directorio "chimera_automation".
  7. Haz clic derecho en la carpeta "header_files" en el panel "Explorador de soluciones" de Visual Studio y selecciona "Agregar" -> "Elemento existente".
  8. Navega hasta la ubicación de "syscalls_mem.h" y selecciónalo. Haz clic en "Agregar" para importarlo al proyecto.

Paso 3: Personalización de la Compilación

  1. En la ventana de propiedades del proyecto, navega a "Propiedades de configuración" -> "Personalizaciones de compilación".
  2. Haz clic en el botón "Personalizaciones de compilación" para abrir el diálogo de personalización de compilación.

Paso 4: Habilitar MASM

  1. En el diálogo de personalización de compilación, marca la casilla junto a "masm" para habilitarlo.
  2. Haz clic en "Aceptar" para cerrar el diálogo de personalización de compilación.

Paso 5: 

  1. Haz clic derecho en el archivo de ensamblador → propiedades y elige lo siguiente
  2. Excluir de la compilación → No
  3. Contenido → Sí
  4. Tipo de elemento → Ensamblador de Microsoft Macro

Configuración Final del Proyecto

Optimizaciones del Compilador


Paso 1: Cambiar la optimización 

  1. En Visual Studio elige Proyecto → propiedades 
  2. C/C++ → Optimización y cambia a lo siguiente

Paso 2: Eliminar Información de Depuración

  1. En Visual Studio elige Proyecto → propiedades 
  2. Enlazador → Depuración → Generar información de depuración → No

Contribuyentes

Contribuyente original:

  • George Sotiriadis
    • Lanzamiento inicial y concepto.
    • Refactorización de código en la versión actualizada.
    • SysWhispers3 modificado en la versión actualizada.

Contribuyente:

  • Efstratios Chatzoglou
    • Añadió código polimórfico, ofuscador y cifrado AES en la versión actualizada.
    • Asistió en la refactorización de código y desarrollo adicional.

Descargo de responsabilidad:


En la máxima medida permitida por la ley aplicable, yo (George Sotiriadis) y/o afiliados que hayan enviado contenido a mi repositorio, no serán responsables por daños indirectos, incidentales, especiales, consecuentes o punitivos, ni por pérdidas de ganancias o ingresos, ya sea incurridas directa o indirectamente, ni por pérdida de datos, uso, buena voluntad u otras pérdidas intangibles, que resulten de (i) su acceso a este recurso y/o incapacidad para acceder a este recurso; (ii) cualquier conducta o contenido de cualquier tercero referenciado por este recurso, incluyendo sin limitación, cualquier conducta difamatoria, ofensiva o ilegal de otros usuarios o terceros; (iii) cualquier contenido obtenido de este recurso

Referencias


https://www.ired.team/offensive-security/code-injection-process-injection/early-bird-apc-queue-code-injection

https://evasions.checkpoint.com/

https://github.com/Flangvik/SharpDllProxy

https://github.com/jthuraisamy/SysWhispers2

https://systemweakness.com/on-disk-detection-bypass-avs-edr-s-using-syscalls-with-legacy-instruction-series-of-instructions-5c1f31d1af7d

https://github.com/Mr-Un1k0d3r

Descargar herramienta
  • --rxor o -x: [Opcional] Reemplazar el nombre del cifrado XOR con un nombre único. Por defecto es 'do_xor'.
  • --rkey o -k: [Opcional] Reemplazar el nombre de la variable clave con un nombre único. Por defecto es 'key'.
  • --rsleep o -z: [Opcional] Tiempo total de suspensión a incluir durante la ejecución (segundos). Por defecto es 4000.
  • --size o -f: [Opcional] Tamaño del archivo de datos basura en KB. Cero (0) está deshabilitado, y uno (1) es un tamaño de archivo aleatorio. Por defecto es 0.