sad:fedora14:p2
Diferencias
Muestra las diferencias entre dos versiones de la página.
| Próxima revisión | Revisión previa | ||
| sad:fedora14:p2 [2018/01/13 23:16] – creado José Manuel Guallar | sad:fedora14:p2 [2019/01/04 13:18] (actual) – editor externo 127.0.0.1 | ||
|---|---|---|---|
| Línea 1: | Línea 1: | ||
| **¿Qué es Inyección de Comando?** | **¿Qué es Inyección de Comando?** | ||
| - | | + | La Inyección de comandos ocurre cuando un atacante puede ejecutar comandos del sistema operativo o scripts en el servidor desde la aplicación web. Esta potencial |
| + | |||
| + | Se puede probar la vulnerabilidad utilizando una técnica llamada fuzzing, donde un ";" | ||
| ** | ** | ||
| ¿Qué es Fuzzing?** | ¿Qué es Fuzzing?** | ||
| - | | + | La prueba de fuzz o fuzzing es una técnica de prueba de software que implica proporcionar datos no válidos, inesperados o aleatorios a las entradas de un programa de ordenador. |
| + | Luego, se monitorea el programa en busca de excepciones tales como bloqueos o fallos en las aserciones de código incorporadas o para encontrar posibles pérdidas de memoria. Fuzzing se usa comúnmente para probar problemas de seguridad en software o sistemas informáticos. | ||
| **practica requisito** | **practica requisito** | ||
| - | Instalar Mutillidae en Fedora 14 | + | * Instalar Mutillidae en Fedora 14 |
| - | Instalación de BackTrack 5 R1 | + | |
| **Notas de la practica** | **Notas de la practica** | ||
| Línea 22: | Línea 25: | ||
| * Codificación de PHP Script para ver los contenidos | * Codificación de PHP Script para ver los contenidos | ||
| * Conexión remota a la base de datos | * Conexión remota a la base de datos | ||
| + | |||
| + | 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 | ||
| + | |||
| + | {{: | ||
| + | |||
| + | Posteriormente arraco el servicio mysql en el sistema Fedora con la sentencia | ||
| + | |||
| + | <code bash> | ||
| + | [root@fedora14 estudiante]# | ||
| + | </ | ||
| + | |||
| + | {{: | ||
| + | |||
| + | voy al Backtrack y escribo en el navegador | ||
| + | |||
| + | {{: | ||
| + | |||
| + | Vamos a ver como funciona DNS Lookup | ||
| + | |||
| + | Tenemos que ir a la solapa OWASP Top 10 --> A2 - Cross Site Scripting (XSS) --> Reflected (First Order) --> DNS Lookup | ||
| + | |||
| + | {{: | ||
| + | |||
| + | El DNS lookup está diseñada para hacer exactamente eso... proporciona una búsqueda de DNS. | ||
| + | |||
| + | {{: | ||
| + | |||
| + | 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. | ||
| + | |||
| + | El procedimiento de agregar un ";" | ||
| + | |||
| + | A continuación, | ||
| + | |||
| + | <code bash> | ||
| + | www.colegiomontessori.com; | ||
| + | </ | ||
| + | |||
| + | {{: | ||
| + | |||
| + | ====== | ||
| + | |||
| + | 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 ejecutamos " | ||
| + | |||
| + | Además, observa en la barra de direcciones que la aplicación se llama dns-lookup.php | ||
| + | |||
| + | entonces ejecutamos | ||
| + | <code bash> | ||
| + | | ||
| + | </ | ||
| + | {{: | ||
| + | |||
| + | ====== 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. | ||
| + | |||
| + | Usaré el comando xargs para buscar, egrep, para seguir las cadenas: exec O system O virtual. | ||
| + | |||
| + | <code bash> | ||
| + | www.colegiomontessori.com; | ||
| + | </ | ||
| + | |||
| + | {{: | ||
| + | |||
| + | 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 **/ | ||
| + | ** | ||
| + | Vamos a buscar en /etc/passwd algunas de las siguientes palabras | ||
| + | |||
| + | **postgres, sql, db2 y ora** | ||
| + | | ||
| + | para eso escribirmos : | ||
| + | |||
| + | <code bash> | ||
| + | www.colegiomontessori.com; | ||
| + | </ | ||
| + | |||
| + | LOL LOL LOL nos dice que mysql es la base de datos que están usando | ||
| + | |||
| + | {{: | ||
| + | |||
| + | Vamos a descubrir cual es el motor de base de datos que se esta usando con el comando " | ||
| + | |||
| + | Usemos el comando " | ||
| + | |||
| + | <code bash> | ||
| + | www.colegiomontessori.com; | ||
| + | </ | ||
| + | |||
| + | El mysqld (daemon) se está ejecutando. | ||
| + | |||
| + | {{: | ||
| + | |||
| + | ====== Listar todos los scripts de php ====== | ||
| + | |||
| + | |||
| + | Nuestro siguiente paso es tratar de averiguar si alguno de los scripts php ubicados en / | ||
| + | |||
| + | Pero, primero enumera todos los scripts php. | ||
| + | |||
| + | <code bash> | ||
| + | www.colegiomontessori.com; | ||
| + | </ | ||
| + | |||
| + | {{: | ||
| + | |||
| + | podemos ver una multitud de scripts para interrogar | ||
| + | |||
| + | Buscar scripts php para la contraseña de cadena | ||
| + | |||
| + | Ahora buscamos en los más de 900 scripts en PHP la palabra " | ||
| + | |||
| + | <code bash> | ||
| + | www.colegiomontessori.com; | ||
| + | </ | ||
| + | |||
| + | y observamos la respuesta 8-om(8-o | ||
| + | |||
| + | {{: | ||
| + | |||
| + | y observamos que el fichero ** MySQLHandler.php** contiene la siguiente cadena: | ||
| + | |||
| + | <code mysql> | ||
| + | $mMySQLDatabasePassword = " | ||
| + | </ | ||
| + | {{: | ||
| + | |||
| + | Hemos hecho parte del trabajo, porque ahora tenemos la contraseña " | ||
| + | |||
| + | <code bash> | ||
| + | www.colegiomontessori.com; | ||
| + | </ | ||
| + | |||
| + | {{: | ||
| + | |||
| + | Nos da mucha información, | ||
| + | |||
| + | **Mostrar MySQLHandler.php** | ||
| + | |||
| + | 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**, | ||
| + | |||
| + | Para evitar este problema y simplemente mostrar el texto del programa, cambiamos "<" | ||
| + | <code bash> | ||
| + | www.colegiomontessor.com; | ||
| + | </ | ||
| + | |||
| + | {{: | ||
| + | |||
| + | Aqui sacamos mucha mucha información LOLLOL por un lado " | ||
| + | |||
| + | <code mysql> | ||
| + | static public $mMySQLDatabaseUsername = " | ||
| + | |||
| + | static public $mMySQLDatabasePassword = " | ||
| + | |||
| + | static public $mMySQLDatabaseName = " | ||
| + | </ | ||
| + | |||
| + | Ahora podemos ir al terminal de nuestro **Backtrack** | ||
| + | |||
| + | <code bash> | ||
| + | root@bt:~# mysql -h 192.168.153.39 -uroot -psamurai | ||
| + | mysql> show databases; | ||
| + | mysql> use nowasp; | ||
| + | </ | ||
| + | {{: | ||
| + | |||
| + | ====== A nevegar por la tablas ====== | ||
| + | |||
| + | |||
| + | Basicamente vamos a mirar que tablas contienen información del usuario y de la contraseña | ||
| + | |||
| + | {{: | ||
| + | |||
| + | <code mysql> | ||
| + | mysql> select * from accounts; | ||
| + | mysql> quit; | ||
| + | </ | ||
| + | |||
| + | {{: | ||
| + | |||
| + | |||
| + | **'' | ||
| + | |||
| + | <code bash> | ||
| + | root@bt:~# cd | ||
| + | root@bt:~# mysql -h 192.168.153.39 -uroot -psamurai -e " | ||
| + | root@bt:~# ls -l account.txt | ||
| + | root@bt:~# date | ||
| + | root@bt:~# echo "Tu nombre" | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
sad/fedora14/p2.1515885397.txt.gz · Última modificación: (editor externo)
