kali linux afl++
kali linux afl++
AFL++ (American Fuzzy Lop Plus Plus) es la versión moderna y mejorada del famoso fuzzer AFL. En Kali Linux, es una herramienta fundamental para el fuzzing, una técnica de pruebas de seguridad que consiste en enviar datos aleatorios o malformados a un programa para encontrar fallos, crashes o vulnerabilidades como desbordamientos de memoria (buffer overflows).
Aquí tienes una guía rápida en español para empezar a usarlo:
1. Instalación en Kali Linux
AFL++ ya se encuentra en los repositorios oficiales de Kali. Para instalarlo, abre una terminal y ejecuta:
sudo apt update
sudo apt install afl++
Este comando instalará el motor principal (afl-fuzz), así como los compiladores especiales (afl-gcc, afl-clang-fast, etc.) necesarios para instrumentar el código.
2. El proceso de Fuzzing (Paso a paso)
Para que AFL++ sea efectivo, necesita "ver" qué partes del código se están ejecutando. Esto se hace mediante la instrumentación.
Paso A: Compilación
En lugar de usar gcc, usa afl-gcc para compilar el programa que quieres probar:
afl-gcc -o programa_vulnerable programa.c
Paso B: Preparar los casos de prueba (Seeds)
Crea una carpeta con archivos de ejemplo que el programa normalmente aceptaría (por ejemplo, si el programa lee archivos de texto, crea un .txt pequeño).
mkdir input
echo "texto de ejemplo" > input/seed.txt
Paso C: Ejecutar el Fuzzer
Lanza el proceso de fuzzing indicando la carpeta de entrada (-i) y la de salida (-o):
afl-fuzz -i input -o output -- ./programa_vulnerable @@
@@: Indica a AFL++ dónde colocar el archivo generado automáticamente en la línea de comandos del programa.
3. Comandos clave y herramientas incluidas
AFL++ no es solo un comando, es una suite. Aquí tienes los más importantes:
| Herramienta | Función |
afl-fuzz | El motor principal que realiza las pruebas. |
afl-gcc / afl-clang | Compiladores para instrumentar el código fuente. |
afl-tmin | Reduce el tamaño de un archivo que causa un crash (minimización). |
afl-whatsup | Muestra el estado de las sesiones de fuzzing en curso. |
afl-analyze | Analiza cómo el programa procesa los bytes de un archivo. |
4. Consejos para principiantes
Modo QEMU: Si no tienes el código fuente del programa (solo el binario), puedes usar el modo QEMU añadiendo la bandera
-Q.Rendimiento: AFL++ te pedirá ajustar la frecuencia del CPU para mayor precisión. Puedes hacerlo con:
sudo afl-system-config
Resultados: Si el fuzzer encuentra un error, verás que el contador de "unique crashes" sube. Los archivos que causaron el fallo se guardarán en
output/crashes.