Lame
Samba 3.0.20 vulnerable a «username map script» (CVE-2007-2447): inyección de comandos como root, sin autenticación.
Lame
| Máquina | SO | Dificultad | IP |
|---|---|---|---|
| Lame | Linux | Easy | 10.10.10.3 |
A tener en cuenta...
Resumen
Lame es la máquina número uno de HackTheBox y un clásico absoluto. Sin rabbit holes ni nada rebuscado: un Samba antiquísimo con una inyección de comandos que te deja ejecutar órdenes directamente como root, sin usuario intermedio ni escalada.
Se resuelve en cinco minutos, pero enseña de maravilla por qué un servicio sin actualizar es una sentencia: aquí, una versión de 2007 regala el control total de la máquina sin pedir una sola credencial.
Vulnerabilidad
CVE-2007-2447 — Samba «username map script» (Crítica · 9.8)
Es una inyección de comandos en Samba 3.0.20. Cuando en la configuración está activa la opción username map script, Samba coge el nombre de usuario que mandas en el login y lo pasa sin sanear a una shell del sistema. Basta con enviar, en lugar de un nombre normal, una cadena con un comando entre comillas invertidas para que ese comando se ejecute en el servidor. Y como el demonio de Samba corre como root, el comando también — todo ello sin autenticarse.
Reconocimiento
Lanzo el escaneo completo de puertos
| Puerto | Servicio | Versión |
| 21 | ftp | vsftpd 2.3.4 |
| 22 | ssh | OpenSSH 4.7p1 |
| 139 | netbios-ssn | Samba smbd 3.X |
| 445 | netbios-ssn | Samba smbd 3.0.20-Debian |
| 3632 | distccd | distccd v1 |
Llaman la atención tres cosas: un vsftpd 2.3.4 (famoso por su backdoor), un distccd en el 3632 y, sobre todo, un Samba 3.0.20 en los puertos 139/445. Tres caminos posibles; toca ver cuál es el bueno.
Enumeración
Afino versiones con los scripts de Nmap sobre los puertos de Samba
El vsftpd 2.3.4 parece el cebo evidente, pero aquí su backdoor no responde — un callejón sin salida. El distcc (CVE-2004-2687) también daría ejecución, pero como usuario sin privilegios. La vía limpia y directa es el Samba 3.0.20: esa versión es vulnerable al username map script (CVE-2007-2447) y da root de una. Lo confirmo con searchsploit
Explotación
La forma más cómoda es con Metasploit, que trae el módulo exacto.
Paso 1 — lanzar el módulo.
Paso 2 — qué hace por detrás. El módulo abre una conexión SMB y, en el campo del nombre de usuario, cuela el payload entre comillas invertidas aprovechando el username map script. Samba lo ejecuta como root y devuelve una shell.
Alternativa manual. Es la misma idea con smbclient: te pones en escucha con nc y usas como «usuario» un payload que invoca una reverse shell
Al procesar el logon, Samba ejecuta el nc y te llega la shell.
Paso 3 — confirmar.
Escalada de privilegios
No hay escalada: la propia explotación de Samba deja ya como root. Es lo que hace a Lame tan directa — el fallo del servicio ejecuta con los privilegios del demonio, y ese demonio corre como root. Directos a por las dos flags.
Flags
La de usuario, en el home de makis
Y la de root
Cómo se arregla
Todo parte de un servicio obsoleto y una opción peligrosa. Por capas:
- Actualizar Samba: la 3.0.25 ya corrige el CVE-2007-2447; lo ideal es saltar a una rama mantenida.
- Revisar «username map script»: si no se usa, desactivarla; es justo el vector del fallo.
- Dar de baja lo demás: el vsftpd 2.3.4 y el distccd no pintan nada expuestos; menos superficie, menos problemas.
- Menor privilegio: no ejecutar servicios de cara a la red como root cuando puede bastar una cuenta de servicio limitada.
Conclusiones
Lame es la demostración perfecta de que mantener software sin parchear es jugársela: un Samba con un CVE público desde 2007 permite ejecutar comandos como root sin credenciales.
Y enseña a no obsesionarse con el primer cebo: el vsftpd 2.3.4 llama muchísimo la atención, pero el camino evidente no siempre es el bueno. Enumerar bien las versiones y tirar de searchsploit te lleva al vector real.