🟢PyExp
Write-up de la máquina PyExp de Proving Grounds #writeup #walkthrough
Enumeración
NMAP
Comenzamos la máquina PyExp realizando un escaneo de los servicios que tiene abietos esta máquina.
Dos puertos abiertos, 1337 y 3306. A continuación, seguimos con un escaneo en profundidad de estos dos puertos.
Existen 2 puertos abiertos en el equipo target.
Puerto 1337 -> SSH -> OpenSSH 7.9
Puerto 3306 -> MySQL -> MySQL 5.5.5-10.3.23-MariaDB
Además también vemos información sobre la base de datos que puede ser interesante.
Puerto 3306 (MySQL)
Comenzamos la enumeración del puerto 3306, que es el puerto de MySQL. Vamos a iniciar realizando una fuerza bruta para averiguar la password con dos herramientas: "hydra" y "medusa" y haremos uso de la wordlist "rockyou.txt".
Ya tenemos las credenciales para acceder a la base de datos MySQL. "root:prettywoman".
Vamos a iniciar sesión en MySQL con las credenciales que encontramos anteriormente.
Continuamos enumerando las bases de datos disponibles.
Seleccionamos la base de datos "data".
Dentro de la basede datos "data", encontramos una tabla llamada "fernet". Vamos a realizar un volcado de los datos de esta tabla.
Parecen las credenciales para algún tipo de cuenta en el equipo. Vamos a intentar descifrarlos con algunos de los algoritmos más comunes. Utilizaremos CyberChef. Pero no logramos descifrar ningún hash.
El nombre de la tabla parece extraño, ¿qués es fernet?. Vamos a consultarlo.
Fernet es una implementación de criptografía simétrica, en la que que un mensaje cifrado con ella no puede ser leido sin una clave.
Vamos a intentar descifrar el contenido con esta herramienta.
Explotación
Anteriormente obtuvimos unas credenciales. Recordamos que en el escaneo de puertos inicial existía un puerto SSH. ¿Pueden las credenciales para este servicio? Vamos a comprobarlo.
Podemos iniciar sesión en el servicio SSH con las credenciales anteriormente encontradas.
Buscamos la flag local.txt
Elevación de privilegios
Comenzamos enumerando los programos que podemos ejecutar como root sin contraseña.
Vamos a ver el contenido del archivo "opt/exp.py".
Este script os hace una pregunta al solicitar una entrada. Si podemos escapar de la shell mientras este script está en funcionamiento, deberiamos obtener privilegios elevados.
Ejecutamos el siguiente comando para lanzar el ejecutable:
Y este otro para escapar de la shell y obtener privilegios elevados.
Vamos a por la flag proof.txt para acabar este CTF.
Last updated