Crossroads HackMyVM (Easy - Linux)

Escaneo de puertos

nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn <IP>
nmap -sCV -p<PORTS> <IP>

Info:

Starting Nmap 7.95 ( https://nmap.org ) at 2025-05-21 03:19 EDT
Nmap scan report for 192.168.5.25
Host is up (0.00060s latency).

PORT    STATE SERVICE     VERSION
80/tcp  open  http        Apache httpd 2.4.38 ((Debian))
|_http-title: 12 Step Treatment Center | Crossroads Centre Antigua
|_http-server-header: Apache/2.4.38 (Debian)
| http-robots.txt: 1 disallowed entry 
|_/crossroads.png
139/tcp open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
445/tcp open  netbios-ssn Samba smbd 4.9.5-Debian (workgroup: WORKGROUP)
MAC Address: 08:00:27:DD:A2:63 (PCS Systemtechnik/Oracle VirtualBox virtual NIC)
Service Info: Host: CROSSROADS

Host script results:
|_clock-skew: mean: 1h40m02s, deviation: 2h53m12s, median: 2s
| smb2-time: 
|   date: 2025-05-21T07:19:36
|_  start_date: N/A
| smb2-security-mode: 
|   3:1:1: 
|_    Message signing enabled but not required
| smb-os-discovery: 
|   OS: Windows 6.1 (Samba 4.9.5-Debian)
|   Computer name: crossroads
|   NetBIOS computer name: CROSSROADS\x00
|   Domain name: \x00
|   FQDN: crossroads
|_  System time: 2025-05-21T02:19:37-05:00
|_nbstat: NetBIOS name: CROSSROADS, NetBIOS user: <unknown>, NetBIOS MAC: <unknown> (unknown)
| smb-security-mode: 
|   account_used: guest
|   authentication_level: user
|   challenge_response: supported
|_  message_signing: disabled (dangerous, but default)

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 12.14 seconds

Veremos que solo hay un puerto 80 en el que esta alojada una pagina web y un servidor SMB por lo que vamos a ver que contiene dicha pagina web, si entramos dentro veremos una especie de pagina web como para reservar una villa en alguna playa, pero nada mas interesante, por lo que vamos a realizar un poco de fuzzing a ver que encontramos.

Gobuster

Info:

Veremos varias cosas interesantes, vamos a probar a entrar en alguna de ellas a ver si vemos algo interesante.

Veremos varias cosas, pero ninguna que nos llame la atencion, por lo que no veremos nada interesante, vamos a enumerar el servidor SMB a ver que vemos.

enum4linux

Info:

Vemos que hay un usuario registrado en el sistema que se llama albert vamos a probar a realizar fuerza bruta con dicho usuario mediante el servidor SMB con la herramienta medusa.

Info:

Veremos que hemos encontrado las credenciales del usuario albert por lo que vamos a enumerar el servidor SMB a ver que vemos.

Info:

Veremos que hay un recurso compartido llamado de la misma forma que la del usuario, vamos a probar a meternos en dicho recurso.

Escalate user albert

Veremos que efectivamente estaremos dentro y si listamos veremos lo siguiente:

Vemos que hay un directorio llamado smbshare y si entramos dentro veremos un archivo llamado smb.conf esto es bastante interesante ya que podremos ver la configuracion del servidor SMB y eso es una vulnerabilidad.

Si leemos dicho archivo veremos lo siguiente:

Vemos que hay establecido un magic script esto lo que hace es que cuando alguien se conecta a un servidor SMB este mismo se ejecuta de forma automatica, por lo que podremos insertar codigo malicioso creado el script con dicho nombre y conectarnos por SMB de nuevo para que lo ejecute el servidor.

smbscript.sh

Teniendo el archivo lo que vamos hacer es ponernos a la escucha ya directamente.

Ahora vamos a conectarnos con el otro servidor compartido llamado smbshare.

Una vez echo esto, vamos a subir el archivo magico de esta forma:

Ahora si volvemos a donde tenemos la escucha veremos lo siguiente:

Veremos que ha funcionado por lo que sanitizaremos la shell.

Sanitización de shell (TTY)

Echo esto vamos a leer la flag del usuario.

user.txt

Escalate Privileges

Si listamos los binario con permisos SUID que hay en el sistema veremos lo siguiente:

Info:

Vemos una linea bastante interesante que es la siguiente:

Vemos que en la propia home del usuario albert el binario beroot tiene permisos SUID vamos a ver que hace dicho archivo.

Si lo ejecutamos:

Info:

Veremos que tendremos que poner como una contraseña de root o algo parecido, pero no podremos saberlo, por lo que vamos a probar a decompilar el codigo con la herramienta ghidra a ver que vemos.

En la maquina host.

Crearemos un nuevo proyecto, le daremos al dragon verde y se nos habria una interfaz donde podremos importar el binario, nos pasaremos el binario de la maquina victima a la host mediante un servidor de python3.

Desde el host.

Echo esto nos importaremos el binario en el espacio de trabajo de ghidra, lo analizamos y veremos lo siguiente:

Vemos que el main esta ejecutando el script que se encuentra en /root/beroot.sh por lo que no podremos saber que hace realmente dicho binario por dentro ya que lo esta ejecutando desde otro binario.

No nos queda otra que realizar fuerza bruta a dicho binario para sacarle la contraseña.

forceBinary.py

Lo guardamos y nos pasamos el rockyou.txt del host a la maquina victima, mediante un servidor de python3, una vez que lo hayamos echo ejecutaremos el script de esta forma teniendo el rockyou.txt en el mismo directorio.

Info:

Veremos que hemos encontrado la contraseña despues de un rato, nos comenta que leeamos dicho archivo:

Info:

Veremos que la contraseña es ___drifting___ vamos a probarla:

Metemos como contraseña ___drifting___ y veremos que estamos dentro.

Info:

Por lo que vamos a leer la flag del usuario root.

root.txt

Last updated