Está en la página 1de 8

[+]-----------------------------------------[+]

[+]--------fingerprinting a nivel web-------[+]


[+]-------------Progresive Death------------[+]
[+]-----------------------------------------[+]

WTF!? Que es fingerprinting?

Es un método utilizado para poder obtener resultados (información) de


cierto Host, la traducción seria Huella dactilar a nivel web, pues como
todos sabemos cada uno de nosotros nos identificamos diferente (no
tenemos la misma huella dactilar) esto mismo pasa en los sistemas
informáticos cada sistema tiene su diferente forma de identificarse en
ciertas peticiones (apache se identifica de una manera, sus diferentes
versiones también lo hacen, cherokee también se identifica diferente.)

Como funciona?

Hay diferentes formas de poder realizar este método, vamos a enumerar


algunas de estas formas.

[1] error404 (muchas veces los webmaster dejan por default el recurso
error404.php y este archivos nos proporciona cierta información que nos
sirve (Versión del server web, versión del php, Sistema operativo)

[2] TTL (Tiempo de Vida o Time To Live este método ya es algo de


fingerprinting pasivo por que nos basamos de una respuesta ping para ver
el TTL y poder determinar que S.O tiene el server web, no es muy seguro
que digamos pero muchas veces se presentan casos que si se aplica)

[3] port/servicies (con un escaneo hacia el puerto 80 podemos determinar


que versión de Apache o cherokee o otro servicio , posee el host ya que
esta forma ya es algo de fingerprinting activo por que nos conectamos al
host por el puerto 80 y esperamos una respuesta del servicio y
dependiendo de esa respuesta podremos sacar mucha información)

[4] headers (con los encabezados el server web muchas veces cuando dejan
por default el headers.php allí también nos mostrara una información que
nos puede sirve)

[5] Firmas digitales (la firmas digitales son utilizadas para cuando se
hace una petición a cierto recurso de la web y esta web esta por SSL allí
esta firma digital para el para mantener la integrad de los datos osea
para que el cliente cuando reciba el recurso vea que si es del host al
cual a enviado la solicitud, aquí cada server tiene una configuración de
firmas digitales publicas diferentes así que partiendo de estas firmas
digitales podremos saber que tipo de aplicativo web se esta ejecutando
allí)
Los que nombramos anteriormente son lo que mas me acuerdo ahorita
realmente asi que si me falta alguno metodo me disculpan :P.

Que Herramientas hay en la red para realizar fingerprinting a


nivel web?

Voy a nombrar las que mas uso:

[1]Nectat o alguna herramienta o script que sirva para establecer solo la


conexión por sockets

[2]live HTTP header: estas es un plugin de firefox realmente muy groso,


prácticamente se podría decir que es un sniffer que headers de HTTP

[3]ping: Para mirar el TTL de respuesta entre el server web y mi host

[4]nmap: Escaner de puertos

[5]http://127.0.0.1/*/ : de esta forma hago que me redirección al recurso


error404.php

[6]auxiliarys del metasploit


-scanner/http/http_version
-scanner/http/ssl

[7]httprint: Excelente herramienta, si la combinamos con deshabitar para


poder ver su funcionamiento realmente es muy potente

Pero no son muchas herramientas?

Claro que son muchas :P pero por que son para rectificar información y
poder dar con le información de real.

IMPORTANTE:
Creo y estoy seguro que esto es lo mas esencial de todo saber como
funciona el protocolo HTTP así uno tenga las herramientas de
fingerprinting para nivel web y no sabemos como funcionan o por que nos
dan los resultados es lo mismo que nada así que es preferible uno tener
buenos conocimientos del protocolo HTTP y a netcat y con eso basta.
Laboratorio con Progresive Death

Bueno este laboratorio va ser algo teorio practico, vamos a tener


encuenta de lo que hablamos mas arriba.

Herremientas:

-Httprint
-wireshark

Yo trabajare el httprint GUI es algo mas flexible para hacer manuales :P


ya que me tocaria explicar argumento por argumento, y en cambio con la
GUI lo podremos ver por secciones, estas herramientas ya las trae el bt4
instaladas asi que para no dar tanta vuelva las trabajare de alli (ahora
veran mi bt4 que esta algo raro :P le instale fluxbox y toda las
ejecuciones me toca por consola)

Escenario:

– opcion 1 localhost (apache2)


– opcion 2 server web (indefinido)

yo lo hare con la opcion 2 solamente que no mostrare algunos datos para


no dañar la integridad del server web.
Asi como vemos es la interface grafica del httprint la dividi en 8 partes
que son:

[1] con parametros definos por default que contiene lo siguiente.

[2] este archivo se ingresan todas las firmas digitales para compara con
las del server web.

[3] en esta parte ingresamos varios valores (Host, puerto, SSL, nos
muestran el banner reportado, el banner reportido y el porcentaje del
host reportado.
[4] aquí nos va a mostrar la firma digital que mas se acerque al valor de
la firma del server web.

[5] nos muestra el log de las firmas digitales y peticiones que a estado
enviando

[6] nos muestra el log del fingerprinting de SSL.

[7] esta parte nos muestra el log en total del resultado

[8] la ejecucion y las opciones del programa

bueno ahora solo definimos el host y el puerto (“HTTPS”si tiene SSL


habilitado pues solo dan click en el espacio en blanco) y lo ejecutamos,
pero para no ser tan monotomos en esto abrimos el wireshark para ver que
es lo que pasa por debajo del entorno GUI.)yo solo voy a relatar lo que
el wireshark

[1]

[*]Envia peticion nslookup para resolver la ip (ya que colocamos el DNS


asi que nos resolvera la ip)
[*]El server respondio bien a la solicitud
-------------------------------------------------------------------------
[*]Envia solicitudes ping al host para verificar conectividad
[*]El server responde las solicitudes

[2]

[+]este segundo pedazon que vi me parecio bueno en encuanto a los que van
mas halla de las “cosas”, apunta de peticiones http (GET, PUT, ETC)
podramos obtener cierta informacion muy buena del servidor. Imagenes :D.
Como vemos envia una peticion Get al host:XXXXXXXXX y el host le responde
con informacion de el, el GET lo indicamos al recurso “/” asi que nos
tiene que mostrar el codigo fuente del recurso

Como vemos aquí el httprint envia una peticion option al server (como
sabemos esta peticion es como un help que nos despliega las opciones que
tenemos habilitadas para interactuar con el servidor.
Como vemos aquí ya empezo el httprint a enviar peticiones a directorios
pero como no tenemos los permisos sufientes para poder acceder a ese
recurso nos devuelve un 403 forbidden.
Si pueden ver en las peticiones nos da cierta informacion que con el
fingerprinting buscamos.

[Resultado]

Bueno el resultado es lo esperado nos mostro varia informacion del


server, como podemos ver en la parte selecionada, abajo de esa parte es
la firma digital que al principio hablamamos :D, tambien podemos ver los
logs de las firmas que se compararon. Ahora vamos a ver el reporte

Excelente resultado....

Host:XXXXXXXXXXXXXXX.com
puerto: 80 (HTTP)
Banner repoted: Apache 2,2,3
Sistema operativo:CentOS
Metodos HTTP habilitados: GET, HEAD, POST, OPTIONS, TRACE

Concluciones:

como tal yo tengo 2 concluciones

1 Cuando tratamos de mirar mas halla del simple hecho de obtener un


resultado con una herramienta y mirar por que te da ese resultado te das
cuenta que puedes obtener mas informacion mirando que es lo que pasa
realmente por debajo de la herramienta.

2 este metodo que hicimos en el lab se puede darle nombre como un


fingerprinting pasivo / Activo por que el httprint lo que hace es
establecer conexión con el server pero aun asi como son peticiones que
las hace cualquies navegador de http no hara tanto ruido

Greetz

ch-umis, Shell Root, sp1b0t, Symphony, messerschmitt

<Progresive Death>
</charsecurity[dot]blogspot[dot]com>