Volver a la página principal
domingo 22 septiembre 2024
197

Escaneo de vulnerabilidades web con Wapiti desde la línea de comandos

Wapiti es una herramienta gratuita y de código abierto que se utiliza para realizar escaneos de vulnerabilidades en aplicaciones web. Está diseñada para ayudar a los profesionales de la seguridad a identificar posibles fallos en la seguridad de un sitio web mediante la emulación de ataques comunes, como inyecciones SQL, cross-site scripting (XSS), inclusión de archivos locales (LFI) y mucho más.

¿Qué es Wapiti?

Wapiti es una herramienta para realizar pruebas de seguridad en aplicaciones web, que sigue un enfoque llamado black-box testing (pruebas de caja negra). Esto significa que no analiza el código fuente de la aplicación, sino que interactúa con la aplicación web de la misma forma que lo haría un usuario, identificando vulnerabilidades en las entradas y salidas de los datos.

Principales características de Wapiti:

  • Escaneo de múltiples tipos de vulnerabilidades web: SQL Injection (SQLi), Cross-Site Scripting (XSS), Remote File Inclusion (RFI), Local File Inclusion (LFI), entre otras.
  • Soporte para escaneo de aplicaciones web que utilizan formularios.
  • Soporte para autenticación con cookies y encabezados personalizados.
  • Capacidad de exportar informes en varios formatos: HTML, JSON, XML, y TXT.

Instalación de Wapiti en Kali Linux

Wapiti está disponible en los repositorios oficiales de Kali Linux, por lo que la instalación es simple. Sigue estos pasos:

1. Actualizar los repositorios de Kali Linux:

Asegúrate de tener tus repositorios actualizados antes de instalar cualquier herramienta:

sudo apt update && sudo apt upgrade

2. Instalar Wapiti:

Ejecuta el siguiente comando para instalar Wapiti desde los repositorios:

sudo apt install wapiti

3. Verificar la instalación:

Una vez instalada la herramienta, verifica su instalación ejecutando:

wapiti --version

Esto mostrará la versión de Wapiti que tienes instalada.

Uso básico de Wapiti

El uso básico de Wapiti se enfoca en escanear un sitio web para detectar vulnerabilidades. Para iniciar un escaneo, simplemente proporciona la URL del sitio web objetivo.

Comando básico para iniciar un escaneo:

wapiti http://ejemplo.com

Ejemplo de salida:

[+] Parsing http://ejemplo.com
[+] Launching module 'sql'...
[+] Launching module 'xss'...
[+] Launching module 'file'...
[+] Launching module 'backup'...
...

Wapiti analizará el sitio web e intentará detectar posibles vulnerabilidades, explorando formularios, parámetros GET/POST y cookies. Si detecta alguna vulnerabilidad, la reportará en la salida o la guardará en un archivo de informe.

Escaneo con Wapiti: Opciones avanzadas

Wapiti ofrece muchas opciones avanzadas para personalizar los escaneos. A continuación, te mostramos las opciones más comunes y útiles.

1. Definir el objetivo del escaneo

Puedes especificar el objetivo utilizando la URL del sitio que deseas escanear:

wapiti http://ejemplo.com

Si deseas limitar el escaneo a un determinado subdirectorio del sitio, puedes especificar una URL más precisa:

wapiti http://ejemplo.com/subdirectorio/

2. Modificar la profundidad del escaneo

Wapiti sigue los enlaces internos del sitio web para explorar diferentes páginas. Puedes definir la profundidad máxima de los enlaces a seguir con la opción --depth.

Por ejemplo, para limitar el escaneo a una profundidad de 2 niveles, puedes ejecutar:

wapiti http://ejemplo.com --depth 2

3. Definir los módulos a ejecutar

Wapiti cuenta con diferentes módulos de escaneo para detectar tipos específicos de vulnerabilidades. Los módulos más comunes incluyen:

  • SQL Injection (sql).
  • Cross-Site Scripting (XSS) (xss).
  • File Handling Issues (file).
  • Backup Detection (backup).

Si solo deseas ejecutar un módulo específico, puedes usar la opción --module. Por ejemplo, para realizar un escaneo solo de SQL Injection, utiliza:

wapiti http://ejemplo.com --module sql

Para ejecutar múltiples módulos, puedes separarlos por comas:

wapiti http://ejemplo.com --module sql,xss,file

4. Autenticación con cookies o encabezados personalizados

Si necesitas escanear un sitio web que requiere autenticación, puedes proporcionarle a Wapiti cookies o encabezados HTTP personalizados. Esto es útil si necesitas escanear una aplicación web protegida por autenticación de sesión o autenticación por tokens.

Autenticación con cookies:

wapiti http://ejemplo.com --cookie "PHPSESSID=abc123"

Autenticación con encabezados personalizados:

Si tu aplicación utiliza encabezados HTTP para autenticarse (como Authorization), puedes especificarlo con la opción --header:

wapiti http://ejemplo.com --header "Authorization: Bearer token12345"

5. Ignorar archivos o rutas específicas

Si deseas excluir ciertos archivos, rutas o parámetros de la búsqueda, puedes usar la opción --exclude:

wapiti http://ejemplo.com --exclude "logout,admin"

Esto evitará que Wapiti siga enlaces que contengan los términos "logout" o "admin".

6. Limitar las URLs dentro del dominio

Para evitar que el escaneo siga enlaces a otros dominios externos, utiliza la opción --scope. Esto garantiza que Wapiti solo escanee URLs dentro del mismo dominio que especificaste.

wapiti http://ejemplo.com --scope page

7. Exportar los resultados

Wapiti te permite exportar los resultados del escaneo en varios formatos, como HTML, JSON, XML y TXT. Utiliza la opción -o para especificar el nombre y formato del archivo de salida.

Exportar los resultados en HTML:

wapiti http://ejemplo.com -o informe.html

Exportar los resultados en JSON:

wapiti http://ejemplo.com -o informe.json

8. Uso de proxies

Si necesitas realizar el escaneo a través de un proxy (por ejemplo, para ocultar tu IP o realizar pruebas en entornos restringidos), Wapiti te permite especificar los detalles del proxy con la opción --proxy.

Usar un proxy HTTP:

wapiti http://ejemplo.com --proxy http://127.0.0.1:8080

Usar un proxy SOCKS:

wapiti http://ejemplo.com --proxy socks5://127.0.0.1:1080

Análisis de los resultados

Una vez finalizado el escaneo, Wapiti generará un informe detallado con todas las vulnerabilidades encontradas. Dependiendo del formato que elijas, el informe contendrá información como:

  • URLs afectadas.
  • Vulnerabilidades identificadas.
  • Gravedad de las vulnerabilidades.
  • Posibles soluciones.

Ejemplo de informe en HTML:

<html>
<head>
<title>Informe de Wapiti</title>
</head>
<body>
<h1>Informe de vulnerabilidades para http://ejemplo.com</h1>
<p>Escaneado el: 2023-09-21</p>

<h2>Vulnerabilidades encontradas:</h2>
<ul>
  <li><strong>SQL Injection</strong> encontrada en: http://ejemplo.com/search.php?q=test</li>
  <li><strong>Cross-Site Scripting (XSS)</strong> encontrada en: http://ejemplo.com/comment.php?id=123</li>
</ul>
</body>
</html>

Ejemplo de informe en JSON:

{
  "target": "http://ejemplo.com",
  "scan_date": "2023-09-21",
  "vulnerabilities": [
    {
      "type": "SQL Injection",
      "url": "http://ejemplo.com/search.php?q=test"
    },
    {
      "type": "Cross-Site Scripting (XSS)",
      "url": "http://ejemplo.com/comment.php?id=123"
    }
  ]
}

Conclusión

Wapiti es una herramienta poderosa y fácil de usar para realizar escaneos de vulnerabilidades web desde la línea de comandos. Gracias a su capacidad para detectar múltiples tipos de vulnerabilidades, su soporte para autenticación, y su flexibilidad en cuanto a personalización de los escaneos, Wapiti es ideal para profesionales de seguridad que necesiten realizar auditorías rápidas y detalladas de aplicaciones web.

Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer