21 abril 2009

Fingerprint de servidores web, httprecon 7.0

Los mensajes de bienvenida del servidor web son la pista principal para conocer que servicio es el que ofrece esas páginas. Pero no es la única forma de averiguarlo, estos mensajes o banners pueden ser modificados para revelar la menor información posible.

En el caso de Apache, modificando el fichero de configuración httpd.conf y añadiendo o modificando la directiva "ServerTokens": ServerTokens Prod

El valor "Prod" puede modificarse por "Major", "Minor", "Min", "OS" o "Full", aunque este último caso es como figura por defecto y no ocultaría ninguna información.

ServerTokens Prod[uctOnly]
Ejemplo: Server: Apache

ServerTokens Major
Ejemplo: Server: Apache/2

ServerTokens Minor
Ejemplo: Server: Apache/2.0

ServerTokens Min[imal]
Ejemplo: Server: Apache/2.0.41

ServerTokens OS
Ejemplo: Server: Apache/2.0.41 (Unix)

ServerTokens Full (o no especificado)
Ejemplo: Server: Apache/2.0.41 (Unix) PHP/4.2.2 MyMod/1.2

Para identificar y asegurar que no nos estan engañando, existen varias herramientas que mediante distintas peticiones y no exclusivamente observando esta cabecera, son capaces de diagnosticar el software utilizado, entre ellas httprint, hmap, WebServerFP o httprecon.

httprecon es posiblemente la más actualizada y eficaz de las mencionadas anteriormente. Hacerla funcionar es tan sencillo como indicarle la dirección URL a analizar y el puerto. Una vez introducido, al pulsar sobre "Analyze", ejecutará las peticiones y obtendrá un porcentaje de acierto. Cuanto más elevado sea, más probabilidad de que la predicción sea cierta.





Al exportar el resultado se permite configurar que información y en que formato, soportando los más comunes como son: HTML, XML, TXT o CSV.




Esta aplicación puede ser accedida online en la página web: http://w3dt.net/tools/httprecon/. desde la que se pueden lanzar pruebas y obtener resultados sin necesidad de instalar la herramienta o en caso de disponer de un sistema distinto de Windows.

Pese a la sencillez de la herramienta, las opciones de configuración son amplias, permitiendo especificar casi cualquier parámetro de las peticiones a ejecutar. Salvo que exista algún error, tal y como están por defecto son aplicables a la mayoría de los casos.

La primera pestaña permite modificar los tiempos de espera, si es ejecutada en una conexión muy lenta pueden elevarse estos números para sobrepasar los cortes.




La segunda pestaña indica los valores de acierto necesarios para evaluar el porcentaje de acierto. La modificación de estos valores puede suponer generar falsos positivos o falsos negativos. No se deberían modificar salvo que se requiera que un resultado siempre o nunca muestre un 100%.



La tercera pestaña permite seleccionar los tipos de test a analizar, puede ser útil, por ejemplo, si se quieren obviar pruebas en un entorno donde puede haber elementos intermedios que hagan filtrado.



Al igual que la pestaña anterior, se pueden especificar que método no debería estar permitido y que método no debería existir. Por ejemplo, en el caso de un WebDav, el método DELETE si estaría permitido, por lo que habría que modificarlo por otro.




La quinta pestaña, tal y como ocurre con otras, permite modificar la versión de HTTP permitida y la no permitida. En principio salvo que el servidor web sea del futuro o de hace 30 años, estos parámetros han de permanecer tal y como figuran.



La pestaña de "Resources" solicita una página que exista y otra que nó. En general el "/" del web siempre será una página existente y salvo mucha mala suerte, la cadena "WZ5oS1.html", será algo que no exista. Aunque si es posible que esta cadena acabe como firma en un sistema de detección de intrusos y no está de más que se permita configurar.




Longrequest indica el tamaño de una petición larga y el carácter a enviar, tal y como hemos contado antes, salvo que se desee saltar filtros o hacer trazabilidad, este parámetro no es necesario modificarlo.



Por último, la cadena User-Agent que identificará la aplicación en el servidor web, útil en caso de pasar inadvertido o en caso de desear ser visto.




5 comments :

Sergio Hernando dijo...

Buenas,

Un par de cosas:

a) En http://www.computec.ch/projekte/httprecon/?s=download hay ya una versión 7.0 para descargar

b) Es una lástima que no admita configurar la salida del fingerprinter por un proxy (se me hace raro que no tenga esta feature tan básica), así que repasaré la config bien por si he obviado algo ;)

Un saludo y gracias por el apunte !

Alejandro Ramos dijo...

Gracias Sergio por el apunte de la versión, ha sido un error mio. La 7.0 es pública desde el día 15 de abril. Lo cambio en el título.

En cuanto al proxy, entiendo que al ser intermediario desvirtua muchas respuestas del servidor y tal vez por eso sea menos practico.

Un placer tenerte por aquí.

Marc Ruef dijo...

Hola,

Gracias por discutir mi proyecto ;)

Marc
httprecon project maintainer

Marc Ruef dijo...

Hola,

Gracias por discutir mi proyecto ;)

Marc
httprecon project maintainer

todoparacuba dijo...

Envio de Paquetes a Cuba

Ya puedes hacer el envio de paquetes a cuba desde los estados unidos,
actualmente contamos con oficinas de atención al cliente en Florida,
Nevada, New York y New Jersey y proximamente en otros Estados y en cada
una de estas oficinas podras hacer entrega de tus paquetes.

Visitanos en http://www.todoparacuba.com/