
mssqlproxy ist ein Toolkit, das darauf abzielt, laterale Bewegung in eingeschränkten Umgebungen über eine kompromittierte Microsoft SQL Server-Instanz mittels Socket-Wiederverwendung durchzuführen.
mssqlproxy ist ein Toolkit, das für laterale Bewegungen in eingeschränkten Umgebungen durch einen kompromittierten Microsoft SQL Server mittels Socket-Wiederverwendung ausgelegt ist. Der Client erfordert impacket und sysadmin-Rechte auf dem SQL-Server.
Bitte lesen Sie diesen Artikel sorgfältig, bevor Sie fortfahren.
Es besteht aus drei Teilen:
Sie können die Bibliotheken kompilieren oder von Releases (x64) herunterladen.
Um die Core-DLL zu generieren, importieren Sie einfach das Projekt in Visual Studio (reciclador.sln) und kompilieren Sie es.
Um die CLR-Assembly zu generieren, müssen Sie zunächst den C#-Compiler finden:
Get-ChildItem -Recurse "C:\Windows\Microsoft.NET\" -Filter "csc.exe" | Sort-Object fullname -Descending | Select-Object fullname -First 1 -ExpandProperty fullname
Dann,
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe /target:library .\assembly.cs
Sobald die beiden Bibliotheken kompiliert sind, laden Sie die Core-DLL (reciclador) auf den Zielserver hoch.
Die Authentifizierungsoptionen sind dieselben wie im ursprünglichen mssqlclient. mssqlproxy-Optionen:
proxy mode:
-reciclador path Remote path where DLL is stored in server
-install Installs CLR assembly
-uninstall Uninstalls CLR assembly
-check Checks if CLR is ready
-start Starts proxy
-local-port port Local port to listen on
-clr local_path Local CLR path
-no-check-src-port Use this option when connection is not direct (e.g. proxy)
Wir haben außerdem zwei Befehle (innerhalb der SQL-Shell) zum Herunter- und Hochladen von Dateien implementiert. In Bezug auf den Proxy haben wir vier Befehle:
-clr-Parameter angeben, um das generierte CLR aus einer lokalen DLL-Datei zu lesen.-reciclador), der mit dem upload-Befehl hochgeladen werden kann.-local-port nicht angegeben ist, horcht er auf Port 1337/tcp.Sobald der Proxy gestartet ist, können Sie Ihre proxychains einstecken ;)
Hinweis #1: Bei Verwendung einer nicht direkten Verbindung (z.B. Proxys dazwischen) ist das Flag -no-check-src-port erforderlich, damit der Server nur die Quelladresse überprüft.
Hinweis #2: Derzeit werden nur IPv4-Ziele unterstützt (weder DNS- noch IPv6-Adressen).
Hinweis #3: Vorsicht! Derzeit stürzt der MSSQL-Dienst ab, wenn Sie versuchen, mehrere gleichzeitige Verbindungen herzustellen.
Wichtig: Es ist wichtig, mssqlproxy durch Drücken von Strg+C auf dem Client zu beenden. Andernfalls kann der Server abstürzen und Sie müssen den MSSQL-Dienst manuell neu starten.
Pablo Martinez (@xassiz), Juan Manuel Fernandez (@TheXC3LL) [ www.blackarrow.net - www.tarlogic.com ]
Der gesamte in diesem Projekt enthaltene Code ist unter den Bedingungen der MIT-Lizenz lizenziert. Die mssqlclient.py basiert auf Impacket.