Kitty
tryhackme room Kitty
Last updated
tryhackme room Kitty
Last updated
Vamos c omenzar haciendo un nmap:
Parece que solo tiene abierto el 22 de ssh y el 80 , vamos a acceder:
Y vamos a hacer el tipico ataque de injeccion sql:
y vemos que ha funcionado asi que tiene pinta de que vamos a poder hacer algun tipo de injeccion.Asi que ahora vamos a probar a registrarnos con un usuario legitimo en la web:
Una vez creado vamos a meter un concepto nuevo que es hacer peticiones a traves de curl para verificar si cambi algo al hacer peticiones con usuario que existen y con usuarios que no:
De aqui podemos comprobar que podemos hacer un ataque de injeccion sql boolean , siendo 302 true y el codigo 200 false.
Lo siguiente que vamos a hacer es ver el numero de columnas que tiene la base de datos:
Una vez que sabemos el numero de columnas queremos saber el nombre de la base de datos , para ello haremos una peticion parecida a esta :
En esta peticion le decimos a la base de datos que si el nombre de la base de datos empieza por a , de esta forma si nos da un 302 sabemos que es true y que la base de datos empieza por esa letra.
Vamos a sacar la primera letra:
Ahora que ya sabemos como funciona de forma manual vamos a utilizar un script en python que automaitza este proceso:
Lo configuramos y lo lanzamos:
Y parece que tenemos el nombre de la base de datos: mywebsite
Tambien podemos deducir que el dbms que esta utilizando es mysql ya que la funcion database() ha funcionado.
Ahora que sabemos el nombre de la base de datos vamos a averiguar el nombre de la tabla:
Ahora lo añadimos al script modificando la peticion y lo lanzamos:
Una vez sacado el nombre de la tabla vamos a sacar el del primer usuario que seguramente sea el admin , le añadimos esta sentencia sql al script:
Luego modificamos la query para averiguar la contraseña:
Una vez tenemos todo esto vamos a conectarnos por ssh con estas credenciales y vamos a ver que tenemos:
ESCALADA de PRIVILEGIOS
Vamos a comenzar haciendo una enumeracion basica:
Como sabemos que un apache esta corriendo vamos a ver si hay otra web en el directorio /etc/apache2/sites-enabled/:
Podemos ver como en /var/www hay dos carpetas html y development si entramos en la html y revisamos vemos como en la de html hace referencia al puerto 80:
Una vez sabemos esto vamos a crear un tunel con ssh para acceder a traves de nuestro propio navegador:
Parece que a traves del header X Forwarded for guarda la ip del visitante en una variable y se la pasa al archivo logged que esta en ese directorio cada vez que hay una inyeccion sql.
Vamos a probar desde nuestro localhost:
Ahora sabemos que podemos controlar lo que entra en este archivo , pero como lo podemos aprovechar.. Vamos a utilizar pspy64 para ver los procesos activos del sistema:
si lo visualizamos:
Ahora lo que tendremos que hacer es crear una webshell e insertarla en el header que vimos antes X FORWARDED FOR:
Una vez creado ejecutamos la injeccion:
Y por ultimo miramos en la terminal donde abrimos el listener en el puerto 9001: