Herramienta de pruebas de fuzzing con sfuzz
Herramienta de pruebas de fuzzing con sfuzz
sfuzz (Simple Fuzzer) es una herramienta de pruebas de fuzzing integrada en Kali Linux. Se utiliza en auditorías de seguridad y pentesting para enviar datos aleatorios, malformados o inesperados a una aplicación o servicio de red con el fin de provocar fallos (cuelgues, desbordamientos de búfer o buffer overflows) y descubrir vulnerabilidades.
1. ¿Cómo funciona sfuzz?
sfuzz opera bajo el principio de fuzzing basado en archivos de configuración o patrones. Puedes indicarle qué tipo de peticiones enviar (HTTP, FTP, datos crudos por socket TCP/UDP) y la herramienta comenzará a inyectar secuencias de prueba (cadenas largas de caracteres A, caracteres nulos, secuencias de formato, etc.) en los puntos de entrada especificados.
2. Sintaxis y opciones principales
Para ver la ayuda básica en la terminal de Kali Linux:
sfuzz -h
Opciones más utilizadas:
-S <IP>: Define la dirección IP del objetivo (modo cliente TCP/UDP).-p <puerto>: Especifica el puerto de red a auditar.-f <archivo>: Indica el archivo de configuración con la estructura de las peticiones a probar.-v/-V: Aumenta el nivel de detalle (verbosity) en pantalla para ver qué cadenas se están enviando.-T/-U: Selecciona el protocolo de transporte (TCP o UDP).
3. Ejemplo práctico de uso
Paso A: Crear un archivo de configuración (.sfuzz)
sfuzz utiliza plantillas donde defines qué partes del texto son fijas y cuáles se deben "fuzzear" (mutar).
Crea un archivo llamado http_test.sfuzz:
p = "GET /"
p = %fuzz%
p = " HTTP/1.1\r\nHost: target.local\r\n\r\n"
¿Qué hace esto? Le dice a
sfuzzque mantenga la cabeceraGET /y el final del protocolo HTTP estáticos, mientras prueba miles de mutaciones dentro del parámetro%fuzz%.
Paso B: Ejecutar la prueba contra un servidor web local
sfuzz -S 192.168.1.50 -p 80 -f http_test.sfuzz -v
4. Alternativas modernas en Kali Linux
Aunque sfuzz es genial por su ligereza para pruebas rápidas en sockets directos, hoy en día suelen combinarse o sustituirse por herramientas más avanzadas según el escenario:
AFL++ (American Fuzzy Lop): Excelente para fuzzing binario a nivel de código/compilación.
ffuf / wfuzz: Especializados en fuzzing de aplicaciones y rutas web HTTP/HTTPS.
Boofuzz: Framework en Python muy potente para protocolos de red complejos.