**¿Qué es Burp Suite?**
Burp Suite es una aplicación de Java que se puede usar para proteger o descifrar aplicaciones web. La suite consta de diferentes herramientas, como un servidor proxy, una web spider ..., con el que las solicitudes se pueden automatizar.
Cuando se utiliza la suite Burp como servidor proxy y un navegador web usa este servidor proxy, es posible tener el control de todo el tráfico que se intercambia entre el navegador web y los servidores web. Burp hace posible manipular datos antes de enviarlos al servidor web.
** ¿Qué es Brute Force?**
Un ataque de fuerza bruta es un tipo de ataque de adivinación de contraseñas y consiste en probar todos los códigos, combinaciones o contraseñas posibles hasta encontrar la correcta. Este tipo de ataque puede tomar mucho tiempo para completarse. Una contraseña compleja puede hacer que el tiempo para identificar la contraseña sea muy largo.
**Ataque de diccionario:**
Un ataque de diccionario es otro tipo de ataque de adivinación de contraseñas que usa un diccionario de palabras comunes para identificar la contraseña del usuario.
**¿Qué es crack_web_form.pl?**
crack_web_form.pl es un script de Perl muy básico que utiliza una combinación de (1) http-post-data, (2) una lista de contraseñas y (3) mensajes de error para probar contraseñas para nombres de usuario específicos.
** Que necesitamos para hacer esta práctica?**
* Fedora 14
* BackTrack 5 R1
**Notas de la practica**
En esta practica haremos lo siguiente:
* Probar la secuencia de comandos Login.php para las contraseñas incorrectas y que nos muestre un mensaje de error.
* Configurar Firefox Proxy para usar Burp Suite.
* Capturar HTTP-POST-DATA con Burp Suite
* Descargar y ejecute crack_web_form.pl (Version 2.0).
* Probar la secuencia de comandos Login.php con una contraseña descifrada.
{{:sad:fedora:p4:01.png?500|}}
En el navegador de nustro BackTrack escribiremos la ip del fedora
** http://ip-fedora/mutillidae** y alli iremos a
''**OWASP Top 10 --> A1 - SQL Injection --> SQLMAP Practice --> View Someones Blog**''
{{:sad:fedora:p4:02.png?500|}}
Pulsamos en ''"**Please Choose Author**"''
En este caso si queremos iniciar la sesión, vemos los registros de todos los usuarios, esto no es un problema, pero si que nos da información, porque el cuadro de lista que está a continuación contendrá el valor o el nombre de usuario de la base de datos de cada nombre de usuario que se muestra.
{{:sad:fedora:p4:03.png?500|}}
Para ver el codigo fuente del Blog
''Botón derecho del ratón'' y pulsamos ''"**ver pagina fuente**"''
Pulsamos ''**Ctrl + F**'' par buscar el codigo fuente y escribimos ''**"admin"**''
Para cada nombre de usuario en esta línea, habrá una etiqueta llamada**
admin option>** - Este es el nombre para mostrar del usuario
{{:sad:fedora:p4:04.png?500|}}
Abrimos un terminal y escribimos
curl -L "http://ip-fedora/mutillidae/index.php?page=view-someones-blog.php" 2>/dev/null | grep -i \"admin\" | sed 's/"//g' | awk 'BEGIN{FS=">"}{for (i=1; i<=NF; i++) print $i}' | grep -v value | sed s'/<\/option//g'
**curl -L "página web",** recupera el código fuente de una página web. \\
**2>/dev/null,** significa que no se visualizan los errores o la salida del estado del curl. \\
**BEGIN{fs= >}** realiza las acciones antes de procesar una entrada, en este caso estoy indicando cual es el caracter separador \\
**grep -i \"admin\"**, muestra el resultado de curl que contiene la cadena "\" admin \ " ".\\
**sed 's/"/ /g',** usa sed para reemplazar citas sin nada \\
**awk 'BEGIN{FS=">"}{for (i=1; i<=NF; i++) print $i}',** se usa el caracter ">" como delimitador o separador de campo e imprima cada elemento de la matriz en un separador línea\\
**grep -v value,** muestra la salida del elemento de matriz que solo contiene la cadena "value". \\
**sed s'/<\/option/ /g'**, usamos sed para reemplazar la cadena " option" sin nada. \\
**-VARIABLES definidas del awk**
**FS** permite decir cual es el separador de linea\\
**NF** contiene el numero total de campos del registro\\
**RS** indica en qué punto del archivo acaba el registro\\
**NR** contiene el numero de orden del registro que se está procesando\\
**OFS** la instruccion print inserta en la salida un caracter de separación\
{{:sad:fedora:p4:05.png?500|}}
Lo siguiente es pulsar el boton ''**login\register**''\\
{{:sad:fedora:p4:06.png?500|}}
escribirmos \\
''Name: **admin** \\
Password: ** admin**''
{{:sad:fedora:p4:07.png?500|}}
Nos sale un mensaje de error y copiamos ese mensaje (ctrl+C)\\
Abrimos un nano o gedit y pegamos el mensaje \\
{{:sad:fedora:p4:08.png?500|}}
{{:sad:fedora:p4:09.png?500|}}
{{:sad:fedora:p4:10.png?500|}}
{{:sad:fedora:p4:11.png?500|}}
Volvemos a la web y pulsamos en el boton de ''**login/register**'' y ''boton derecho del ratón'' "ver codigo fuente"
pulsamos ''Ctrl + f'' y buscamos ''"form action"'' \\
Nos fijamos en la convención de nomenclatura de los cuadros de texto de nombre de usuario y contraseña.\\ Observamos la convención de nomenclatura y el valor del botón Enviar. \\
{{:sad:fedora:p4:12.png?500|}}
Ahora seleccionamos las ''**preferencias de firefox**'', y vamos a la solapa de ''**avanzado**'', de ''**red**'' y el boton de ''**setting**''
Se selecciona ''**proxy manual**'' y lo configuramos
{{:sad:fedora:p4:13.png?500|}}
{{:sad:fedora:p4:14.png?500|}}
ahora vamos a \\
**Applications --> BackTrack --> Vulnerability Assessment --> Web Application Assessment ---> Web Vulnerability Scanner --> burpsuite**
{{:sad:fedora:p4:15.png?500|}}
En la solapa proxy opciones puerto **8080**
Activamos la opcion de interceptar con \\
**proxy ---> intecept ------> intercept is on**
{{:sad:fedora:p4:16.png?500|}}
volvemos a la web y escribimos
**http://ip-fedora/mutillidae/index.php?page=login.php.**
Name: **admin**\\
Password: **admin**\\
La página web no se actualizará, ya que está esperando en Burp Suite.
{{:sad:fedora:p4:17.png?500|}}
{{:sad:fedora:p4:18.png?500|}}
verificamos los resultados
Seleccionamos **username=admin&password=admin&login-php-submit-button=Login** y con el boton derecho, selecionamos copy
En la primera línea, se puede ver que se ha producido una POST para login.php
**username = admin,** username es el nombre del cuadro de texto y admin es su valor.
**password = admin**, contraseña es el nombre del cuadro de texto y admin es su 'valor.
** login-php-submit-button** = Login, login-php-submit-button es el nombre del botón y Login is its 'value.
{{:sad:fedora:p4:19.png?500|}}
{{:sad:fedora:p4:20.png?500|}}
----
PANTALLA NO IMPRESA
vamos a nuestra ventana con el nano abierto y pergamos esa linea, de forma que tendremos
Authentication Error
username=admin&password=admin&login-php-submit-button=Login
----
mkdir -p /pentest/passwords/cwf
cd /pentest/passwords/cwf
wget http://217.182.207.57/~jguallar/mutillae/ejercicio04/cwf.v2.tar.gz
ls -l cwf.v2.tar.gz
tar zxovf cwf.v2.tar.gz
{{:sad:fedora:p4:21.png?500|}}
./crack_web_form.pl -help | more
{{:sad:fedora:p4:22.png?500|}}
./crack_web_form.pl -U admin -http "http://ip-fedora/mutillidae/index.php?page=login.php" -data "username=USERNAME&password=PASSWORD&login-php-submit-button=Login" -F "Authentication Error"
**-U**, es un parámetro opcional. Permite especificar un nombre de usuario. Si no se proporciona el nombre de usuario, el nombre de usuario se configurará por defecto en admin.
**-P**, es un parámetro opcional. Permite especificar la ubicación del archivo de contraseña. El archivo de contraseña predeterminado se establece en el archivo password.txt ubicado en el mismo directorio que crack_web_form.pl.
**-http**, es un parámetro requerido. Permite especificar la página de inicio de sesión.
**http://ip-fedora/mutillidae/index.php?page=login.php**
**-data**, es un parámetro requerido. Permite especificar los HTTP POST DATA.
**username = USERNAME**, donde USERNAME es el "administrador" predeterminado o reemplazado por el parámetro proporcionado por el usuario.
**password = PASSWORD,** donde PASSWORD se reemplaza por valores en el archivo de contraseña.\\
"username = USERNAME & password = PASSWORD & login-php-submit-button = Login",
**-F,** es un parámetro opcional. Permite especificar el mensaje de fallo de autenticación. El mensaje de error predeterminado se establece en "error | no válido | error", donde el mensaje no distingue entre mayúsculas y minúsculas
{{:sad:fedora:p4:23.png?500|}}
{{:sad:fedora:p4:24.png?500|}}
una vez sacada la contraseña, quitamos el proxy y nos registramos
{{:sad:fedora:p4:25.png?500|}}
''Practica que hay que entregar''
cd /pentest/passwords/cwf
cat crack_cookies.txt
date
echo "tu_nombre"