WhatWeb es una herramienta de reconocimiento web de código abierto escrita en Ruby, incluida por defecto en Kali Linux y referenciada en el temario de certificaciones como OSCP, CEH y CompTIA PenTest+. Su objetivo es identificar las tecnologías utilizadas por un sitio web: CMS (WordPress, Joomla, Drupal), frameworks (React, Angular, Laravel), servidores web (Apache, Nginx, IIS), lenguajes de programación, bibliotecas JavaScript, cabeceras de seguridad, cookies, versiones de software y mucho más.
WhatWeb es fundamentalmente una herramienta de fingerprinting pasivo/activo: analiza las respuestas HTTP de un servidor (cabeceras, cookies, contenido HTML, meta-etiquetas, scripts, URLs) y las compara contra su base de datos de más de 1.900 plugins para identificar el stack tecnológico completo.
Es útil tanto en la fase de reconocimiento de un pentest como para inventariar tu propia infraestructura web desde la perspectiva de un atacante externo.
sudo apt install ruby ruby-dev y luego instalar WhatWeb desde GitHub.| Parámetro | Descripción | Ejemplo |
|---|---|---|
-a N | Nivel de agresión (1-4) | -a 3 |
-v | Verbose: mostrar todos los plugins y detalles | -v ejemplo.com |
-i archivo | Lista de URLs desde archivo | -i urls.txt |
-t N | Número de hilos paralelos | -t 10 |
--log-json=f | Guardar salida en JSON | --log-json=out.json |
--log-brief=f | Guardar salida en texto breve | --log-brief=out.txt |
--proxy | Enviar tráfico por proxy (Burp) | --proxy 127.0.0.1:8080 |
--user-agent | Personalizar el User-Agent | --user-agent "Googlebot/2.1" |
--colour=never | Deshabilitar colores (para pipes) | --colour=never |
--no-errors | Ocultar errores de conexión | --no-errors |
--list-plugins | Listar todos los plugins | whatweb --list-plugins |
--grep=regex | Filtrar resultados por regex | --grep=WordPress |
WhatWeb tiene cuatro niveles de agresión que controlan cuántas peticiones HTTP hace y qué tipo de análisis realiza. A mayor nivel, más información obtiene pero más tráfico genera y más detectable es.
El uso más básico de WhatWeb: escanear una URL y ver qué tecnologías utiliza. Perfecto para entender el formato de salida y cómo interpretar los resultados.
http://testphp.vulnweb.com [200] [1] Apache[2.4.7] <- Servidor web y version [2] Bootstrap[3.3.4] <- Framework CSS [3] Country[UNITED STATES] <- Pais del servidor (GeoIP) [4] HTTPServer[Apache/2.4.7 (Ubuntu)] <- Banner completo del servidor [5] IP[44.228.249.3] <- IP del servidor [6] JQuery[1.7.1] <- Libreria JS y version [7] PHP[5.5.9] <- Lenguaje backend y version [8] Script <- Detecta scripts en la pagina [9] Title[Home of Acunetix] <- Titulo de la pagina [10] X-Powered-By[PHP/5.5.9] <- Cabecera X-Powered-By (info leakage)
http://testphp.vulnweb.com (un sitio vulnerable de práctica de Acunetix). ¿Qué versión de PHP usa? ¿Qué versión de Apache? ¿Qué CMS o framework detecta?Ver solución
WhatWeb brilla cuando necesitas escanear muchos objetivos a la vez: un rango de IPs, una lista de dominios de un programa de bug bounty, o toda una red interna. Los hilos paralelos permiten escanear decenas de hosts por segundo.
urls.txt con 5 URLs de sitios web públicos diferentes. Escánalos con WhatWeb en paralelo con 10 hilos y guarda el resultado en JSON. ¿Qué CMS es más común entre los 5?Ver solución
Una de las principales fortalezas de WhatWeb es su capacidad para identificar el stack tecnológico completo de una web. Entender qué tecnologías usa el objetivo es el primer paso para buscar vulnerabilidades: versiones antiguas, configuraciones por defecto, CVEs conocidos...
-a 3) un sitio WordPress conocido. ¿Qué plugins de WordPress detecta además del propio WordPress? ¿Qué versión de WordPress es?Ver solución
WhatWeb soporta múltiples formatos de salida que permiten integrar los resultados en workflows automatizados, bases de datos, o herramientas de visualización. El formato JSON es el más versátil para procesado posterior.
Ver solución
WhatWeb puede personalizar las peticiones HTTP que envía: cabeceras personalizadas, cookies de sesión autenticada, User-Agent específico y envío a través de un proxy como Burp Suite. Esto permite analizar aplicaciones web que requieren autenticación o que tienen WAF.
python3 -m http.server 8080 y escanea http://localhost:8080 con WhatWeb a través del proxy de Burp Suite (127.0.0.1:8080). ¿Qué peticiones HTTP hace WhatWeb?Ver solución
El valor más práctico de WhatWeb en un pentest es identificar versiones concretas de software y correlacionarlas con vulnerabilidades conocidas (CVEs). Una versión de WordPress, PHP, Apache o jQuery detectada con WhatWeb puede revelar directamente un vector de ataque explotable.
Ver solución
WhatWeb es completamente extensible mediante plugins escritos en Ruby. Cada plugin define patrones de detección (strings, regex, cabeceras, cookies...) y WhatWeb los comprueba en cada respuesta HTTP. Escribir plugins propios es sencillo y permite detectar tecnologías propietarias o versiones específicas no cubiertas por los 1.900 plugins incluidos.
SimpleHTTP/0.6) leyendo la cabecera Server. Pruebalo contra python3 -m http.server.Ver solución
WhatWeb se integra perfectamente en pipelines de reconocimiento automatizados. Una cadena típica combina: descubrimiento de subdominios (Subfinder/Amass) + detección de puertos web (Nmap) + fingerprinting (WhatWeb) + exportación a base de datos para análisis.
Ver solución
WhatWeb es una herramienta ideal para la fase inicial de reconocimiento en programas de bug bounty. Permite identificar rápidamente el stack tecnológico de todos los activos del programa y priorizar cuáles analizar en profundidad según las tecnologías detectadas.
WhatWeb incluye más de 1.900 plugins. Aquí están los más relevantes para un pentest:
Si WhatWeb puede identificar fácilmente el stack tecnológico de tu aplicación, un atacante real también puede hacerlo. Reducir la información expuesta es una capa de defensa importante (aunque no es suficiente por sí sola).
| Información expuesta | Riesgo | Mitigación |
|---|---|---|
Cabecera Server: Apache/2.4.49 | Revela servidor y versión exacta | Configurar ServerTokens Prod en Apache (oculta version) |
Cabecera X-Powered-By: PHP/7.2 | Revela lenguaje y version | expose_php = Off en php.ini |
| Generador WordPress en HTML | Revela CMS y version | Eliminar remove_action( "wp_head", "wp_generator" ) |
/wp-content/ en URLs | Confirma WordPress | Cambiar la URL del contenido (complejo, no muy efectivo) |
| Version en nombre de archivos JS | Revela versiones de libs | Eliminar querystrings de version ?ver=6.4 |
| Cookies con nombre de tecnologia | PHPSESSID revela PHP | Renombrar la cookie de sesión |
README.html de WordPress | Muestra version exacta | Eliminar o bloquear acceso a README.html |
| Herramienta | Tipo | Fuerte en | Débil en | Mejor uso |
|---|---|---|---|---|
| WhatWeb | CLI, Ruby | 1.900+ plugins, rangos CIDR, formatos de salida, extensible | No escanea vulnerabilidades, necesita acceso HTTP | Fingerprinting masivo, inventario tecnológico |
| Wappalyzer | Browser ext, API | Integrado en el navegador, UI gráfica, muy preciso | Sin CLI nativa, limitado en automatización | Análisis puntual en el navegador |
| Nikto | CLI, Perl | Detecta vulnerabilidades, archivos peligrosos | Muy ruidoso, mas lento que WhatWeb | Escaneo de vulnerabilidades web |
| Nmap NSE | CLI, Lua | Scripts http-headers, banner grabbing integrado con escaneo de puertos | Menos plugins web que WhatWeb | Cuando ya usas Nmap para reconocimiento |
| Nuclei | CLI, Go | Templates, CVEs, muy rapido, actualizado constantemente | Mas orientado a vulnerabilidades que a fingerprinting | Escaneo de CVEs con templates |
| curl + grep | CLI | Control total, sin dependencias | Manual, sin plugins, lento para escala | Verificación puntual de cabeceras |