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
gustave — GUSTAVE es una plataforma de fuzzing para kernels de SO embebidos. Está basada en QEMU y AFL (y todos sus hermanos del forkserver). Permite realizar fuzzing a kernels de SO como si fueran aplicaciones simples. | Kitploit
Herramientas/GitHubGitHub/airbus-seclab/gustave
Seguridad de Sistemas EmbebidosFuzzingAnálisis de Binarios
GitHubairbus-seclab/gustave

gustave

GUSTAVE es una plataforma de fuzzing para kernels de SO embebidos. Está basada en QEMU y AFL (y todos sus hermanos del forkserver). Permite realizar fuzzing a kernels de SO como si fueran aplicaciones simples.

Ver Repositorio
20321hace 5 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

(c) Airbus 2021, sduverger

GUSTAVE - Fuzzer de kernels de sistemas operativos embebidos

¿Qué es ?

GUSTAVE es una plataforma de fuzzing para kernels de sistemas operativos embebidos. Está basada en QEMU y AFL (y todos sus hermanos forkserver). Permite fuzzear kernels de SO como si fueran aplicaciones simples.

Gracias a QEMU, es multiplataforma. Se puede ver GUSTAVE como una implementación de forkserver de AFL dentro de QEMU, con inspección de objetivo de grano fino.

¿Cuáles son los kernels compatibles ?

GUSTAVE ha sido diseñado principalmente para apuntar a kernels de SO embebidos. Puede que no sea la mejor herramienta para fuzzear kernels grandes y complejos como los de Windows, Linux o MACOS.

Sin embargo, si tienes un objetivo bajo el capó que se pueda preparar con una o dos aplicaciones para arrancar sin interacción del usuario, podría ser interesante darle una oportunidad a GUSTAVE.

¿Cómo funciona ?

La herramienta afl-fuzz, del proyecto AFL, se utiliza para fuzzear automáticamente tu objetivo. Sin embargo, AFL no puede fuzzear directamente un kernel de SO y espera que su objetivo analice directamente los casos de prueba generados.

En resumen, afl-fuzz ejecutará QEMU con la integración de GUSTAVE como su objetivo. A su vez, GUSTAVE manejará :

  • sincronización del forkserver
  • traducción de los casos de prueba generados a llamadas al sistema del objetivo
  • monitoreo del kernel objetivo (cobertura de ejecución y accesos a memoria)

Al igual que el modo de usuario AFL/QEMU que se encuentra en el proyecto AFL++, GUSTAVE implementa instrumentación binaria a nivel de IR de TCG de QEMU para la cobertura de código.

Sin embargo, puedes optar por deshabilitarlo y reconstruir el código del kernel objetivo solo con partes específicas sujetas al análisis de cobertura de código. Tendrás que inyectar shims de AFL en tiempo de compilación para actualizar los bitmaps de rastreo. Ese fue nuestro enfoque inicial (ver Publicaciones).

Menos prevalente en las soluciones existentes, GUSTAVE no se preocupa por monitorear kernel panics. Los consideramos errores gestionados y queremos descubrir comportamientos ilegales que no activaron ninguna alarma.

Para ese propósito, GUSTAVE se basa en un bitmap de filtrado de memoria orientado a bytes O(1) para detectar accesos ilegales desde el kernel. Puede haber un gran debate sobre definir qué podría considerarse ilegal desde el punto de vista del kernel. Pero en entornos embebidos restringidos y altamente deterministas, podrías sentirte cómodo definiendo áreas de memoria legítimas para tu firmware y rastreando accesos fuera de los límites.

¿Cómo se compara con las soluciones existentes ?

Existen enfoques comparables, como:

  • PowerFL
  • Project Triforce
  • afl-unicorn
  • kAFL

Las elecciones de diseño de GUSTAVE implican las siguientes diferencias:

  • realmente agnóstico respecto al objetivo (SO, arquitectura), siempre que QEMU ofrezca soporte
  • cubre todas las llamadas al sistema implementadas en el kernel objetivo
  • no se necesitan desarrollos específicos dentro del objetivo

Sin embargo, aún necesitas decirle a GUSTAVE:

  • cómo maneja tu objetivo las llamadas al sistema
  • cuál es el diseño de memoria legítimo de tu objetivo

¿Estado actual ?

Hardware del host

Por ahora solo se admite host x86, ya que muchos entornos de trabajo se basan en esta arquitectura, no lo consideramos una limitación prohibitiva.

La restricción proviene de la forma en que inicialmente implementamos el backend de filtrado de memoria a nivel tcg-target para la ruta rápida de carga/almacenamiento de QEMU. La arquitectura reciente de callbacks de memoria TCGPlugin podría ser un enfoque alternativo para admitir cualquier host.

Hardware invitado

Hemos implementado y probado soporte para Intel x86 y PowerPC. La implementación de GUSTAVE es independiente de la arquitectura. Si puedes ejecutar tu objetivo con QEMU, puedes fuzzearlo con GUSTAVE con poco esfuerzo.

Proporcionamos ejemplos de placas Intel 440FX y PowerPC PREP con integración de GUSTAVE. La implementación de tu propia placa es realmente fácil y consiste en envolver la función MACHINE_INIT para una arquitectura determinada.

También agregamos soporte para shims de instrumentación GUSTAVE para x86 y PowerPC en afl-gcc, en caso de que no quieras proceder con la instrumentación binaria TCG.

Ejemplo de objetivo

Proporcionamos desarrollos específicos para el microkernel POK:

  • firmware con aplicaciones simples
  • generador de ABI de llamadas al sistema para x86/PPC
  • bitmap de filtrado

¿Cómo usarlo ?

Necesitarás:

  1. compilar AFL
  2. compilar QEMU con integración de GUSTAVE
  3. crear o generar el bitmap de filtrado
  4. escribir un archivo de configuración JSON para tu objetivo
  5. ejecutarlo en una terminal

Lee el manual para el objetivo POK.

Publicaciones

El material de diferentes charlas sobre GUSTAVE se puede encontrar en https://airbus-seclab.github.io/.

Descargar herramienta