HTB – Remote
Remote ist eine, als leichte, gekennzeichnete Windows Hack the Box.
Es geht darum, in einem NFS Backup eine Config zu finden und darüber Zugang zu einem CMS zu bekommen. Über ein RCE Exploit kann man sich eine Shell spawnen, einmal auf der Windows Maschine kann man eine bekannte Sicherheitslücke von Windows ausnutzen und die Config eines Windows Dienstes ändern, somit kann man sich eine reverse shell aufrufen, welche unter dem User SYSTEM läuft .
NMAP Scan
nmap -sV -sC -oA firstScan -v 10.10.10.180 Nmap scan report for 10.10.10.180 Host is up (0.12s latency). Not shown: 994 closed ports PORT STATE SERVICE VERSION 21/tcp open ftp Microsoft ftpd |_ftp-anon: Anonymous FTP login allowed (FTP code 230) | ftp-syst: |_ SYST: Windows_NT 80/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP) | http-methods: |_ Supported Methods: GET HEAD POST OPTIONS |_http-title: Home - Acme Widgets 111/tcp open rpcbind 2-4 (RPC #100000) | rpcinfo: | program version port/proto service | 100000 2,3,4 111/tcp rpcbind | 100000 2,3,4 111/tcp6 rpcbind | 100000 2,3,4 111/udp rpcbind | 100000 2,3,4 111/udp6 rpcbind | 100003 2,3 2049/udp nfs | 100003 2,3 2049/udp6 nfs | 100003 2,3,4 2049/tcp nfs | 100003 2,3,4 2049/tcp6 nfs | 100005 1,2,3 2049/tcp mountd | 100005 1,2,3 2049/tcp6 mountd | 100005 1,2,3 2049/udp mountd | 100005 1,2,3 2049/udp6 mountd | 100021 1,2,3,4 2049/tcp nlockmgr | 100021 1,2,3,4 2049/tcp6 nlockmgr | 100021 1,2,3,4 2049/udp nlockmgr | 100021 1,2,3,4 2049/udp6 nlockmgr | 100024 1 2049/tcp status | 100024 1 2049/tcp6 status | 100024 1 2049/udp status |_ 100024 1 2049/udp6 status 135/tcp open msrpc Microsoft Windows RPC 139/tcp open netbios-ssn Microsoft Windows netbios-ssn 445/tcp open microsoft-ds? Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows Host script results: |_clock-skew: 2m51s | smb2-security-mode: | 2.02: |_ Message signing enabled but not required | smb2-time: | date: 2020-04-09T19:40:49 |_ start_date: N/A
Der SMB Share zeigt keine Freigaben. Auf dem FTP Server kann ich mich zwar per Anonymous anmelden, finde jedoch keine Dateien und darf auch sonst nichts machen
also schaue ich mir die Website, welche unter Port 80 und 443 läuft, genauer an.
Auf der Website finden wir ein Umbraco CMS
Searchsploit findet direkt ein interessanten Exploit
Dieser setzt jedoch eine Anmeldung vorraus.
Über den Link „Kontakt“ kommen wir zum Backend Bereich wo wir uns anmelden können.
Ohne Zugangsdaten kommen wir hier jedoch nicht weiter.
Ich suche nach Port 111 und finde heraus das es sich hierbei wohl um ein NFS Share handelt.
Wie man diesen verwendet / anspricht finde ich über diese Seite heraus:
https://computersecuritystudent.com/SECURITY_TOOLS/METASPLOITABLE/EXPLOIT/lesson4/index.html
Über den Befehl
showmount -e 10.10.10.150
sehe ich, dass jeder Zugriff auf das Verzeichnis /site_backups hat
Mit dem Befehl
sudo mount -t nfs 10.10.10.180:/site_backups /mnt/remote/ -o nolock
Mounte ich mir das Verzeichnis und kopiere mir erstmal den gesamten Inhalt auf meine lokale VM.
cp -rfv /mnt/remote ~/hb_remote/nfs
Dort durchsuche ich alle Dateien nach verschiedenen Wörtern wie „Password“, „User“ oder „Admin.. Erst eine suche nach „connectionString“ liefert mir ein brauchbares Ergebnis
grep -rniw '.' -e 'connectionString'
Ich finde eine Zeile in der Datei „Web.config“ welche auf einen „Umbraco.sdf“ Datei zeigt. Die Datei liegt im Unterverzeichnis „App_Data“
Da es sich bei einer SDF Datei um eine SQL Server Compact Edition Datenbank handelt, hatte ich zuerst versucht, diese über einen SDF Editor zu öffnen, zwei verschiedene Editoren meldeten jedoch, dass die Datenbank defekt sei und lies sich nicht öffnen. Daher also manuell durchsuchen, da es sich um eine Binärdatei handelt müssen wir diese mit Strings öffnen damit wir sie per GREP durchsuchen können. Eine suche nach „Admin“ bringt uns folgendes Ergebnis
Ich finde einen Hash und einen User: admin@htb.local. Es wird uns auch angezeigt um was für einen Hash es sich handelt. Ich erstelle mir eine Textdatei und kopiere den Hash mit Angabe des Algorithmus rein.
sha1:b8be16afba8c314ad33d812f22a04991b90e2aaa
Mit John bekommen wir das Kennwort zu dem User entschlüsselt.
Mithilfe des Passworts und Users können wir uns an der Website anmelden
Über die Hilfe finden wir auch gleich die installierte Version heraus
Die Version klingt vielversprechend und somit lade ich mir das exploit und schaue es mir genauer an. Das Exploit für anscheinend eine C# Code aus.
Ich passe das Script erstmal an, so dass ein Ping ausgeführt wird und meine VM anpingt.
Das ganze schaut gut aus
Ich lade mir die nishang reverse power shell und passe sie auf meine IP an.
Da der Download und Aufruf über Powershell einige Anführungszeichen enthält, lade ich mir den Payload kurzerhand in ein kleine Visual Studio Projekt und bekomme somit die korrekte Syntax heraus.
Ich passe mir den Payload an und rufe mir einen Listener, sowie HTTP Server auf
Der Aufruf funktioniert und ich bekomme eine Remote Shell als IIS User
Unter dem User Public finde ich die User.txt
Ich gehe die Seite Payload all the things durch und finde ein CVE welches ich ich ausprobiere: https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Windows%20-%20Privilege%20Escalation.md#example-with-windows-10—cve-2019-1322-usosvc
Tatsächlich kann ich den Service stoppen und anpassen.
Ich lade mir netcat (nc.exe) auf den Server und passe den Pfad entsprechend an. (Pfad und IP habe ich zwei mehrmals angepasst)
Ich starte wieder einen Listener und starte den Dienst und bekomme auch direkt eine Reverse Shell