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
SQLRecon — Ein C# MS SQL Toolkit, das für offensive Aufklärung und Post-Exploitation entwickelt wurde. | Kitploit
Tools/GitHubGitHub/xforcered/sqlrecon
Privilege EscalationAufklärungPasswortangriffeExploitationLaterale BewegungPost-ExploitationPenetrationstestsRed TeamingDatenbanksicherheit
GitHubxforcered/sqlrecon

SQLRecon

Ein C# MS SQL Toolkit, das für offensive Aufklärung und Post-Exploitation entwickelt wurde.

39938vor 1 JahrVon 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
Repository anzeigen

  licence badge wiki Badge stars badge forks badge issues badge

SQLRecon

SQLRecon ist ein Microsoft-SQL-Server-Toolkit, das für offensive Aufklärung und Post-Exploitation entwickelt wurde. Detaillierte Informationen zur Verwendung der einzelnen Techniken finden Sie im Wiki.

Sie können eine Kopie von SQLRecon über die Seite Releases herunterladen. Alternativ können Sie die Lösung auch selbst kompilieren. Das sollte so unkompliziert sein wie das Klonen des Repos, das Doppelklicken auf die Lösungsdatei und das Erstellen.

Präventions-, Erkennungs- und Abhilfehinweise wurden ebenfalls für alle Verteidiger unter Ihnen bereitgestellt.

Schauen Sie sich meinen Blogbeitrag auf der IBM Security Intelligence-Website an. Wenn Sie Videos bevorzugen, sehen Sie sich meine Präsentation auf der Black Hat an.

Aufklärungsmodule (Enumeration Modules)

Aufklärungsmodule erfordern keinen anzugebenden Authentifizierungsanbieter. Diese Module müssen an das Flag für Aufklärungsmodule (/e:, /enum:) übergeben werden. Das Wiki enthält Details zur Verwendung von Aufklärungsmodulen.``` Info - Show information about the SQL server. /h:, /host -> SQL server hostname or IP. Multiple hosts supported. /port: -> (OPTIONAL) Defaults to 1434 (UDP). /t:, timeout: -> (OPTIONAL) Defaults to 3s.

SqlSpns - Use the current user token to enumerate the AD domain for MSSQL SPNs. /d:, /domain: -> (OPTIONAL) NETBIOS name or FQDN of domain.

root@kitploit:~
# Authentifizierungsanbieter

SQLRecon unterstützt eine Vielzahl von Authentifizierungsanbietern (`/a:, /auth:`), um die Interaktion mit einem Microsoft SQL Server zu ermöglichen.```
WinToken   - Use the current users token to authenticate against the SQL database
             /h:, /host:     -> SQL server hostname or IP

WinDomain  - Use AD credentials to authenticate against the SQL database
             /h:, /host:     -> SQL server hostname or IP. Multiple hosts supported.
             /d:, /domain:   -> NETBIOS name or FQDN of domain.
             /u:, /username: -> Username for domain user.
             /p:, /password: -> Password for domain user.

Local      - Use local SQL credentials to authenticate against the SQL database
             /h:, /host:     -> SQL server hostname or IP. Multiple hosts supported.
             /u:, /username: -> Username for local SQL user.
             /p:, /password: -> Password for local SQL user.

EntraID    - Use Azure EntraID credentials to authenticate against the Azure SQL database
             /h:, /host:     -> SQL server hostname or IP. Multiple hosts supported.
             /d:, /domain:   -> FQDN of domain (DOMAIN.COM).
             /u:, /username: -> Username for domain user.
             /p:, /password: -> Password for domain user.

AzureLocal - Use local SQL credentials to authenticate against the Azure SQL database
             /h:, /host:     -> SQL server hostname or IP. Multiple hosts supported.
             /u:, /username: -> Username for local SQL user.
             /p:, /password: -> Password for local SQL user.

Authentifizierungsanbieter - Weitere Details

  • Hosts: Das Host-Flag (/h:, host:) ist erforderlich und ermöglicht einen oder mehrere SQL-Server. Wenn Sie ein Modul gegen mehrere SQL-Server ausführen möchten, trennen Sie die Hosts durch ein Komma, z. B. /h:SQL01,10.10.10.2,SQL03.
  • Datenbank: SQLRecon verbindet sich standardmäßig mit der Datenbank master, dies kann jedoch optional geändert werden, indem über das Datenbank-Flag (/database:) ein benutzerdefinierter Datenbankname angegeben wird.
  • Debug: Das Flag /debug ist optional und zeigt alle SQL-Abfragen an, die von einem Modul ausgeführt werden, ohne sie tatsächlich auf den entfernten Host(s) auszuführen. Ein Beispiel hierfür finden Sie im Wiki.
  • Port: In einigen Fällen lauscht ein Microsoft SQL Server möglicherweise nicht auf einem Standard-TCP-Port. Beispiele hierfür sind Microsoft SQL Server-Failoverclustering oder dynamische TCP-Ports. SQLRecon verbindet sich standardmäßig über TCP-Port 1433 mit Datenbanken, dies kann jedoch optional über das Flag /port: geändert werden.
  • Timeout: Die Standardverbindungszeit für die SQL-Datenbank beträgt 3 Sekunden, dieser Wert kann jedoch optional geändert werden, indem ein Timeout-Wert (/t:, /timeout:) angegeben wird, der der Anzahl der Sekunden vor dem Beenden des Verbindungsversuchs entspricht.

Bitte beachten Sie, dass der Authentifizierungsanbieter EntraID voraussetzt, dass die Azure Active Directory Authentication Library (ADAL) oder Microsoft Authentication Library (MSAL) auf dem System vorhanden ist, von dem SQLRecon ausgeführt wird. Dies dient der Azure-EntraID-Authentifizierungs- und Autorisierungsfunktionalität.

SQL-Module

SQL-Module werden gegen eine oder mehrere Instanzen von Microsoft SQL Server ausgeführt. Diese Module müssen über das Modul-Flag (/m:, /module:) übergeben werden.

SQL-Module - Standard

Das Host-Flag (/h:, host:) ist erforderlich und ermöglicht einen oder mehrere SQL-Server. Wenn Sie ein Modul gegen mehrere SQL-Server ausführen möchten, trennen Sie die Hosts durch ein Komma, z. B. /h:SQL01,10.10.10.2,SQL03.

Das Wiki enthält Details zur Verwendung jedes Moduls, das die Ausführung auf einer oder mehreren Instanzen von SQL Server unterstützt.

SQL-Module - Impersonation

Impersonations-Module werden gegen eine oder mehrere Instanzen von Microsoft SQL Server ausgeführt, im Kontext eines impersonierten SQL-Benutzers. Alle Impersonations-Module haben die folgenden Mindestanforderungen:

  • Ein Impersonations-Benutzer muss angegeben werden (/i:, /iuser:).
  • Ein Modul, das Impersonation unterstützt, muss angegeben werden (/m:, /module:).

Das Wiki enthält Details zur Verwendung jedes Moduls, das die Ausführung mithilfe von Impersonation unterstützt.

SQL-Module - Verknüpft

Verknüpfte Module werden auf einer oder mehreren Instanzen eines verknüpften Microsoft SQL Server ausgeführt. Alle verknüpften Module haben die folgenden Mindestanforderungen:

  • Ein verknüpfter SQL-Server muss angegeben werden (/l:, /link:). Das Link-Flag erlaubt einen oder mehrere verknüpfte SQL-Server. Wenn SQL01 beispielsweise einen Link zu SQL02 und SQL01 einen Link zu DB04 hat, können Sie die verknüpften Hosts durch ein Komma trennen, und ein Modul wird auf jedem verknüpften SQL-Server ausgeführt, z. B. /l:SQL02,DB04.
  • Ein Modul, das die verknüpfte Ausführung unterstützt, muss angegeben werden (/m:, /module:).

Das Wiki enthält Details zur Verwendung jedes Moduls, das die Ausführung auf einer oder mehreren Instanzen eines verknüpften SQL-Servers unterstützt.

SQL-Module - Verknüpfte Kette

Module für verknüpfte Ketten werden auf dem letzten Microsoft SQL Server in einer Kette verknüpfter Server ausgeführt. Alle Module für verknüpfte Ketten haben die folgenden Mindestanforderungen:

  • Eine Kette verknüpfter SQL-Server muss im Flag /l:, /link: angegeben werden. Wenn SQL01 einen Link zu SQL02 hat und SQL02 einen Link zu PAYMENTS01, und Sie ein Modul auf PAYMENTS01 ausführen möchten, wäre das Argument /l:SQL02,PAYMENTS01.
  • Das Flag /chain muss enthalten sein, um das Modul gegen den letzten SQL-Server in der angegebenen verknüpften Kette auszuführen.
  • Ein Modul, das die Ausführung über verknüpfte Ketten unterstützt, muss angegeben werden (/m:, /module:).

Das Wiki enthält Details zur Verwendung jedes Moduls, das die Ausführung auf dem letzten in einer Kette verknüpfter SQL-Server angegebenen SQL-Server unterstützt.

SCCM-Module

SQLRecon verfügt über mehrere Module, die bei der Enumeration und dem Angriff auf Microsoft System Center Configuration Manager (SCCM) und Microsoft Endpoint Configuration Manager (ECM) helfen können. Der SCCM- oder ECM-Server benötigt eine Microsoft-SQL-Datenbank, die entweder lokal oder remote verfügbar gemacht ist.

SCCM-Module müssen über das SCCM-Modul-Flag (/s:, /sccm:) übergeben werden.

Die meisten SCCM-Module können im Kontext eines impersonierten SQL-Benutzers (/i:, /iuser:) ausgeführt werden.

Das Wiki enthält Details zur Verwendung jedes Moduls gegen eine SCCM/ECM-Datenbank.

SCCM-Module - Weitere Details
  • Das Modul Users listet alle Benutzer in der Tabelle RBAC_Admins auf. Dies sind alle Benutzer, die für eine bestimmte Zugriffsebene auf SCCM konfiguriert sind.
  • Das Modul Sites listet alle anderen Standorte mit Daten auf, die in der Tabelle DPInfo der SCCM-Datenbanken gespeichert sind. Dies kann zusätzliche Angriffswege bieten, da verschiedene Standorte auf unterschiedliche (unsichere) Weisen konfiguriert sein können.
  • Das Modul Logons fragt die Tabelle Computer_System_DATA ab, um alle zugeordneten SCCM-Clients zusammen mit dem Benutzer abzurufen, der sich zuletzt bei ihnen angemeldet hat. HINWEIS: Dies wird standardmäßig nur einmal pro Woche aktualisiert und ist nicht zu 100 % aktuell. Verwenden Sie /option: als optionales (nicht erforderliches) Argument, um SCCM-Clients zu filtern.
  • Das Modul TaskList liefert eine Liste aller in der SCCM-Datenbank gespeicherten Tasksequenzen, greift aber nicht auf die tatsächlichen Task-Dateninhalte zu.
  • Das Modul TaskData stellt alle in der SCCM-Datenbank gespeicherten Tasksequenzen wieder her und entschlüsselt sie in Klartext. Tasksequenzen können Anmeldedaten für das Hinzufügen von Systemen zu Domänen, das Zuordnen von Freigaben, das Ausführen von Befehlen usw. enthalten.

SQLRecon erweitern

Wenn Sie daran interessiert sind, SQLRecon zu erweitern, lesen Sie bitte den Abschnitt zum Beitragen und Erweitern im Wiki.

Ich ermutige Sie, ein Issue zu eröffnen, wenn Sie Vorschläge oder Ideen haben.

Roadmap

Das Ziel ist es, SQLRecon kontinuierlich zu verbessern. Nachfolgend sind einige geplante Forschungsbereiche aufgeführt:

  • Implementieren Sie Unterstützung für die Authentifizierung auf Basis von NTLM-Hashes.
  • Untersuchen Sie die Funktionalitäten von enablerpc/disablerpc für verknüpfte und verkettete SQL-Server.

Danksagungen

Die folgenden Personen haben direkt oder indirekt zu verschiedenen Aspekten von SQLRecon beigetragen.

  • Adam Chester (xpn)
  • Azaël Martin (n3rada)
  • Daniel Duggan (rasta-mouse)
  • Dave Cossa (G0ldenGunSec)
  • Dwight Hohnstein (djhohnstein)
  • Joshua Magri (passthehashbrowns)

Versionsgeschichte

v3.9
  • Hinzugefügt: Datenbanken, auf die der Benutzer Zugriff hat, im Modul whoami (JBalanza).
  • Behoben: Ein Problem im Modul adsi, bei dem der LDAP-Server nicht zur msdb-Datenbank hinzugefügt werden muss; die erstellte Funktion wird nun auch ordnungsgemäß entfernt.
  • Behoben: Ein Problem, bei dem RPC-Abfragen mit einer AT-Anweisung auf dem Zielserver fehlschlagen, wenn der angegebene Hostname ein FQDN ist.
  • README aktualisiert.
  • Wiki aktualisiert.
v3.8
  • Logik hinzugefügt, um die Ausführung von CLR-Assemblys auf SQL Server 2016 und älter zu unterstützen. Dies betrifft das clr-Modul. Die Ausführung wird in allen Kontexten unterstützt.
  • Logik hinzugefügt, um eine LDAP-Server-CLR-Assembly auf SQL Server 2016 und älter zu laden. Dies betrifft das adsi-Modul. Die Ausführung wird in allen Kontexten unterstützt.
  • README aktualisiert.
  • Wiki aktualisiert.
v3.7
  • Vollständiges Refactoring der Codebasis.
  • Dokumentation aktualisiert (Codekommentare, README und Wiki).
  • Ausführung gegen eine Kette verknüpfter SQL-Server. Wenn z. B. SQL01 einen Link zu SQL02 hat, SQL02 einen Link zu SQL03 und SQL03 einen Link zu PAYMENTS01, ist es nun möglich, Befehle von SQL01 auf PAYMENTS01 über die Kette verknüpfter Server auszuführen (/link:SQL02,SQL03,PAYMENTS01 /chain). Dank an Azaël Martin (n3rada).
  • Module 'l' und 'i' entfernt und Kontextlogik eingeführt, sodass Modulnamen für Standard-, Impersonations-, verknüpfte und Kettenausführung gleich sein können.
  • Kettenunterstützung für alle verknüpften Module hinzugefügt.
  • Unterstützung für Debug (/debug) hinzugefügt, das verschiedene Debug-Informationen und alle SQL-Abfragen anzeigt, die von einem Modul ausgeführt werden, ohne sie auszuführen.
v3.6
  • Die Ausführung gegen mehrere SQL-Server, die im Flag /host oder /h angegeben sind, wird nun mit durch Kommas getrennten Werten unterstützt.
  • Die Ausführung gegen mehrere verknüpfte SQL-Server, die im Flag /link oder /l angegeben sind, wird nun mit durch Kommas getrennten Werten unterstützt.
  • /lhost in /link geändert.
  • 's'-Module entfernt und den Schalter /s, /sccm für SCCM-Module erstellt.
  • Impersonationsunterstützung für alle SCCM-Module hinzugefügt, mit Ausnahme von DecryptCredentials.
  • Ein neues Enumerationsmodul (/enum) namens info hinzugefügt, das einen nicht authentifizierten Kontext nutzen kann, um SQL-Serverinformationen einschließlich Instanzname und TCP-Port über das UDP-Protokoll zu erhalten.
v3.5
  • Fehlerbehebung, bei der die verknüpfte adsi-Ausführung den LDAP-Server nicht entfernte.
  • Agent-Job-Ausführung aus verknüpftem adsi entfernt, zugunsten von openquery/rpc.
  • /lhost in /adsi im adsi-Modul geändert.
  • /rhost in /unc im smb-Modul geändert.
  • CaptureHash.cs entfernt und Logik vereinfacht.
  • SetEnumerationType.cs entfernt und Logik vereinfacht.
  • Impersonation.cs in Impersonate.cs umbenannt.
  • OleCmdExec.cs in umbenannt.
v3.4
  • Impersonationsunterstützung für das Modul smb hinzugefügt.
  • Impersonationsunterstützung für das Modul info hinzugefügt.
  • Unterstützung für verknüpfte Ausführung für das Modul info hinzugefügt.
v3.3
  • Module rows, iRows und lRows erstellt.
  • sLogons aktualisiert, um einen optionalen Filter einzuschließen.
  • Fehlerbehebung, bei der xp_cmdshell-Module die Befehlsausgabe nicht auf der Konsole ausgaben.
  • Hilfemenü bereinigt.
v3.2
  • Überarbeitung der Befehlszeilenargument-Parsing.
  • README, Testfälle und Wiki mit neuen Beispielen aktualisiert.
  • Argument-Parsing auf Basis von Enumeration und Authentifizierung überarbeitet.
  • SetEnumerationType.cs erstellt.
  • Enumerationsmodul domain in SqlSpns geändert.
v3.1* Konstruktor von `SetAuthenticationType.cs` in eine neue Methode namens `EvaluateAuthenticationType` umgewandelt. * `CreateSqlConnectionObject` in `SetAuthenticationType.cs` erstellt, das SQLRecon erweitert, um mehrere gleichzeitige SQL-Verbindungsobjekte zu unterstützen. * `ADSI.cs` erstellt, das ADSI-Credential-Angriffe integriert, wie [hier](https://www.tarlogic.com/blog/linked-servers-adsi-passwords/) beschrieben. * Module `adsi`, `iAdsi` und `lAdsi` erstellt. * Module `lLinks` und `iLinks` erstellt. * README, Testfälle und Wiki mit neuen Beispielen aktualisiert.
v3.0
  • Fehlerprüfung für nicht existierende impersonierte Benutzer implementiert.
  • ExecuteImpersonationQuery und ExecuteImpersonationCustomQuery erstellt.
  • Impersonate.cs gelöscht
  • Modul checkRpc hinzugefügt.
  • Modul iCheckRpc hinzugefügt.
  • Modul lCheckRpc hinzugefügt.
  • SCCM-Module überarbeitet.
  • SCCM-Argumentparsing überarbeitet.
  • Befehle im Hilfemenü zur besseren Lesbarkeit in Camel Case geschrieben.
  • Tests mit neuen Modulen aktualisiert.
v2.9
  • EnableDisable.cs in ConfigureOptions.cs umbenannt
  • Erweiterte Optionskonfigurationen überarbeitet.
  • RPC-Fehlerprüfung überall dort implementiert, wo ExecuteLinkedCustomQueryRpcExec aufgerufen wird.
v2.8
  • Erstellt PrintUtils.cs, das eine Print-Klasse für standardisierte Ausgabe implementiert.
  • TablePrinter von Help.cs nach PrintUtils.cs verschoben.
  • Druckformatierung für alle Konsolenausgaben mithilfe der Klasse PrintUtils standardisiert.
  • Zugriffsmodifizierer für Klassen und Klassenvariablen geändert.
  • Prüfung hinzugefügt, ob das Ergebnis für Folgendes leer ist:
    • query
    • search
    • tables
    • lColumns
    • lQuery
    • lSearch
    • lTables
    • iColumns
v2.7
  • Authentifizierung Azure in AzureAD geändert.
  • Authentifizierung AzureLocal erstellt.
  • Modul disableRpc hinzugefügt.
  • Modul enableRpc hinzugefügt.
  • Modul iEnableRpc hinzugefügt.
  • Modul iDisableRpc hinzugefügt.
  • Modul lEnableRpc entfernt.
  • Modul lDisbleRpc entfernt.
  • Tests mit neuen Modulen aktualisiert.
v2.6.1
  • Fehlerbehebungen für lAgentCmd.
  • Stabilitätsprobleme von clr, iClr und lClr durch Verwendung von SqlCommand.ExecuteNonQuery beim Erstellen der gespeicherten Prozedur behoben.
  • Fehler in lClr behoben, bei dem erstellte Assemblys oder gespeicherte Prozeduren nicht entfernt wurden.
v2.6
  • Modul columns hinzugefügt.
  • Modul iColumns hinzugefügt.
  • Modul iDatabases hinzugefügt.
  • Modul iSearch hinzugefügt.
  • Modul iTables hinzugefügt.
  • Modul lColumns hinzugefügt.
  • Modul lSearch hinzugefügt.
v2.5
  • Verschiedene Fehler in den SCCM-Modulen behoben.
  • Hilfemenü mithilfe einer Tabelle organisiert.
  • Die Ausgabe von ExecuteLinkedCustomQueryRpcExec verbessert.
  • Codekommentare im gesamten Code verbessert.
  • Konsistenz der Methodennamen in den Befehlsausführungsfunktionen verbessert.
  • Modularität durch bessere Nutzung der objektorientierten Programmierung verbessert.
  • Flag für den benutzerdefinierten SQL-Server-Port zu x geändert.
  • Random.cs in das Verzeichnis utilities verschoben.
  • Druckstil für mehr Konsistenz über alle Module hinweg standardisiert.
  • Test-Harnessen für Standard-, Impersonations- und verknüpfte Server erstellt.
v2.4
  • Authentifizierung Windows in WinToken geändert.
  • Authentifizierung WinDomain erstellt, die AD-Domänenbenutzername und -passwort zur Authentifizierung über Impersonation verwendet. Siehe Impersonation.cs.
  • Argumentparsing und -verarbeitung in ArgumentLogic.cs, SQLAuthentication.cs und ModuleHandler.cs überarbeitet.
  • ModuleHandler.cs verwendet keine massive if/else if/else-Anweisung mehr, um Module auszuführen. Stattdessen wird jetzt Reflection verwendet, um Methoden aufzurufen, die den Namen der Befehlsmodule entsprechen.
  • Verzeichnis commands hinzugefügt, das globale Variablen enthält, die im gesamten Programm verwendet werden.
  • Alle Authentifizierungsanbieter in SQLAuthentication.cs zusammengeführt.
  • Argumentparsing von Program.cs nach ArgumentLogic.cs verschoben.
v2.3
  • SCCM-Funktionalität hinzugefügt.
  • SCCM-Module hinzugefügt, die mit dem Befehl sccm ausgeführt werden können.
  • Fehler bei der Prüfung des RPC-Status auf verknüpften SQL-Servern behoben.
  • Die Möglichkeit hinzugefügt, .NET-Assemblys über HTTP/S herunterzuladen.
v2.2
  • Rollen erweitert, die in den Modulen roles, iRoles und lRoles abgefragt werden.
  • Module users, iUsers und lUsers erstellt.
  • Problem behoben, bei dem der Hash nicht aus sp_drop_trusted_assembly in den Modulen clr und iClr entfernt wurde.
  • Modul lAgentCmd erstellt.
  • Modul lClr erstellt.
v2.1.6
  • Modul info hinzugefügt.
  • Korrekturen im Hilfemenü.
  • Probleme mit Pflichtargumenten bei der Authentifizierung mit Local und Azure behoben.
v2.1.5
  • Modul zum Aufzählen von Domänen-SPNs hinzugefügt (-e domain).
v2.1.4
  • Kleines Problem bei der String-Formatierung behoben.
v2.1.3
  • Flag -r in den Authentifizierungsmodi Windows und Local hinzugefügt, damit nicht standardmäßige TCP-Ports angegeben werden können.
v2.1.2
  • Logik rund um Null-Connection-Strings verbessert.
v2.1.1
  • Environment.Exit aus TestAuthentication.cs entfernt.
v2.1
  • AgentJobs.cs erstellt.
  • agentStatus erstellt.
  • iAgentStatus erstellt.
  • lAgentStatus erstellt.
  • agentCmd erstellt.
  • iAgentCmd erstellt.
v2.0
  • clr erstellt.
  • iEnableClr erstellt.
  • iDisbleClr erstellt.
  • iClr erstellt.
  • iWhoami erstellt.
  • iMapped erstellt.
  • iRoles erstellt.
  • lEnableRpc erstellt.
  • lDisableRpc erstellt.
  • lWhoai erstellt.
  • lEnableXp erstellt.
  • lDisableXp erstellt.
  • lEnableOle erstellt.
  • lDisableOle erstellt.
v1.2
  • Modul lSmb erstellt.
  • Modul lWhoami erstellt.
  • Modul lRoles erstellt.
v1.1
  • Modul oldCmd behoben.
  • Modul iOleCmd behoben.
  • Modul lDatabases behoben.
  • Modul lTables behoben.
  • Codebasis bereinigt.
  • Inkonsistenzen im Hilfemenü korrigiert.
Tool herunterladen
  • Verbose: Das Flag /v, /verbose ist optional und zeigt alle SQL-Abfragen an, die von einem Modul ausgeführt werden, bevor sie auf den entfernten Host(s) ausgeführt werden. Ein Beispiel hierfür finden Sie im Wiki.
  • ModulnameBeschreibungImpersonationVerknüpfte AusführungVerkettete AusführungErfordert privilegierten Kontext
    CheckRpcListet verknüpfte Server und deren RPC-Status auf.✅✅✅❎
    DatabasesZeigt alle Datenbanken an.✅✅✅❎
    ImpersonateListet Benutzerkonten auf, die impersoniert werden können.✅✅✅❎
    InfoZeigt Informationen über den SQL-Server an.✅✅✅❎
    LinksListet verknüpfte SQL-Server auf.✅✅✅❎
    UsersZeigt an, welche Benutzerkonten und Gruppen sich an der Datenbank authentifizieren können.✅✅✅❎
    WhoamiZeigt Ihre Berechtigungen an.✅✅✅❎
    Query /c:QUERYFührt eine SQL-Abfrage aus.✅✅✅❎
    Smb /unc:UNC_PATHErfasst NetNTLMv2-Hash.✅✅✅❎
    Columns /db:DATABASE /table:TABLEZeigt alle Spalten in der angegebenen Datenbank und Tabelle an.✅✅✅❎
    Rows /db:DATABASE /table:TABLEZeigt die Anzahl der Zeilen in der angegebenen Datenbanktabelle an.✅✅✅❎
    Search /keyword:KEYWORDSucht Spaltennamen in der angegebenen Tabelle der verbundenen Datenbank.✅✅✅❎
    Tables /db:DATABASEZeigt alle Tabellen in der angegebenen Datenbank an.✅✅✅❎
    EnableRpc /rhost:LINKED_HOSTAktiviert RPC und RPC out auf einem verknüpften Server.✅❌❌✔️
    EnableClrAktiviert CLR-Integration.✅✅✅✔️
    EnableOleAktiviert OLE-Automatisierungsprozeduren.✅✅✅✔️
    EnableXpAktiviert xp_cmdshell.✅✅✅✔️
    DisableRpc /rhost:LINKED_HOSTDeaktiviert RPC und RPC out auf einem verknüpften Server.✅❌❌✔️
    DisableClrDeaktiviert CLR-Integration.✅✅✅✔️
    DisableOleDeaktiviert OLE-Automatisierungsprozeduren.✅✅✅✔️
    DisableXpDeaktiviert xp_cmdshell.✅✅✅✔️
    AgentStatusZeigt an, ob der SQL-Agent ausgeführt wird, und ruft Agent-Aufträge ab.✅✅✅✔️
    AgentCmd /c:COMMANDFührt einen Systembefehl mithilfe von Agent-Aufträgen aus.✅✅✅✔️
    Adsi /adsi:SERVER_NAME /lport:LOCAL_PORTRuft Klartext-ADSI-Anmeldedaten von einem verknüpften ADSI-Server ab.✅✅✅✔️
    Clr /dll:DLL /function:FUNCTIONLädt und führt eine .NET-Assembly in einer benutzerdefinierten gespeicherten Prozedur aus.✅✅✅✔️
    OleCmd /c:COMMAND /subsystem:(OPTIONAL)Führt einen Systembefehl mithilfe von OLE-Automatisierungsprozeduren aus.✅✅✅✔️
    XpCmd /c:COMMANDFührt einen Systembefehl mithilfe von xp_cmdshell aus.✅✅✅✔️
    ModulnameBeschreibungImpersonationErfordert privilegierten Kontext
    UsersZeigt alle SCCM-Benutzer an.✅❎
    SitesZeigt alle anderen Standorte mit gespeicherten Daten an.✅❎
    LogonsZeigt alle zugeordneten SCCM-Clients und den zuletzt angemeldeten Benutzer an.✅❎
    CredentialsZeigt verschlüsselte Anmeldedaten an, die von SCCM sicher gespeichert werden.✅❎
    TaskListZeigt alle Tasksequenzen an, greift jedoch nicht auf die Taskdateninhalte zu.✅❎
    TaskDataEntschlüsselt alle Tasksequenzen in Klartext.✅❎
    DecryptCredentialsEntschlüsselt einen SCCM-Anmeldeinformations-Blob. Muss in einem Prozess mit hoher Integrität oder als SYSTEM auf dem SCCM-Server ausgeführt werden.❌✔️
    AddAdmin /user:DOMAIN\USERNAME /sid:SIDStuft ein angegebenes Konto in SCCM zu einem 'Volladministrator' hoch.✅✔️
    RemoveAdmin /user:ADMIN_ID /remove:STRINGEntfernt Berechtigungen eines Benutzers oder entfernt einen Benutzer vollständig aus der SCCM-Datenbank.✅✔️
  • Das Modul Credentials listet Anmeldedaten auf, die von SCCM für verschiedene Funktionen sicher gespeichert werden. Diese Anmeldedaten können nicht remote entschlüsselt werden, da der Schlüssel auf dem SCCM-Server gespeichert ist. Dieses Modul liefert jedoch Hinweise, ob es sinnvoll ist, zu versuchen, den Schlüssel zu erlangen.
  • Das Modul DecryptCredentials versucht, wiederhergestellte SCCM-Anmeldeinformations-Blobs zu entschlüsseln. Dieses Modul muss in einem Prozess mit hoher Integrität oder als SYSTEM auf einem SCCM-Server ausgeführt werden.
  • Das Modul AddAdmin stuft das angegebene Konto innerhalb von SCCM zu einem 'Volladministrator' hoch. Wenn der Zielbenutzer bereits ein SCCM-Benutzer ist, fügt dieses Modul stattdessen die erforderlichen Berechtigungen hinzu, um die Höherstufung zu erreichen. Geben Sie zwei Argumente an, entweder /user:current /sid:current, wenn der Benutzer, der derzeit den SQLRecon-Prozess ausführt, als 'Volladministrator' in SCCM hinzugefügt werden soll. Wenn Sie einen anderen Benutzer als 'Volladministrator' in SCCM hinzufügen möchten, geben Sie dessen Domänenbenutzernamen und vollständige SID an: /user:DOMAIN\USERNAME /sid:S-1-5-.... Dieses Modul erfordert sysadmin- oder ähnliche Berechtigungen, da das Schreiben in SCCM-Datenbanktabellen erforderlich ist.
  • Das Modul RemoveAdmin entfernt die Berechtigungen eines Benutzers, indem ein neu hinzugefügter Benutzer vollständig aus der SCCM-Datenbank entfernt wird. Wenn der Benutzer bereits in irgendeiner Form existierte, entfernt dieses Modul nur die drei Rollen, die dem Konto über Schreibvorgänge in die Berechtigungstabelle hinzugefügt wurden. Verwenden Sie die Argumente, die von der Ausgabe des Befehls sAddAdmin bereitgestellt werden, um diesen Befehl auszuführen. Dieses Modul erfordert sysadmin- oder ähnliche Berechtigungen, da das Schreiben in SCCM-Datenbanktabellen erforderlich ist.
  • Verbose (/verbose, /v) hinzugefügt, das alle SQL-Abfragen anzeigt, die während der Modulausführung ausgeführt werden.
  • Timeout (/timeout, /t) hinzugefügt, das einen ganzzahligen Wert für den SQL-Server-Datenbankverbindungs-Timeout akzeptiert.
  • Modul links verbessert, um detaillierte Informationen einzuschließen. Dank an Azaël Martin (n3rada).
  • Modul whoami verbessert, um Windows-Prinzipale und Datenbankbenutzer einzuschließen. Dank an Azaël Martin (n3rada).
  • Modul impersonation verbessert, um Windows-Prinzipale und Datenbankbenutzer einzuschließen. Dank an Azaël Martin (n3rada).
  • IP-Adressabruf in das Enumerationsmodul sqlspns aufgenommen. Dank an Azaël Martin (n3rada).
  • Konsolenausgabe standardisiert, wo anwendbar, auf Markdown. Dank an Azaël Martin (n3rada).
  • DNS-Unterstützung für das Modul /enum:info hinzugefügt.
  • Optionales Argument /subsystem zum Modul olecmdexec hinzugefügt, das die Ausführung mithilfe der OLE-Automatisierungs-Subsysteme CmdExec oder PowerShell akzeptiert.
  • Test-Harnesses aktualisiert, um CLI-Änderungen und neue Module widerzuspiegeln.
  • AzureAD-Authentifizierung zu EntraID geändert.
  • Argumentlogik in einzelne Methoden innerhalb von ModuleHandler.cs verschoben, um Vereinfachung und Erweiterbarkeit zu fördern.
  • Alle SQL-Abfragen nach Queries.cs verschoben.
  • EnumerationModules.cs erstellt.
  • FormatQuery.cs erstellt.
  • SccmModules.cs erstellt.
  • ModuleHandler.cs in SqlModules.cs umbenannt.
  • OleAutomation.cs
  • PrintUtils.cs in Print.cs umbenannt.
  • SQLServerInfo.cs in Info.cs umbenannt.
  • iQuery
  • iSearch
  • Signifikante Zuverlässigkeits- und Funktionstests mit allen Authentifizierungsanbietern und Modulen.
  • Das Verzeichnis authentication entfernt.
  • Codestil geändert, um dem Codestil-Leitfaden von Microsoft für C#/.NET besser zu folgen.
  • Help.cs von einer Methode in einen Konstruktor geändert.
  • CaptureHash.cs von einer Methode in einen Konstruktor geändert.
  • Impersonate.cs von einer Methode in einen Konstruktor geändert.
  • Gesamte Codebasis refaktoriert.
  • lEnableClr erstellt.
  • lDisableClr erstellt.
  • lXpCmd erstellt.
  • lXpOle erstellt.
  • Random.cs erstellt.
  • EnableDisable.cs erstellt.
  • Zufällig generierte Assemblynamen für clr implementiert.
  • Zufällig generierte Variablen- und Methodennamen für ole implementiert.
  • Module mapped und roles in whoami zusammengeführt.
  • Module lMapped und lRoles in lWhoami zusammengeführt.
  • Module iMapped und iRoles in iWhoami zusammengeführt.
  • Gesamte Codebasis refaktoriert.