HTTP Traceroute

HTTP TracerouteLa 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

Índice

    HTTP Traceroute funcionalidades

    [email protected]:~/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://www.dragonjar.org/xmlrpc.php
    location: http://www.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://www.dragonjar.org/
    Redirecting to: http://www.dragonjar.org/
    
    ************************************************************
    Requesting: http://www.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://www.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://www.dragonjar.org/
    Redirecting to: http://www.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>[email protected]:~/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: https://www.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: https://www.dragonjar.org/
    Redirecting to: https://www.dragonjar.org/
    
    ************************************************************
    Requesting: https://www.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://www.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

    [+]http://digi.ninja/projects/http_traceroute.php

    Subir