Haremos el reconocimiento con nmap:
Vamos al puerto 80 y nos encontramos con esta web:
Una vez en esta web, vamos a hacer fuzzing con gobuster en busca de directorios:
gobuster dir -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -u http://10.10.37.34/
Y vemos que nos encuentra un robots.txt si le pasamos el parámetro -x para buscar por extensiones de archivos, por lo que vamos a acceder:
Y vemos que nos dicen algo de una flag:
Y si buscamos la ruta donde vemos ese allow, podemos acceder a la flag:
Y si vamos a la otra dirección vemos que no nos deja acceder:
Ahora, si vamos a la página principal y revisamos el código fuente, veremos que se hace un llamamiento a archivos .php del sistema, por lo que posiblemente estemos ante un path traversal o local file inclusion:
Por tanto vamos a probarlo:
Y ahora gracias a este local file inclusion, si podemos leer el archivo de antes que no podíamos acceder a él en el robots.txt:
Ahora que tenemos estas credenciales del protocolo ftp, vamos a probar en iniciar sesión:
ftpuser:givemefiles777
Y ya estamos dentro:
Y vemos que hay una carpeta files que tiene permiso de escritura, por lo que podríamos subir algo malicioso y leerlo posteriormente a través del local file inclusion:
Ahora el objetivo es ganar acceso a la máquina remota, por lo que tenemos aquí una carpeta llamada files a la que tenemos permisos de escritura, por lo que podemos subir un archivo PHP malicioso que nos proporcione una reverse shell aprovechándonos de LFI. Por lo que usamos este código:
Lo editamos y añadimos nuestra IP y puerto por el cual estaremos con netcat escuchando:
Y lo subimos:
Por tanto ahora desde el navegador ponemos esta url llamando al fichero php malicioso:
Y ya hemos obtenido la reverse shell:
Ahora para encontrar la flag 3, nos ubicamos dentro de la carpeta del servidor web por donde hemos entrado (aunque también podríamos buscar la flag con find, y nos encontramos con ella):
Ahora podemos ver que como el usuario toby podemos ejecutar cualquier comando:
Si preguntamos a la inteligencia artificial cómo convertirnos en el usuario toby en este contexto, nos da estas instrucciones:
Por tanto lo probamos y podemos ejecutar un comando como toby:
Por tanto vamos a lanzar una bash desde toby:
En el directorio personal del usuario toby tenemos la flag 4:
Dentro del directorio personal del usuario Toby nos encontramos que hay una nota que dice algo de una tarea cron:
Y aquí nos encontramos con un script donde tenemos permisos de escritura, llamado cow.sh:
Y esto es lo que hace el script:
Por tanto ahora podemos escalar privilegios editando este script y añadiendo código para que nos envíe una shell reversa:
Y nos ponemos en escucha con netcat y recibimos la reverse shell gracias a que este script se ejecuta por estar como tarea cron; y recibimos una shell como el usuario mat:
Y obtenemos la flag 5:
Y tenemos esta nota donde nos dice que tenemos permisos para ejecutar código python como root:
En la carpeta scripts tenemos dos scripts de python donde tenemos permisos de escritura y ejecución:
Además, si ejecutamos el comando sudo -l nos encontramos con que podemos ejecutar el script will_script.py como will:
Y este es el contenido de ambos scripts, donde vemos que uno llama al otro:
Por tanto, editamos el contenido de cmd.py para poner un comando que lance una bash como el usuario Will:
Por tanto ejecutamos el comando que nos salía al poner sudo -l y nos convertirmos en will:
sudo -u will /usr/bin/python3 /home/mat/scripts/will_script.py *
Por último, vemos que el usuario Will se encuentra dentro del grupo adm:
Por tanto vamos a buscar archivos que se encuentren dentro del grupo adm con el comando find:
find / -group adm 2>/dev/null
Y nos encuentra una key en base64:
Si visualizamos esta key, vemos que está en base64, pero podemos decodificarla:
Por tanto vamos a pegar este contenido de la clave id_rsa en nuestra máquina atacante y lo usamos para acceder vía ssh a la máquina víctima como root:






































