Introducción

Kioptrix Level 1 es una de las máquinas vulnerables clásicas para practicar pentesting — el objetivo de este ejercicio era encontrar la vulnerabilidad explotable y conseguir acceso con privilegios de administrador.

Reconocimiento

Primero, descubrir qué hay activo en la red:

nmap -sn 192.168.228.0/24

Descubrimiento de host con nmap -sn, la máquina responde en 192.168.228.129

Con la IP localizada (192.168.228.129), toca un escaneo más agresivo, puertos completos y con detección de vulnerabilidades:

nmap -Pn -A -p- --script vuln -T4 192.168.228.129

Resultado:

Antes de llegar a nada concreto, probé un par de exploits públicos para SSH y para Apache — ninguno funcionó. Con SSH y HTTP agotados por el momento, quedaba Samba, y ahí el problema era no saber ni siquiera qué versión estaba corriendo.

Identificar Samba con Metasploit

Como Nmap y enum4linux no lograban sacar la versión del servicio SMB, recurrí a Metasploit:

msfconsole
use auxiliary/scanner/smb/smb_version
set RHOST 192.168.228.129
run

Metasploit identificando la versión de Samba: Unix (Samba 2.2.1a)

Samba 2.2.1a. Con la versión concreta ya se puede buscar un exploit específico.

Explotación

El exploit que encontré en Exploit-DB estaba catalogado para “Samba < 2.2.8”, que en principio no encajaba con la versión 2.2.1a detectada. Pero el primer comentario del propio exploit aclaraba que funcionaba contra “Samba 2.2.x and prior” — así que, aunque el título no coincidiera exactamente, decidí probarlo:

Página de Exploit-DB: Samba < 2.2.8 (Linux/BSD) - Remote Code Execution, EDB-ID 10

Con el exploit descargado, tocaba compilarlo (es código C) y ejecutarlo contra la máquina objetivo:

gcc 10.c -o 10
sudo ./10 -b 0 192.168.228.129

Shell obtenida como root tras ejecutar el exploit contra Samba

whoami confirma root directamente — el exploit obtiene ejecución de código remota contra el propio proceso de Samba, que en esta máquina corre con privilegios de superusuario.

Conclusión

Lo más útil de esta máquina no fue el exploit final en sí (es un exploit público de hace más de veinte años), sino el proceso hasta llegar a él: SSH y Apache parecían los candidatos obvios por la cantidad de CVEs que Nmap escupió de entrada, y ninguno llevó a nada. El servicio que sí funcionó fue el que menos información daba a simple vista — hizo falta recurrir a Metasploit solo para saber qué versión estaba corriendo antes de poder buscar el exploit correcto. Y aun así, el título del exploit no coincidía exactamente con la versión detectada; leer la letra pequeña (el comentario del propio código) fue lo que evitó descartarlo sin probarlo.