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
frostbyte — Combina la inyección de AppDomain Manager con la incrustación de shellcode en binarios firmados para evadir la detección de EDR/AV en payloads de equipos rojos. | Kitploit
Herramientas/GitHubGitHub/pwn1sher/frostbyte
ShellcodeGeneración de Shellcode
GitHubpwn1sher/frostbyte

frostbyte

Combina la inyección de AppDomain Manager con la incrustación de shellcode en binarios firmados para evadir la detección de EDR/AV en payloads de equipos rojos.

Ver Repositorio
38346hace 4 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

FrostByte

Prólogo:

En los últimos días he estado experimentando con la técnica de inyección del administrador de AppDomain y tuve un éxito decente con ella en mis compromisos anteriores de Red Team contra ciertos EDR. Aunque esto es realmente bueno para el vector de acceso inicial, quería lanzar un POC que ayude a ocultar tu shellcode en otro lugar. ¡No más archivos DLL con shellcode incrustado!

El problema!

Aunque es una excelente técnica cuando se usa de forma independiente, pero cuando se combina con una técnica de entrega como enviar un C# ClickOnce dentro de un archivo ISO/ZIP/VHD/VHDX. El problema real es que 1 de cada 10 veces el DLL para el appdomain era detectado por las heurísticas de IA/ML del AV/EDR. Esto se debe a que el archivo DLL debe colocarse en el disco antes de inicializar el appdomain. Ignorando las cargas de DLL remotas por ahora (rutas UNC en .config), el DLL para el appdomain contendría el shellcode y sentí firmemente que esa es la razón de una probable detección estática, porque el resto del código, que son llamadas WINAPI, se puede resolver dinámicamente y estar bastante bien ofuscado.

Quería mejorar esta técnica en términos de minimizar lo que el DLL contendría inicialmente. Empecé colocando shellcode cifrado en un archivo separado en el disco junto con el DLL inyector, pero luego me topé con este increíble blog de Checkpoint sobre la Campaña de Zloader

Versión TLDR: Podemos incrustar datos arbitrarios en algunos campos dentro del PE de una manera que no rompa la firma del archivo. Así, nuestros datos se incrustarán y el exe seguirá estando firmado digitalmente.

Más información sobre esto - https://www.blackhat.com/docs/us-16/materials/us-16-Nipravsky-Certificate-Bypass-Hiding-And-Executing-Malware-From-A-Digitally-Signed-Executable-wp.pdf

Entonces la idea es incrustar un stub de shellcode cifrado en un ejecutable firmado conocido y aún así lograr mantenerlo firmado como lo hizo el malware Zloader. Al hacerlo, el DLL del Administrador de AppDomain ya no contendrá el shellcode en sí mismo, sino que solo tendrá la lógica para analizar el shellcode del binario PE que lo carga para descifrarlo y ejecutarlo como un hilo separado. Hacer esto podría disminuir la tasa de detección estática para el DLL mientras tu shellcode está bien colocado dentro de un binario firmado.

Estaba intentando lograr esto manipulando manualmente las muestras de ZLoader que obtuve de VirusTotal, pero luego descubrí un proyecto que ya había implementado todas estas técnicas bastante bien - Sigflip. En este POC aproveché el código de carga de Sigflip para construir el DLL de AppDomain y el inyector SigFlip para incrustar el shellcode cifrado en nuestro exe de C#.

Ventajas:

Grandes fragmentos de shellcode como el shellcode Stageless de Cobalt Strike ya no residirán en un DLL sin firmar en el disco, independientemente de las técnicas de ofuscación/codificación utilizadas. El DLL es más limpio, más pequeño y más sigiloso con código mínimo, reduciendo así las posibilidades de detección.

Funcionamiento

Diagram

Pasos para construir un Ejecutable de Shellcode Firmado

  • Elige cualquier binario C# firmado x64 de tu elección, un binario dentro del cual te gustaría que resida y ejecute el beacon de Cobalt Strike: Por ej.: CasPol.exe, etc.
  • Genera tu shellcode Stageless de Cobalt Strike - x64-stageless.bin
  • Coloca ambos en una carpeta donde también esté presente SigFlip y ejecuta el siguiente comando:
    SigFlip.exe -i "Z:\ZLoader\CasPol.exe" "Z:\ZLoader\x64-stageless.bin" "Z:\ZLoader\update.exe" "S3cretK3y"
  • Gracias a SigFlip ahora tienes un binario (¿firmado de Windows?) llamado update.exe que será un PE firmado digitalmente con shellcode cifrado incrustado.

Pasos para construir el DLL del Cargador de AppDomain

  • Toma el Código de Plantilla C# de aquí
  • Reemplaza tu clave secreta de cifrado con la que elegiste al ejecutar SigFlip en la Línea:163 (puede que necesites ajustar algunos bytes para confirmar si tu shellcode de CS se descifra correctamente)
  • Reemplaza con la ruta del binario en la Línea:146
  • Cambia las rutas de los archivos de registro en las líneas: 158,165
  • Compila el código como DLL usando el siguiente comando - csc /target:library /out:test.dll test.cs
  • Coloca el DLL compilado y el archivo update.exe.config en la misma carpeta donde se colocó tu exe de shellcode firmado.
  • Ejecuta update.exe.

Conclusión:

Este POC es solo una idea que tenía en mente para combinar dos técnicas de evasión de defensa totalmente diferentes que me ayudarían a mí y a otros Red Teamers a construir mejores payloads de ejecución inicial para sus operaciones. Este proyecto utiliza la Inyección del Administrador de AppDomain como ejemplo, pero esta idea es aplicable a otras técnicas de inyección también, como - DLL SideLoading, DLL Hijacking, etc.

Créditos:

Todos los créditos a med0x2e, este POC está construido basado en su proyecto SigFlip

Referencias:

  • https://research.checkpoint.com/2022/can-you-trust-a-files-digital-signature-new-zloader-campaign-exploits-microsofts-signature-verification-putting-users-at-risk/
  • https://www.blackhat.com/docs/us-16/materials/us-16-Nipravsky-Certificate-Bypass-Hiding-And-Executing-Malware-From-A-Digitally-Signed-Executable-wp.pdf
  • https://pentestlaboratories.com/2020/05/26/appdomainmanager-injection-and-detection/
  • https://github.com/med0x2e/SigFlip
Descargar herramienta