Httprint: Identificación de Servidores Web
Httprint: Identificación de Servidores Web
httprint es una herramienta de "fingerprinting" (identificación) de servidores web muy conocida en el mundo de la ciberseguridad y disponible en Kali Linux.
A diferencia de otras herramientas que solo leen el "banner" (la etiqueta que el servidor muestra voluntariamente), httprint analiza el comportamiento del servidor ante diferentes peticiones para identificar su firma digital única.
¿Para qué sirve httprint?
Muchos administradores de sistemas cambian el banner de su servidor (por ejemplo, hacen que un servidor Apache diga que es "Microsoft IIS") para confundir a los atacantes.
Identificación real: Detecta la marca y versión real del servidor basándose en cómo responde a las cabeceras HTTP.
Detección de dispositivos: Útil para identificar servidores en dispositivos embebidos (routers, cámaras, impresoras).
Análisis de seguridad: Ayuda a encontrar versiones vulnerables que el administrador intentó ocultar.
Cómo usar httprint en Kali Linux
Aunque es una herramienta clásica, sigue siendo útil en fases de reconocimiento. La sintaxis básica es la siguiente:
httprint -h <objetivo> -s <archivo_de_firmas>
Ejemplo práctico:
Si quieres analizar un sitio web, el comando se vería así:
httprint -h http://www.ejemplo.com -s /usr/share/httprint/signatures.txt
Parámetros comunes:
-h: Define el host (la IP o dominio) que quieres analizar.-s: Es obligatorio indicar el archivo de firmas (que en Kali suele estar en/usr/share/httprint/signatures.txt).-P0: Evita el envío de pings antes del escaneo (útil si hay firewalls).-o: Guarda el resultado en un archivo (HTML, CSV o Texto).
¿Por qué usarlo hoy en día?
Hoy existen herramientas más modernas como whatweb o nmap (con scripts NSE), pero httprint destaca porque:
Es extremadamente ligero.
Su motor de lógica difusa (fuzzy logic) permite identificar servidores incluso si han sido modificados.
Nota de seguridad: Recuerda realizar estas pruebas solo en entornos controlados o sobre servidores de los que tengas autorización expresa.
Comparar estas dos herramientas te dará una visión mucho más completa de cómo "piensa" un atacante o un auditor de seguridad durante la fase de reconocimiento.
Mientras que httprint se especializa únicamente en la huella digital del servidor web mediante lógica difusa, Nmap es una navaja suiza que utiliza scripts (NSE) para obtener información mucho más amplia.
Comparativa: httprint vs. Nmap (NSE)
| Característica | httprint | Nmap (http-enum / http-server-header) |
| Método | Análisis de comportamiento (Fuzzy logic) | Lectura de banners y rutas comunes |
| Precisión | Alta si el banner está oculto o falseado | Alta para detectar servicios adicionales |
| Actualización | Menos frecuente (firmas clásicas) | Muy frecuente (comunidad activa) |
| Velocidad | Muy rápido y ligero | Depende de la cantidad de scripts usados |
Cómo obtener resultados similares con Nmap
Si quieres verificar lo que te dijo httprint usando Nmap en Kali Linux, el comando más efectivo sería:
nmap -sV --script http-enum,http-title,http-server-header -p 80,443 <objetivo>
-sV: Intenta determinar la versión del servicio.http-enum: Busca directorios comunes (como/admin,/config).http-server-header: Extrae la cabecera del servidor de forma avanzada.
¿Cuál elegir?
Usa httprint cuando sospeches que el administrador ha modificado el nombre del servidor (por ejemplo, si un servidor Linux dice ser "IIS 6.0", algo que es técnicamente imposible).
Usa Nmap para un escaneo general que no solo te diga qué servidor es, sino también qué archivos y carpetas están expuestos.
Tip de experto: En auditorías reales, se suelen usar ambas. Si los resultados coinciden, tienes una certeza del 99%. Si difieren, es probable que haya un WAF (Web Application Firewall) o un Proxy Inverso intentando engañarte.
Entendido. Cuando ejecutas httprint, no siempre verás un resultado único y definitivo como "Apache 2.4.50". Lo que verás es una lista de posibles candidatos con un Confidence Score (Puntaje de Confianza).
Esto sucede porque la herramienta usa lógica difusa (Fuzzy Logic). En lugar de buscar una coincidencia exacta, compara las respuestas del servidor con una base de datos y calcula qué tan cerca está de cada "firma" conocida.
¿Cómo interpretar los resultados?
Cuando el escaneo termina, verás una tabla similar a esta:
| Web Server | Confidence |
| Apache/2.2.x | 92.45 |
| Apache/2.0.x | 85.12 |
| Oracle HTTP Server | 40.20 |
Qué significan los números:
Confianza Alta (>90): Es casi seguro que el servidor es ese. Incluso si el banner dice otra cosa, el comportamiento de las cabeceras coincide con esa versión específica.
Confianza Media (60 - 80): Hay similitudes, pero el servidor podría tener un módulo de seguridad (como mod_security) que altera las respuestas, o podría ser un "fork" (derivado) de ese servidor.
Confianza Baja (<50): Probablemente no es ese servidor, pero comparte alguna característica técnica en la forma en que maneja las peticiones HTTP.
¿Por qué no da un 100% de confianza?
Es raro ver un 100% por varias razones:
Personalización: El administrador pudo haber desactivado ciertas cabeceras (como
ServeroX-Powered-By).Actualizaciones: Si el servidor es más nuevo que la base de datos de firmas de httprint, la herramienta encontrará "parecidos" pero no una coincidencia perfecta.
Balanceadores de carga: Si hay un F5 o un Nginx delante de un Apache, httprint podría confundirse al recibir respuestas mezcladas.
Un truco avanzado en Kali
Si notas que los puntajes son todos muy bajos, puede que el archivo de firmas esté desactualizado. Puedes intentar buscar firmas más recientes o, mejor aún, usar WhatWeb para complementar:
whatweb -a 3 http://objetivo.com
(El parámetro -a 3 es el nivel de agresividad; el 3 es "agresivo" y trata de forzar la identificación).