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

Schreibe einen Kommentar