HTTP Traceroute
La parte de fingerprint es la primera fase de un proceso de pentesting, es por eso que es bueno contar con un arsenal de herramientas para obtener información sobre el target que auditaremos, entre ellas la HTTP Traceroute.
Aquí en DragonJAR.org se han presentado varias herramientas para realizar un proceso de fingerprinting, hoy os traigo otra que me ha parecido bastante útil.
La herramienta está desarrollada en Ruby y nos puede servir para obtener un primer vistazo del target que queremos auditar. Ponemos un caso en el que estamos lanzando un crawler para distintas URL's y algunas de estas URL el path del dominio es www otros sin www por lo que algunos crawler fallan porque el servidor le arroja un 301 y no siguen las redirecciones. Si ya tenemos ese resultado extraído es más fácil enfocar los escaneos posteriores. Esta y otras funcionalidades
HTTP Traceroute funcionalidades
seifreed@darkmac:~/Downloads/http_traceroute$ ruby http_traceroute.rb http://dragonjar.org http_traceroute 1.0 Robin Wood ([email protected]) (http://digi.ninja) ************************************************************ Starting at: http://dragonjar.org ************************************************************ Requesting: http://dragonjar.org Response code: 301 ======= Headers ======= date: Mon, 03 Nov 2014 14:58:26 GMT content-type: text/html; charset=UTF-8 transfer-encoding: chunked connection: close set-cookie: __cfduid=d2a960f9f0279784f8e5ec548504161311415026706383; expires=Mon, 23-Dec-2019 23:50:00 GMT; path=/; domain=.dragonjar.org; HttpOnly x-powered-by: PHP/5.2.17 x-cf-powered-by: WP 1.3.14 x-pingback: http://dragonjar.org/xmlrpc.php location: http://dragonjar.org/ vary: Accept-Encoding,User-Agent server: cloudflare-nginx cf-ray: 18396e12e73a0bff-AMS ======= Cookies ======= __cfduid ; d2a960f9f0279784f8e5ec548504161311415026706383 ; .dragonjar.org ; / ; ; httpOnly ; 2019-12-24 00:50:00 +0100 =========== Redirecting =========== Location: http://dragonjar.org/ Redirecting to: http://dragonjar.org/ ************************************************************ Requesting: http://dragonjar.org/ Sending cookies: __cfduid=d2a960f9f0279784f8e5ec548504161311415026706383 Response code: 200 ======= Headers ======= date: Mon, 03 Nov 2014 14:58:28 GMT content-type: text/html; charset=UTF-8 transfer-encoding: chunked connection: close x-powered-by: PHP/5.2.17 x-cf-powered-by: WP 1.3.14 x-pingback: http://dragonjar.org/xmlrpc.php vary: Accept-Encoding,User-Agent server: cloudflare-nginx cf-ray: 18396e16b4780bff-AMS ======= Cookies ======= =============== End of the line ===============
Podemos ver cosas interesantes como que vemos si la página tiene una redirección:
=========== Redirecting =========== Location: http://dragonjar.org/ Redirecting to: http://dragonjar.org
HTTP Traceroute y el headers del servidor
Tenemos toda la parte de headers del servidor, con eso podemos saber si se trata de un Apache ISS etc..
Otra de la información que puede ser de utilidad para la gente de sistemas es por ejemplo cuando haces implementaciones de incorporar HTTPOnly
======= Headers ======= pragma: no-cache x-frame-options: DENY cache-control: private, no-cache, no-store, must-revalidate expires: Sat, 01 Jan 2000 00:00:00 GMT x-xss-protection: 0 x-content-type-options: nosniff p3p: CP="Facebook does not have a P3P policy. Learn why here: http://fb.me/p3p" set-cookie: datr=4ZhXVO5DaHn37mMZ2vMLkTjt; expires=Wed, 02-Nov-2016 15:01:53 GMT; Max-Age=63072000; path=/; domain=.facebook.com; httponly set-cookie: reg_ext_ref=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=0; path=/; domain=.facebook.com set-cookie: reg_fb_ref=https%3A%2F%2Fwww.facebook.com%2F; path=/; domain=.facebook.com set-cookie: reg_fb_gate=https%3A%2F%2Fwww.facebook.com%2F; path=/; domain=.facebook.com content-type: text/html; charset=utf-8 x-fb-debug: UgolsD+XVFe4c1lBIEm3QxznoMDth6sg5e6Gub7QqS81V2eDFLZNl/mSAmUv1wgl3hNMwyJFXNTtjavz4mNqhQ== date: Mon, 03 Nov 2014 15:01:53 GMT connection: close
Podemos ver como Facebook establece que no usa P3P y tiene marcado aspectos como HttpOnly
Otros aspectos a comprobar
Otro de los aspectos que se pueden comprobar si la web tiene autenticación,
======= Headers ======= date: Mon, 03 Nov 2014 15:09:51 GMT www-authenticate: Negotiate content-type: text/html;charset=ISO-8859-1 content-length: 164 vary: Accept-Encoding connection: close
Todos estos aspectos son interesantes en procesos de auditoría.
Si se accede a un sitio HTTPS el certificado se comprueba y se da un aviso si no es válido. Una advertencia también se dará si la página haciendo la redirección es más de un determinado tamaño, por defecto está ajustado a 500 bytes, pero se puede ajustar si es necesario. Esto es útil para encontrar donde se sirven accidentalmente cuerpos junto con las cabeceras de redirección.
Por defecto, el script sólo funcionará durante un máximo de 10 redirecciones y entonces darse por vencido, este está diseñado para evitar problemas con los bucles de redireccionamiento.
Utilidades a obtener
Otra de las utilidades es obtener el destino de los acortadores URL
<pre>seifreed@darkmac:~/Downloads/http_traceroute$ ruby http_traceroute.rb http://goo.gl/8m0Qtq -c dump.json http_traceroute 1.0 Robin Wood ([email protected]) (http://digi.ninja) ************************************************************ Starting at: http://goo.gl/8m0Qtq ************************************************************ Requesting: http://goo.gl/8m0Qtq Response code: 301 ======= Headers ======= content-type: text/html; charset=UTF-8 cache-control: no-cache, no-store, max-age=0, must-revalidate pragma: no-cache expires: Fri, 01 Jan 1990 00:00:00 GMT date: Mon, 03 Nov 2014 15:16:16 GMT location: http://dragonjar.org/ x-content-type-options: nosniff x-frame-options: SAMEORIGIN x-xss-protection: 1; mode=block server: GSE alternate-protocol: 80:quic,p=0.002 connection: close ======= Cookies ======= =========== Redirecting =========== Location: http://dragonjar.org/ Redirecting to: http://dragonjar.org/ ************************************************************ Requesting: http://dragonjar.org/ Response code: 200 ======= Headers ======= server: cloudflare-nginx date: Mon, 03 Nov 2014 15:16:20 GMT content-type: text/html; charset=UTF-8 transfer-encoding: chunked connection: close set-cookie: __cfduid=d28e98f75d79685637b130e54c7120d171415027779031; expires=Mon, 23-Dec-2019 23:50:00 GMT; path=/; domain=.dragonjar.org; HttpOnly x-powered-by: PHP/5.2.17 x-cf-powered-by: WP 1.3.14 x-pingback: http://dragonjar.org/xmlrpc.php vary: Accept-Encoding,User-Agent cf-ray: 18398842f2280761-AMS ======= Cookies ======= __cfduid ; d28e98f75d79685637b130e54c7120d171415027779031 ; .dragonjar.org ; / ; ; httpOnly ; 2019-12-24 00:50:00 +0100 =============== End of the line =============== ========================== Cookies saved to dump.json ==========================
Sin duda una herramienta para incluir con otros procesos para la parte de pentesting