Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa Próxima revisión Ambos lados, revisión siguiente | ||
sad:fedora14:p4 [2018/02/13 07:40] José Manuel Guallar |
sad:fedora14:p4 [2018/02/14 18:10] José Manuel Guallar |
||
---|---|---|---|
Línea 15: | Línea 15: | ||
**¿Qué es crack_web_form.pl?** | **¿Qué es crack_web_form.pl?** | ||
- | crack_web_form.pl es una herramienta / 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. | + | 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 | + | ** Que necesitamos para hacer esta práctica?** |
- | BackTrack 5 R1 | + | |
+ | * Fedora 14 | ||
+ | * BackTrack 5 R1 | ||
**Notas de la practica** | **Notas de la practica** | ||
Línea 31: | Línea 31: | ||
* Probar la secuencia de comandos Login.php con una contraseña descifrada. | * Probar la secuencia de comandos Login.php con una contraseña descifrada. | ||
| | ||
- | En el navegador de nustro BackTrack escribiremos la ip del fedora | ||
{{:sad:fedora:p4:01.png?500|}} | {{:sad:fedora:p4:01.png?500|}} | ||
- | {{:sad:fedora:p4:02.png?500|}} | ||
- | {{:sad:fedora:p4:03.png?500|}} | ||
- | {{:sad:fedora:p4:04.png?500|}} | ||
- | {{:sad:fedora:p4:05.png?500|}} | ||
- | {{:sad:fedora:p4:06.png?500|}} | ||
- | {{:sad:fedora:p4:07.png?500|}} | ||
- | {{:sad:fedora:p4:08.png?500|}} | ||
- | {{:sad:fedora:p4:09.png?500|}} | ||
- | {{:sad:fedora:p4:10.png?500|}} | ||
- | {{:sad:fedora:p4:11.png?500|}} | + | En el navegador de nustro BackTrack escribiremos la ip del fedora |
- | {{:sad:fedora:p4:12.png?500|}} | + | |
- | {{:sad:fedora:p4:13.png?500|}} | + | |
- | {{:sad:fedora:p4:14.png?500|}} | + | |
- | {{:sad:fedora:p4:15.png?500|}} | + | |
- | {{:sad:fedora:p4:16.png?500|}} | + | |
- | {{:sad:fedora:p4:17.png?500|}} | + | |
- | {{:sad:fedora:p4:18.png?500|}} | + | |
- | {{:sad:fedora:p4:19.png?500|}} | + | |
- | {{:sad:fedora:p4:20.png?500|}} | + | |
- | + | ||
- | {{:sad:fedora:p4:21.png?500|}} | + | |
- | {{:sad:fedora:p4:22.png?500|}} | + | |
- | {{:sad:fedora:p4:23.png?500|}} | + | |
- | {{:sad:fedora:p4:24.png?500|}} | + | |
- | {{:sad:fedora:p4:25.png?500|}} | + | |
- | {{:sad:fedora:p4:26.png?500|}} | + | |
- | {{:sad:fedora:p4:27.png?500|}} | + | |
- | {{:sad:fedora:p4:28.png?500|}} | + | |
- | {{:sad:fedora:p4:29.png?500|}} | + | |
- | {{:sad:fedora:p4:30.png?500|}} | + | |
** http://ip-fedora/mutillidae** y alli iremos a | ** http://ip-fedora/mutillidae** y alli iremos a | ||
- | OWASP Top 10 --> A1 - SQL Injection --> SQLMAP Practice --> View Someones Blog | + | ''**OWASP Top 10 --> A1 - SQL Injection --> SQLMAP Practice --> View Someones Blog**'' |
- | pantalla inicial con las ip´s del fedora y backtrack | + | {{:sad:fedora:p4:02.png?500|}} |
- | Pulsamo en "Please Choose Author" | + | Pulsamos en ''"**Please Choose Author**"'' |
- | Si siquiera iniciar sesión se puede ver los registros de otros usuarios. | + | 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. |
- | Esto normalmente no es un gran problema. | + | {{:sad:fedora:p4:03.png?500|}} |
- | Sin embargo, el cuadro de lista a continuación contendrá el valor o el nombre de usuario de la base de datos de cada nombre de usuario que se muestra. | + | Para ver el codigo fuente del Blog |
- | Vemos el codigo fuente del Blog | + | ''Botón derecho del ratón'' y pulsamos ''"**ver pagina fuente**"'' |
- | Botón derecho del ratón y pulsamos "ver pagina fuente" | + | Pulsamos ''**Ctrl + F**'' par buscar el codigo fuente y escribimos ''**"admin"**'' |
- | Pulsamos Ctrol + F par buscar el codigo fuente y escribimos "admin" | + | Para cada nombre de usuario en esta línea, habrá una etiqueta llamada** <option value = "USERNAME">**. |
- | Aviso para cada nombre de usuario en esta línea, habrá una etiqueta llamada <option value = "USERNAME">. | ||
<code mysql> | <code mysql> | ||
<option value = "admin"> admin </ option> | <option value = "admin"> admin </ option> | ||
- | <end code> | + | </code> |
- | **<option value = "admin"** - Este es el valor de la base de datos | + | **<option value = "admin"** - Este es el valor de la base de datos\\ |
**> admin </ option>** - Este es el nombre para mostrar del usuario | **> admin </ option>** - Este es el nombre para mostrar del usuario | ||
+ | |||
+ | {{:sad:fedora:p4:04.png?500|}} | ||
Abrimos un terminal y escribimos | Abrimos un terminal y escribimos | ||
Línea 100: | Línea 71: | ||
**curl -L "página web",** recupera el código fuente de una página web. \\ | **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. \\ | **2>/dev/null,** significa que no se visualizan los errores o la salida del estado del curl. \\ | ||
- | **grep -i \"admin\"**, muestra el resultado de curl que contiene la cadena "\" admin \ "".\\ | + | **BEGIN{fs= >}** realiza las acciones antes de procesar una entrada, en este caso estoy indicando cual es el caracter separador \\ |
- | **sed 's/"//g',** usa sed para reemplazar citas sin nada \\ | + | **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\\ | **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". \\ | **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. \\ | + | **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|}} | ||
- | Lo siguiente es pulsar el boton **registrar**\\ | ||
escribirmos \\ | escribirmos \\ | ||
+ | ''Name: **admin** \\ | ||
+ | Password: ** admin**'' | ||
- | Name: admin \\ | + | {{:sad:fedora:p4:07.png?500|}} |
- | Password admin | + | |
- | Nos sale un mensaje de error y copiamos ese mensaje (ctrol+C) | + | Nos sale un mensaje de error y copiamos ese mensaje (ctrol+C)\\ |
- | Abrimos un nano y pegamos el menaje \\ | + | Abrimos un nano o gedit y pegamos el menaje \\ |
- | Volvemos a la web y pulsamos en el boton de login/register y boton derecho del ratón "ver pagina fuente" | + | |
- | pulsamos Ctrol + f y buscamos "form action" \\ | + | {{: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 pagina 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. \\ | 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. \\ | ||
- | Ahora seleccionamos las preferencias de firexox, y vamos a la solapa de avanzado, la solapa de red y el boton de setting | + | {{:sad:fedora:p4:12.png?500|}} |
- | y seleccionamos proxy manual y lo configuramos | + | 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 \\ | ahora vamos a \\ | ||
**Applications --> BackTrack --> Vulnerability Assessment --> Web Application Assessment ---> Web Vulnerability Scanner --> burpsuite** | **Applications --> BackTrack --> Vulnerability Assessment --> Web Application Assessment ---> Web Vulnerability Scanner --> burpsuite** | ||
+ | |||
+ | {{:sad:fedora:p4:15.png?500|}} | ||
En la solapa proxy opciones puerto **8080** | En la solapa proxy opciones puerto **8080** | ||
Línea 130: | Línea 131: | ||
Activamos la opcion de interceptar con \\ | Activamos la opcion de interceptar con \\ | ||
**proxy ---> intecept ------> intercept is on** | **proxy ---> intecept ------> intercept is on** | ||
+ | |||
+ | {{:sad:fedora:p4:16.png?500|}} | ||
volvemos a la web y escribimos | volvemos a la web y escribimos | ||
- | http://ip-fedora/mutillidae/index.php?page=login.php. | + | **http://ip-fedora/mutillidae/index.php?page=login.php.** |
- | Name: admin\\ | + | Name: **admin**\\ |
- | Password: admin\\ | + | Password: **admin**\\ |
La página web no se actualizará, ya que está esperando en Burp Suite. | 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 | verificamos los resultados | ||
Línea 146: | Línea 152: | ||
En la primera línea, se puede ver que se ha producido una POST para login.php | 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. | + | **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. | + | **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. | + | ** 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 | vamos a nuestra ventana con el nano abierto y pergamos esa linea, de forma que tendremos | ||
Línea 159: | Línea 170: | ||
username=admin&password=admin&login-php-submit-button=Login | username=admin&password=admin&login-php-submit-button=Login | ||
</code> | </code> | ||
+ | |||
+ | ---- | ||
+ | |||
<code bash> | <code bash> | ||
mkdir -p /pentest/passwords/cwf | mkdir -p /pentest/passwords/cwf | ||
cd /pentest/passwords/cwf | cd /pentest/passwords/cwf | ||
- | wget http://servidor/SECURITY_TOOLS/MUTILLIDAE/MUTILLIDAE_2511/lesson4/cwf.v2.tar.gz | + | wget http://217.182.207.57/~jguallar/mutillae/ejercicio04/cwf.v2.tar.gz |
ls -l cwf.v2.tar.gz | ls -l cwf.v2.tar.gz | ||
tar zxovf cwf.v2.tar.gz | tar zxovf cwf.v2.tar.gz | ||
+ | </code> | ||
+ | {{:sad:fedora:p4:21.png?500|}} | ||
+ | <code bash> | ||
./crack_web_form.pl -help | more | ./crack_web_form.pl -help | more | ||
- | + | </code> | |
+ | {{:sad:fedora:p4:22.png?500|}} | ||
+ | <code bash> | ||
/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" | /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" | ||
</code> | </code> | ||
- | -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. | + | |
+ | **-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. | + | **-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**, es un parámetro requerido. Permite especificar la página de inicio de sesión. |
- | http://ip-fedora/mutillidae/index.php?page=login.php | + | **http://ip-fedora/mutillidae/index.php?page=login.php** |
- | -data, es un parámetro requerido. Permite especificar los HTTP POST DATA. | + | **-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. | + | **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. | + | **password = PASSWORD,** donde PASSWORD se reemplaza por valores en el archivo de contraseña.\\ |
- | "username = USERNAME & password = PASSWORD & login-php-submit-button = Login", | + | "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 | + | **-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 | una vez sacada la contraseña, quitamos el proxy y nos registramos | ||
- | '' | + | |
- | Practica que hay que entregar'' | + | {{:sad:fedora:p4:25.png?500|}} |
+ | |||
+ | |||
+ | ''Practica que hay que entregar'' | ||
<code bash> | <code bash> | ||
cd /pentest/passwords/cwf | cd /pentest/passwords/cwf |