Banner 1

Directory Traversal con Dotdotpwn v3.0 Parte (I)

 directorios
Muchas veces cuando testeamos un parametro o url en busca de una vulneravilidad de tipo Path traversal, se hace insoportable tener que estar inyectando posibles vectores en afan de encontrar una respuesta atipica en el servidor y asi poder visualizar el fichero deseado. Para esta tediosa tarea podemos contar con la ayuda de un fuzzer poderoso como lo es DotDotpwn, la idea de esto, es la de armar un tutorial completo sobre la herramienta. Para los que desconoscan de esta tecnica aca les dejo unos link donde pueden encontrar buena informacion respecto a su desarrollo.
Bueno comencemos presentando a esta belleza escrita en perl , que ya va por su version 3.0.

     Caracteristicas:

  • Algoritmo de biseccion que mejora la deteccion de vulnerabilidades.
Que carajo es eso?…bueno, es un metodo matematico que se encarga de buscar raices, dividiendo un intervalo a la mitad y seleccionando el subintervalo que tiene la raiz. Para los que no sepan lo que es la raiz, vieron esa p$t# “x” que se encontraba en las ecuaciones que nos daban en la escuela!…ahora se acuerdan no?.
  • Ademas de GET se añadieron otros metodos de peticiones HTTP (POST|MOVE|COPY|HEAD)
  • Cuenta con un modificador para especificar la extensión del archivo que se adjunta al final de cada cadena (*.jpg, *.php, *.inc, *.pdf, *.doc, *.sql)
  • Nueva codificacion de cararcteres ../ en UTF-8 Hex Encoding y URI Hex Encoding.
    • Soporte para los soguientes modulos:

  • - HTTP
  • - HTTP URL
  • - FTP
  • - TFTP
  • - Payload (Independiente del protocolo)
  • - STDOUT
 Bueno basta de introducciones y comenzemos por fin a probar este fierraso. Para que Dotdotpwn funcione correctamente deberan tener las siguientes requerimientos en su sistema.

      Requerimientos:

  • Modulos de perl:
  • Net::FTP
  • TFTP
  • Time::HiRes
  • Socket
  • HTTP::Lite
  • IO::Socket
  • Getopt::Std
  •  Switch
Para instalar los moudulos hacemos uso de cpan, este es un gestor de descargas para modulos de perl.
$ sudo cpan
 cpan[1]>install HTTP::Lite
 cpan[2]>install Net::FTP
 cpan[3]>install TFTP
 cpan[4]>install Time::HiRes
 cpan[5]>install Socket
 cpan[6]>install IO::Socket
 cpan[7]>install Getopt::Std
 cpan[8]>install Switch
Ahora si! descargamos DotDotPwn, extraemos y lo lanzamos!.
 Dotdotpwn
A continuacion paso a explicar las distintas opciones con las que cuenta.

Modo de uso:

./dotdotpwn.pl -m -h [OPCIONES]
Lista de Opciones:
  • -m   Tipos de modulos que soporta [http | http-url | ftp | tftp | payload | stdout]
  • -h    Hostname
  • -O   Hace una deteccion del sistema operativo a travez del uso de nmap
  • -o    Si por alguna razon sabes el tipo de S.O que utiliza el servidor podemos especificarlo para ahorrar tiempo (“windows”, “unix” o “generico”)
  • -s    Deteccion de la version de servicios
  • -d    Con esta opcion podemos establecer la cantidad de ../ a inyectar, por defecto usa 6 espacios.
  • -f    Especificamos el tipo de archivo a buscar
  • -E   Agrega las direcciones de archivos que se encuentran en el fichero TraversalEngine.pm
  • -u    Indicamos la url en la que haremos la inyeccion del vector, en el parametro a inyectar usaremos la variable TRAVERSAL quedando de esta manera: http://foo:8080/id.php?x=TRAVERSAL&y=31337)
  • -k    Busca una cadena en alguna respuesta del servidor, por ejemplo si estamos buscando el fichero /etc/passwd le establecemos la palabra “root:”,esta opcion es necesaria cuando utilizamos los modulos http-url y Payload
  • -p    Nombre del payload que usaremos en la variable TRAVERSAL
  • -x    Puerto (default: HTTP=80; FTP=21; TFTP=69)
  • -t    Tiempo en milisegundo entre cada testeo (default: 300 (.3 second))
  • -X    Indicamos que use el algoritmo de biseccion.
  • -e    Indicamos las extenciones de archivos para realizar un fuzzing a la cadena ( “.php”, “.jpg”, “.inc”)
  • -U    Username (default: ‘anonymous’)
  • -P    Password (default: ‘dot@dot.pwn’)
  • -M   Metodos HTTP a usar para el envio [GET | POST | HEAD | COPY | MOVE] (default: GET)
  • -r     Establece el nombre del archivo de log donde se guardara el test (default: ‘HOST_MM-DD-YYYY_HOUR-MIN.txt’)
  • -b    Parara cuando se encuentre la primer vulnerabilidad
  • -q    No imprime la salida del programa.
Bueno eso es todo por hoy! en el proximo post empezare con las pruebas de fuzzing y  desarrollare el uso de todos los modulos presentes en Dotdotpwn.

No hay comentarios:

Powered by Bad Robot
Helped by Blackubay