Nest
Úvod a kontext
Nest stojí na řetězení několika konkrétních slabin a artefaktů: SMB sdílení, Kerberos a LDAP.
Důležitější než samotný exploit je tady interpretace mezikroků, protože právě z těchto indicií vzniká přístup přes SMB sdílení a teprve na něj navazuje lokální enumeraci po získání shellu.
Počáteční průzkum
Vyhledání otevřených portů
Nejprve mapuji veřejně dostupné služby, protože právě z otevřených portů odvodím, které protokoly a aplikace má smysl zkoumat detailněji.
ports=$(nmap -Pn -p- --min-rate=1000 -T4 $IP | grep ^[0-9] | cut -d "/" -f 1 | tr "\n" "," | sed s/,$//);echo $ports;nmap -Pn -p $ports -A -sC -sV -v $IP
PORT STATE SERVICE VERSION
445/tcp open microsoft-ds?
4386/tcp open unknown
| fingerprint-strings:
| DNSStatusRequestTCP, DNSVersionBindReqTCP, Kerberos, LANDesk-RC, LDAPBindReq, LDAPSearchReq, LPDString, NULL, RPCCheck, SMBProgNeg, SSLSessionReq, TLSSessionReq, TerminalServer, TerminalServerCookie, X11Probe:
| Reporting Service V1.2
| FourOhFourRequest, GenericLines, GetRequest, HTTPOptions, RTSPRequest, SIPOptions:
| Reporting Service V1.2
| Unrecognised command
| Help:
| Reporting Service V1.2
| This service allows users to run queries against databases using the legacy HQK format
| AVAILABLE COMMANDS ---
| LIST
| SETDIR <Directory_Name>
| RUNQUERY <Query_ID>
| DEBUG <Password>
|_ HELP <Command>
Host script results:
|_clock-skew: -1m27s
| smb2-security-mode:
| 2.02:
|_ Message signing enabled but not required
| smb2-time:
| date: 2020-01-25T19:08:55
|_ start_date: 2020-01-25T19:01:53
Enumerace SMB
U SMB sdílení ověřuji, jaká data jsou dostupná bez dalších oprávnění a zda z nich lze získat účty, dokumenty nebo konfigurační tajemství.
smbclient -L $IP -N
Sharename Type Comment
--------- ---- -------
ADMIN$ Disk Remote Admin
C$ Disk Default share
Data Disk
IPC$ IPC Remote IPC
Secure$ Disk
Users Disk
SMB1 disabled -- no workgroup available
mount //10.10.10.178/Data /mnt -o username=root
Enumerace SMB (2)
U SMB sdílení ověřuji, jaká data jsou dostupná bez dalších oprávnění a zda z nich lze získat účty, dokumenty nebo konfigurační tajemství.
./enum4linux.pl -a -d -o -v -u TempUser -p welcome2019 $IP > Nest-enum4linux.txt
=> Service_HQK
=> C.Smith
Získání přístupu
Získání user flagu
User flag zde slouží hlavně jako potvrzení, že už mám běžný uživatelský kontext a mohu pokračovat v lokální analýze systému.
cat user.txt
__CENSORED__
Eskalace oprávnění
Získání root flagu
Tento krok ukazuje, jak se nalezená slabina nebo chyba v delegaci oprávnění mění v privilegovaný přístup.
cat root.txt
__CENSORED__
Shrnutí klíčových poznatků
- Klíčový posun nepřinesl samotný scan, ale interpretace toho, co znamenaly SMB sdílení, Kerberos a LDAP.
- Uživatelský přístup dává v tomhle řetězci smysl až ve chvíli, kdy vyjde přístup přes SMB sdílení.
- Root/admin část nepřišla zkratkou; klíčovou roli tu hraje lokální enumerace po získání shellu a navazující lokální enumerace.
Co si odnést do praxe
- Tento řetězec začal u SMB sdílení, Kerberos a LDAP; právě tam má obrana největší návratnost. SMB sdílení mají mít opravdu minimální ACL a průběžný audit obsahu; i read-only přístup často útočníkovi dá víc než samotná zranitelnost služby.
- Foothold navázal na přístup přes SMB sdílení, takže oddělení účtů a tajemství není jen teorie. Share s dokumenty a exporty je potřeba posuzovat jako zdroj identit a tajemství; obsah sdílení bývá pro další pivot důležitější než samotná síťová služba.
- Poslední krok stojí na lokální enumerace po získání shellu, a proto je nutné auditovat i lokální delegaci práv. Po získání shellu je rozhodující systematická lokální enumerace; i bez další CVE často rozhodne kombinace špatných oprávnění, reuse tajemství a pomocných skriptů.