Hola, ¿de casualidad tienes 3 minutos, quiero mostrarte un CTF?.

Pero antes, gracias a s3cur4 por realizar este CTF y a la comunidad de Vulnyx por hacer esto posible.
Descripción de la maquina.
| Sistema Operativo | Linux 🐧 |
| Dificultad | Muy Fácil |
| Lanzamiento | 15/4/2024 |
| Creador | s3cur4 |
| Primer Usuario | suraxddq |
| Primer Root | suraxddq |
Enumeración
Empecemos con un nmap

Y bien, tenemos un servicio web y un Samba, vamos a explorar el servicio web.

Al parecer no tenemos nada, pero vamos a realizar un fuzzing con gobuster en busca de directorios o archivos.
gobuster dir -u http://192.168.1.65/ -w /usr/share/wordlists/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -t 70 -x php,html,js,css,txt

Pero no obtuvimos nada, pasemos a explorar el servicio Samba, vamos a listar los recursos compartidos con una null session.

Bueno, tiene un par de recursos, miremos con smbmap que permisos tenemos bajo estos recursos, aplicando un null session.
smbmap -H 192.168.1.65 -u 'null' -p 'null

Y vemos que tenemos permisos de escritura en la carpeta server, vamos a conectarnos.
smbclient //192.168.1.65/server -U "null%null"

Bien, tenemos un index.html y la carpeta se llama server, esto debe de ser el servicio web que se aloja en el puerto 80, ¿No?
Vamos a comprobarlo, subiremos un archivo y ver si lo podemos visualizar.



Y en efecto lo es, ¿que sigue?
Podemos subir un archivo con un código el cual nos devuelva una reverse shell, este código debe ser interpretado por la web... Por lo tanto debemos averiguar que lenguaje puedo interpretar el servicio web, por ejemplo php, py, java, ruby, aspx, js, etc.
¿Como lo podemos averiguar?
- Hearders
En ocasiones el encabezado server, puede indicar el lenguaje, también podrían usar whatweb o la extensión wappalyzer.

- Paginas 404
A veces las paginas 404 son personalizadas en algunos lenguajes.
- Prueba y error.
Como en los anteriores casos no obtuve algo claro de que lenguaje se pudiera estar interpretando, decidí intentarlo manualmente con cada uno de los posibles lenguajes.
Hasta que subí un archivo php el cual este fue interpretado, una vez sabiendo esto, generamos un código para una reverse shell en (Reverse Shell Generator)

Lo subimos al Samba.

Nos colocamos en escucha y consultamos.


Y ahí lo tenemos.

Escalada de privilegios
Primero enumeramos los usuarios del sistema.

Después de varias cosas, me tope con los permisos sudo del usuario www-data.

Y buenoo, realizamos sudo -u s3cur4 /usr/bin/bash

Y seguimos con la enumeración de permisos sudo.

Tenemos el binario /usr/bin/apt, veremos como podemos abusar de este en GTOBins.

Probemos con la opción (a), este nos abrirá el editor vim y ahí aplicamos la sentencia !/bin/bash


Y ahí lo tenemos, eso fue todo, hasta luego estimado lector!!


