File
Hoy realizamos la máquina "File" de DockerLabs
Autor: Scuffito y Jul3n-dot
Dificultad: Fácil

Reconocimiento
Comenzamos con un escaneo de nmap:
Como vemos tenemos 2 puertos:
21: vsftpd 3.0.5 (No vulnerable)
80: Apache httpd 2.4.41
Viendo las opciones, pasaremos directamente a hacer fuzzing con gobuster:
Intrusión
Viendo que podemos posiblemente podemos subir archivos en "file_upload.php", crearemos una shell en php, solo que con extension phar:
Una vez creado, escuchamos en el puerto 443 con netcat (sudo nc -nlvp 443) y luego lo subimos, vamos a donde está la shell (/uploads/shell.phar) y entramos, una vez lo hagamos estaremos dentro como www-data.
Escalada de privilegios
www-data
Ahora para escalar, necesitaremos de un script que nos permite hacer fuerza bruta a varios usuarios al mismo tiempo, y usamos la wordlist de rockyou. Una vez hecho habremos obtenido la contraseña de el usuario fernando
Fernando
Si vamos al home de fernando, veremos una foto, esta nos la pasamos a nuestra maquina e intentamos obtener una contraseña para extraer lo que tiene un su interior con steghide. Para esto primero debemos buscar su contraseña:
Una vez lo hagamos, nos dirá que dentro tiene un archivo llamado "pass.txt" y que la contraseña para extraerlo es "secret". Este nos deja un archivo llamado igual que la imagen pero con un .out al final, lo leemos y nos da un hash, el cual al crackearlo en CrackStation nos dará la contraseña del usuario "mario".
Mario
Siendo mario, podemos ejecutar el binario awk como el usuario "julen", por lo que luego de buscar en gtfobins veo que se puede escalar de la siguiente manera:
Julen
Ahora si ejecutamos sudo -l, vemos que nuevamente podemos ejecutar algo como otro usuario, y en este caso es el binario env como el usuario "iker". Por lo que para escalar ejecutamos sudo -u iker env bash.
Iker
Si ejecutamos sudo -l, veremos que podemos ejecutar un script de python como root. Este script se encuentra en la home de iker, por lo que significa que aunque el archivo pertenezca a root y no tengamos permiso de escritura, podemos borrarlo igualmente. Sabiendo esto, lo borramos y creamos otro con el mismo nombre solo que con el siguiente contenido:
Una vez todo listo, ejecutamos sudo python3 /home/iker/geo_ip.py y ya seremos root.
Root

Gracias por leer :)
Última actualización