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
CAPEv2 — Extracción de Configuración y Carga Útil de Malware | Kitploit
Herramientas/GitHubGitHub/kevoreilly/capev2
Análisis Dinámico (Sandboxing)Forensia de MemoriaAnálisis de VulnerabilidadesForensia de RedIngeniería InversaDepuradoresAnálisis ForenseAnálisis de MalwareAprendizaje y Educación
GitHubkevoreilly/capev2

CAPEv2

Extracción de Configuración y Carga Útil de Malware

3.4k597hace 9h 19mRevisado 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
Ver RepositorioSitio web

CAPE: Extracción de Configuración y Carga Útil de Malware - Documentación

CAPE es un sandbox de malware.

Un sandbox se utiliza para ejecutar archivos maliciosos en un entorno aislado mientras se instrumenta su comportamiento dinámico y se recopilan artefactos forenses.

CAPE se derivó de Cuckoo v1, que cuenta con las siguientes capacidades principales en la plataforma Windows:

  • Instrumentación de comportamiento basada en hooking de API
  • Captura de archivos creados, modificados y eliminados durante la ejecución
  • Captura de tráfico de red en formato PCAP
  • Clasificación de malware basada en firmas de comportamiento y de red
  • Capturas de pantalla del escritorio tomadas durante la ejecución del malware
  • Volcados de memoria completos del sistema de destino

CAPE complementa la salida tradicional del sandbox de Cuckoo con varias adiciones clave:

  • Desempaquetado dinámico automatizado de malware
  • Clasificación de malware basada en firmas YARA de cargas útiles desempaquetadas
  • Extracción de configuración de malware estática y dinámica
  • Depurador automatizado programable mediante firmas YARA, permitiendo:
    • Extractores de configuración/desempaquetado personalizados
    • Contramedidas dinámicas anti-sandbox
    • Trazas de instrucciones
  • Escritorio interactivo

Hay una instancia de demostración gratuita en línea que cualquiera puede usar:

https://capesandbox.com - Para la activación de la cuenta, contacte a https://twitter.com/capesandbox

Un poco de historia

Cuckoo Sandbox comenzó como un proyecto de Google Summer of Code en 2010 dentro de The Honeynet Project. Fue diseñado y desarrollado originalmente por Claudio Guarnieri, la primera versión beta se publicó en 2011. En enero de 2014, se lanzó Cuckoo v1.0.

2015 fue un año crucial, con una bifurcación significativa en la historia de Cuckoo. El desarrollo del monitor original y el método de hooking de API se detuvo en el proyecto principal de Cuckoo. Fue reemplazado por un monitor alternativo utilizando un formato de firma basado en restructuredText compilado mediante la cadena de herramientas de Linux, creado por Jurriaan Bremer.

Casi al mismo tiempo, una bifurcación llamada Cuckoo-modified fue creada por Brad 'Spender' Spengler, continuando el desarrollo del monitor original con mejoras significativas, incluido el soporte de 64 bits y, lo que es importante, la introducción del compilador Microsoft Visual Studio.

Durante ese mismo año, comenzó el desarrollo de una herramienta dinámica de línea de comandos para la extracción de configuración y carga útil llamada CAPE en Context Information Security por Kevin O'Reilly. El nombre se acuñó como acrónimo de 'Config And Payload Extraction' (Extracción de Configuración y Carga Útil) y la investigación original se centró en el uso de hooks de API proporcionados por la biblioteca Detours de Microsoft para capturar cargas útiles de malware desempaquetadas y configuración. Sin embargo, se hizo evidente que los hooks de API por sí solos no proporcionan suficiente potencia y precisión para permitir el desempaquetado de cargas útiles o configuraciones de malware arbitrario.

Por esta razón, comenzó la investigación sobre un concepto novedoso de depurador para permitir que el malware sea controlado e instrumentado con precisión, evitando el uso de interfaces de depuración de Microsoft, para ser lo más sigiloso posible. Este depurador se integró en la herramienta de línea de comandos basada en Detours como prueba de concepto, combinándose con hooks de API y dando como resultado capacidades muy potentes.

Cuando el trabajo inicial mostró que sería posible reemplazar Microsoft Detours con el motor de hooking de API de Cuckoo-modified, nació la idea de CAPE Sandbox. Con la adición del depurador, el desempaquetado automático, la clasificación basada en YARA y la extracción integrada de configuración, en septiembre de 2016 en 44con, CAPE Sandbox fue lanzado públicamente por primera vez: CAPE versión 1.

En el verano de 2018, el proyecto tuvo la suerte de ver el comienzo de enormes contribuciones de Andriy 'doomedraven' Brukhovetskyy, un colaborador de larga data de Cuckoo. En 2019 comenzó la titánica tarea de portar CAPE a Python 3 y en octubre de ese año se lanzó CAPEv2.

CAPE se ha desarrollado y mejorado continuamente para mantenerse al día con los avances tanto en malware como en las capacidades del sistema operativo. En 2021, se añadió la capacidad de programar el depurador de CAPE durante la detonación mediante escaneos YARA dinámicos, lo que permitió la creación de bypass dinámicos para técnicas anti-sandbox. Windows 10 se convirtió en el sistema operativo predeterminado, y otras adiciones significativas incluyen escritorio interactivo, captura de carga útil de AMSI (Interfaz de Escaneo Anti-Malware), 'hooking de syscall' basado en Microsoft Nirvana y contramedidas de syscall directas/indirectas basadas en depurador.

Clasificación

image

El malware se puede clasificar en CAPE mediante tres mecanismos:

  • Escaneos YARA de cargas útiles desempaquetadas
  • Escaneos Suricata de capturas de red
  • Firmas de comportamiento que escanean la salida de hooks de API

Extracción de Configuración

image

El análisis se puede realizar utilizando el propio framework de CAPE; alternativamente, se admiten los siguientes frameworks: RATDecoders, DC3-MWCP, MalDuck, o MaCo

Nota especial sobre los frameworks de análisis de configuración:

  • Debido a la naturaleza del malware, ya que cambia constantemente cuando se lanza una nueva versión, ¡algo podría romperse!
  • Sugerimos utilizar el framework de CAPE, que es simplemente Python puro con el punto de entrada def extract_config(data): que será llamado por cape_utils.py y sin complicaciones.
    • Como beneficio adicional, puedes reutilizar tus extractores en otros proyectos.

Desempaquetado Automático

image

CAPE aprovecha muchas técnicas o comportamientos de malware para permitir la captura de cargas útiles desempaquetadas:

  • Inyección de procesos
    • Inyección de shellcode
    • Inyección de DLL
    • Process Hollowing
    • Process Doppelganging
  • Extracción o descompresión de módulos ejecutables o shellcode en memoria

Estos comportamientos resultarán en la captura de cargas útiles que se están inyectando, extrayendo o descomprimiendo para su posterior análisis. Además, CAPE crea automáticamente un volcado de proceso para cada proceso, o, en el caso de una DLL, la imagen del módulo DLL en memoria. Esto es útil para muestras empaquetadas con empaquetadores simples, donde a menudo el volcado de la imagen del módulo está completamente desempaquetado.

Además de los mecanismos de desempaquetado 'pasivo' predeterminados de CAPE, es posible habilitar el desempaquetado 'activo', que utiliza puntos de interrupción para detectar escrituras en regiones de memoria recién asignadas o protegidas, con el fin de capturar cargas útiles desempaquetadas lo antes posible antes de su ejecución. Esto se habilita mediante una casilla de verificación en el envío web o especificando la opción unpacker=2 y está desactivado por defecto, ya que puede afectar la calidad de la detonación.

CAPE se puede programar mediante una firma YARA para desempaquetar empaquetadores específicos. Por ejemplo, los empaquetadores de tipo UPX son muy comunes y, aunque en CAPE estos resultan en la captura pasiva de cargas útiles desempaquetadas, la captura predeterminada se realiza después de que la carga útil desempaquetada ha comenzado a ejecutarse. Por lo tanto, al detectar empaquetadores derivados de UPX dinámicamente mediante una firma YARA personalizada y establecer un punto de interrupción en la instrucción final del empaquetador, es posible capturar la carga útil en su punto de entrada original (OEP) antes de que haya comenzado a ejecutarse.

image

image

La opción dump-on-api permite volcar un módulo cuando llama a una función API específica que se puede especificar en la interfaz web (por ejemplo, dump-on-api=DnsQuery_A).

Depurador

El depurador ha permitido que CAPE continúe evolucionando más allá de sus capacidades originales, que ahora incluyen bypass dinámicos anti-evasivos. Dado que el malware moderno comúnmente intenta evadir el análisis dentro de los sandboxes, por ejemplo, mediante trampas de temporización para la virtualización o la detección de hooks de API, CAPE permite desarrollar contramedidas dinámicas combinando acciones del depurador dentro de firmas YARA para detectar malware evasivo a medida que detona, y realizar manipulación del flujo de control para forzar a la muestra a detonar completamente o saltar acciones evasivas.

image image

El acceso rápido al depurador es posible con las opciones de envío bp0 a bp3, que aceptan valores RVA o VA para establecer puntos de interrupción, donde se generará una traza de instrucciones corta, gobernada por las opciones count y depth (por ejemplo, bp0=0x1234,depth=1,count=100). image

Para establecer un punto de interrupción en el punto de entrada del módulo, se usa ep en lugar de una dirección (por ejemplo, bp0=ep). Alternativamente, break-on-return permite un punto de interrupción en la dirección de retorno de una API enganchada (por ejemplo, break-on-return=NtGetContextThread). Un parámetro opcional base-on-api permite establecer la base de la imagen para puntos de interrupción RVA mediante una llamada API (por ejemplo, base-on-api=NtReadFile,bp0=0x2345).

image

Las opciones action0 - action3 permiten realizar acciones cuando se alcanzan los puntos de interrupción, como volcar regiones de memoria (por ejemplo, action0=dumpebx) o cambiar el flujo de control de ejecución (por ejemplo, action1=skip). La documentación de CAPE contiene más ejemplos de tales acciones.

capemon

El repositorio que contiene el código para el monitor de CAPE es distinto.

Resumen de actualizaciones registro de cambios

Contribuciones de la comunidad

Hay un repositorio comunitario de firmas que contiene varios cientos de firmas desarrolladas por la comunidad de CAPE. Todas las nuevas características comunitarias deben enviarse a ese repositorio. Posteriormente, pueden moverse al núcleo si los desarrolladores pueden y están dispuestos a mantenerlas.

Por favor, contribuya a este proyecto ayudando a crear nuevas firmas, analizadores o bypass para más familias de malware. Actualmente hay muchas en desarrollo, así que esté atento.

Un enorme agradecimiento a @D00m3dR4v3n por portar CAPE a Python 3 en solitario.

Recomendaciones de instalación y scripts para un rendimiento óptimo

  • Python3

    • agent.py está probado con python (3.7.2|3.8) x86. ¡Debe usar la versión x86 de python dentro de la VM!
    • host probado con python3 versión 3.10, 3.12, pero las versiones más nuevas también deberían funcionar
  • Solo rooter debe ejecutarse como root, el resto como usuario cape. Ejecutar como root estropeará los permisos.

  1. Familiarícese con la documentación y lea TODOS los archivos de configuración dentro de la carpeta conf!
  2. Para una mejor compatibilidad, recomendamos encarecidamente instalar en Ubuntu 24.04 LTS y usar Windows 10 o Windows 11 23H2 como destino.
  3. kvm-qemu.sh y cape2.sh DEBEN ejecutarse desde una sesión de tmux para prevenir cualquier problema del sistema operativo si la conexión ssh se interrumpe.
  4. Se recomienda KVM como hipervisor.
  • Reemplace <username> con un patrón real.
  • ¡Debe reemplazar todos los <WOOT> dentro!
  • ¡Léalo! ¡Debe entender lo que hace! Tiene configuración en el encabezado del script.
  • sudo ./kvm-qemu.sh all <username> 2>&1 | tee kvm-qemu.log
  1. Para instalar CAPE en sí, cape2.sh con todas las optimizaciones
    • ¡Lea y entienda lo que hace! ¡Esto no es una solución mágica para todos sus problemas! Tiene configuración en el encabezado del script.
    • sudo ./cape2.sh base 2>&1 | tee cape.log
  2. Después de instalar todo, guarde ambos registros de instalación como oro!
  3. Configure CAPE realizando modificaciones en los archivos de configuración dentro de la carpeta conf.
  4. Reinicie todos los servicios de CAPE para aplicar los cambios de configuración y ejecutar CAPE correctamente!
    • Servicios de CAPE
      • cape.service
      • cape-processor.service
      • cape-web.service
      • cape-rooter.service
      • Para reiniciar cualquier servicio use systemctl restart <nombre_del_servicio>
      • Para ver el registro del servicio use journalctl -u <nombre_del_servicio>
    • Para depurar cualquier problema, detenga el servicio relevante y ejecute el comando que ejecuta ese servicio manualmente para ver más registros. Consulte -h para el menú de ayuda. Ejecutar el servicio en modo de depuración (-d) también puede ayudar.
  5. ¡Reinicie y disfrute!
  • Todos los scripts contienen ayuda -h, pero por favor revise los scripts para entender lo que hacen.

Cómo crear VMs con virt-manager, consulte la documentación para la configuración

  • paso a paso

Dependencia principal de la máquina virtual

  • choco.bat

Cómo actualizar

  • CAPE: git pull
  • comunidad: python3 utils/community.py -waf consulte -h antes para asegurarse de entender

Cómo actualizar con muchas modificaciones personalizadas pequeñas que no pueden ser públicas?

Con rebase

root@kitploit:~
git add --all
git commit -m '[STASH]'
git pull --rebase origin master
# corrige conflictos (rebase) si es necesario
git reset HEAD~1

Con merge

root@kitploit:~
# asegúrate de que el repositorio kevoreilly se haya agregado como remoto (solo necesita hacerse una vez)
git remote add kevoreilly https://github.com/kevoreilly/CAPEv2.git
# asegúrate de que todos tus cambios estén confirmados en la rama que vas a fusionar
git commit -a -m '<tu mensaje de confirmación aquí>'
# obtén cambios del repositorio kevoreilly
git fetch kevoreilly
# fusiona la rama master de kevoreilly en tu rama actual
git merge kevoreilly/master
# corrige conflictos de fusión si es necesario
# envía a tu repositorio si lo deseas
git push

Cómo citar este trabajo

Si usas CAPEv2 en tu trabajo, por favor cítalo como se especifica en el menú de GitHub "Cite this repository".

Nota especial sobre dependencias de terceros:

  • Se están convirtiendo en un dolor de cabeza, especialmente aquellas que usan pefile ya que cada una fija la versión que quiere.
    • Nuestra sugerencia es clonarlos/hacer fork, eliminar la dependencia de pefile ya que ya la tienes instalada. Voilà, sin más dolor.

Documentación

  • ReadTheDocs
  • DeepWiki - Generada por IA, algunas pueden ser incorrectas pero generalmente bastante precisas.
Descargar herramienta