
Ein C#-MS-SQL-Toolkit für offensive Aufklärung und Post-Exploitation.
SQLRecon ist ein Microsoft SQL Server-Toolkit, das für offensive Aufklärung und Post-Exploitation entwickelt wurde. Detaillierte Informationen zur Verwendung jeder Technik finden Sie im Wiki.
Sie können eine Kopie von SQLRecon von der Releases-Seite herunterladen. Alternativ können Sie die Lösung selbst kompilieren. Dies sollte so einfach sein wie das Klonen des Repos, Doppelklicken auf die Lösungsdatei und Erstellen.
Präventions-, Erkennungs- und Minderungsanleitung wurde auch für all die Verteidiger da draußen bereitgestellt.
Lesen Sie meinen Blogbeitrag auf der IBM Security Intelligence-Website. Wenn Sie Videos bevorzugen, sehen Sie sich meine Präsentation auf der Black Hat an.
Aufklärungsmodule erfordern keinen Authentifizierungsanbieter. Diese Module müssen über 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.
# 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.
Pth - Authenticate using an NT hash (pass-the-hash) over raw TDS/NTLM. Elevated privileges or SeImpersonate is not required.
/h:, /host: -> SQL server hostname or IP. Multiple hosts supported.
/d:, /domain: -> NETBIOS domain name.
/u:, /username: -> Domain username.
/hash: -> NT hash (32 hex chars, 8846f7eaee8fb117ad06bdd830b7586c) or LM:NT format.
/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.master-Datenbank, dies kann jedoch optional geändert werden, indem ein benutzerdefinierter Datenbankname über das Datenbank-Flag (/database:) angegeben wird./debug-Flag ist optional und zeigt alle SQL-Abfragen an, die von einem Modul ausgeführt werden, ohne sie tatsächlich auf dem/den entfernten Host(s) auszuführen. Ein Beispiel hierfür finden Sie im Wiki.1433 mit Datenbanken, dies kann jedoch optional mit dem /port:-Flag geändert werden.3 Sekunden, dieser Wert kann jedoch optional durch Angabe eines Timeout-Werts (/t:, /timeout:) geändert werden, der der Anzahl der Sekunden vor dem Beenden des Verbindungsversuchs entspricht.Bitte beachten Sie, dass der EntraID-Authentifizierungsanbieter erfordert, dass die Azure Active Directory Authentication Library (ADAL) oder die Microsoft Authentication Library (MSAL) auf dem System vorhanden ist, von dem SQLRecon ausgeführt wird. Dies dient der Azure EntraID-Authentifizierung und Autorisierungsfunktionalität.
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.
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.
Impersonierungsmodule werden gegen eine oder mehrere Instanzen von Microsoft SQL Server im Kontext eines impersonierten SQL-Benutzers ausgeführt. Alle Impersonierungsmodule haben die folgenden Mindestanforderungen:
/i:, /iuser:)./m:, /module:).Das Wiki enthält Details zur Verwendung jedes Moduls, das die Ausführung unter Verwendung von Impersonierung unterstützt.
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:
/l:, /link:). Das Link-Flag ermöglicht 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./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.
Verkettete Kettenmodule werden auf dem letzten Microsoft SQL-Server in einer verknüpften Serverkette ausgeführt. Alle verketteten Kettenmodule haben die folgenden Mindestanforderungen:
/l:, /link:-Flag angegeben werden. Wenn SQL01 einen Link zu SQL02 und SQL02 einen Link zu PAYMENTS01 hat und Sie ein Modul auf PAYMENTS01 ausführen möchten, wäre das Argument /l:SQL02,PAYMENTS01./chain-Flag muss enthalten sein, um das Modul gegen den letzten SQL-Server in der angegebenen verknüpften Kette auszuführen./m:, /module:).Das Wiki enthält Details zur Verwendung jedes Moduls, das die Ausführung auf dem letzten SQL-Server in einer verknüpften SQL-Serverkette unterstützt.
SQLRecon verfügt über mehrere Module, die bei der Aufzählung und dem Angriff auf Microsoft System Center Configuration Manager (SCCM) und Microsoft Endpoint Configuration Manager (ECM) helfen können. Der SCCM- oder ECM-Server muss eine Microsoft SQL-Datenbank entweder lokal oder remote verfügbar machen.
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.
Users-Modul listet alle Benutzer in der RBAC_Admins-Tabelle auf. Dies sind alle Benutzer, die für einen bestimmten Zugriff auf SCCM konfiguriert sind.Sites-Modul listet alle anderen Sites mit Daten in der DPInfo-Tabelle der SCCM-Datenbanken auf. Dies kann zusätzliche Angriffsmöglichkeiten bieten, da verschiedene Sites auf unterschiedliche (unsichere) Weise konfiguriert sein können.Logons-Modul fragt die Computer_System_DATA-Tabelle ab, um alle zugehörigen 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.TaskList-Modul liefert eine Liste aller in der SCCM-Datenbank gespeicherten Tasksequenzen, greift aber nicht auf die tatsächlichen Inhalte der Aufgabendaten zu.TaskData-Modul stellt alle in der SCCM-Datenbank gespeicherten Tasksequenzen wieder her und entschlüsselt sie in Klartext. Tasksequenzen können Anmeldeinformationen zum Beitreten von Systemen zu Domänen, zum Zuordnen von Freigaben, zum Ausführen von Befehlen usw. enthalten.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.
Das Ziel ist die kontinuierliche Verbesserung von SQLRecon. Nachfolgend sind einige geplante Forschungsbereiche aufgeführt:
Die folgenden Personen haben direkt oder indirekt zu verschiedenen Aspekten von SQLRecon beigetragen.
/auth:pth). Implementiert rohe TDS/NTLM-Authentifizierung über PTHTdsConnection, NtlmHelper und PthState, sodass alle Module ohne Klartext-Anmeldeinformationen oder erweiterte Berechtigungen funktionieren. Wichtige Korrekturen umfassen ANSI-Sitzungsoptionen nach dem Login, TDS-Aufteilung in mehrere Pakete, TCP-Fluss-Deadlock-Behandlung für gleichzeitige CLR-Verbindungen und OPENQUERY-Klammernotation-Kompatibilität._linkedChainRpcQuery.System.Byte[] nie korrekt konvertiert und auf der Konsole ausgegeben wurde.credentialobjectss und proxies hinzugefügt (jakxx).agentcmd hinzugefügt (jakxx).role über eine verknüpfte Kette nicht richtig funktionierte (passthehashbrowns).impersonate-Modul über eine verknüpfte Kette nicht richtig funktionierte (passthehashbrowns).EnableRpc/DisableRpc nicht über verknüpfte Ketten verfügbar war (passthehashbrowns).XpCmd-Modul nicht über verknüpfte Ketten funktionierte; jetzt wird auch die Ausgabe unterstützt (passthehashbrowns).EXEC AT-Abfragen verursachen, es sei denn, sie sind von Klammern umgeben, was Probleme verursacht, wenn der verknüpfte Servername eine IP-Adresse oder ein FQDN ist (passthehashbrowns)..First-Funktion, die eine "0" zurückgibt. Ich habe es so aktualisiert, dass die LinkedChainQuery-Funktion ein neues Array mit einer "0" am Anfang erstellt und dann die bestehende Logik in einer separaten Funktion aufruft, die jetzt heißt (passthehashbrowns).impersonate-Modul behoben, um sysadmin-Fälle korrekt zu behandeln (n3rada).scriptdata und cidata implementiert (G0ldenGunSec).auditstatus erstellt, um zu prüfen, ob SQL-Überwachung vorhanden ist (chryzsh).whoami-Modul hinzugefügt (JBalanza).adsi-Modul behoben, bei dem der LDAP-Server nicht zur msdb-Datenbank hinzugefügt werden musste; außerdem wird die erstellte Funktion jetzt ordnungsgemäß gelöscht./host oder /h angegeben werden, wird jetzt durch kommagetrennte Werte unterstützt./link oder /l angegeben werden, wird jetzt durch kommagetrennte Werte unterstützt./lhost in /link geändert.s'-Module entfernt und den Schalter /s, /sccm für SCCM-Module erstellt.DecryptCredentials./enum) namens info hinzugefügt, das einen nicht authentifizierten Kontext verwenden kann, um SQL-Server-Informationen einschließlich Instanzname und TCP-Port über das UDP-Protokoll zu erhalten.adsi-Ausführung entfernte den LDAP-Server nicht.adsi zugunsten von openquery/rpc entfernt./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 OleAutomation.cs umbenannt.smb-Modul hinzugefügt.info-Modul hinzugefügt.info-Modul hinzugefügt.rows, iRows und lRows-Module erstellt.sLogons um einen optionalen Filter aktualisiert.xp_cmdshell-Module die Befehlsausgabe nicht auf der Konsole ausgaben.SetEnumerationType.cs erstellt.domain in SqlSpns geändert.SetAuthenticationType.cs in eine neue Methode namens EvaluateAuthenticationType geändert.CreateSqlConnectionObject in SetAuthenticationType.cs erstellt, das SQLRecon erweitert, um mehrere gleichzeitige SQL-Verbindungsobjekte zu unterstützen.ADSI.cs erstellt, das ADSI-Anmeldeinformationsangriffe wie hier beschrieben, integriert.adsi, iAdsi und lAdsi-Module erstellt.lLinks und iLinks-Module erstellt.ExecuteImpersonationQuery und ExecuteImpersonationCustomQuery erstellt.Impersonate.cs gelöscht.checkRpc-Modul hinzugefügt.iCheckRpc-Modul hinzugefügt.lCheckRpc-Modul hinzugefügt.EnableDisable.cs in ConfigureOptions.cs umbenannt.ExecuteLinkedCustomQueryRpcExec aufgerufen wird.PrintUtils.cs erstellt, das eine Druckklasse für standardisierte Ausgabe implementiert.TablePrinter von Help.cs nach PrintUtils.cs verschoben.PrintUtils-Klasse standardisiert.querysearchtableslColumnslQuerylSearchlTablesiColumnsAzure-Authentifizierung in AzureAD geändert.AzureLocal-Authentifizierung erstellt.disableRpc-Modul hinzugefügt.enableRpc-Modul hinzugefügt.iEnableRpc-Modul hinzugefügt.iDisableRpc-Modul hinzugefügt.lEnableRpc-Modul entfernt.lDisableRpc-Modul entfernt.lAgentCmd-Fehlerbehebungen.clr, iClr und lClr-Stabilität durch Verwendung von SqlCommand.ExecuteNonQuery beim Erstellen der gespeicherten Prozedur behoben.lClr-Fehler behoben, bei dem erstellte Assemblys oder gespeicherte Prozeduren nicht entfernt wurden.columns-Modul hinzugefügt.iColumns-Modul hinzugefügt.iDatabases-Modul hinzugefügt.iSearch-Modul hinzugefügt.iTables-Modul hinzugefügt.lColumns-Modul hinzugefügt.lSearch-Modul hinzugefügt.ExecuteLinkedCustomQueryRpcExec verbessert.x geändert.Random.cs in das utilities-Verzeichnis verschoben.Windows-Authentifizierung in WinToken geändert.WinDomain-Authentifizierung erstellt, die AD-Domänenbenutzername und -Passwort für die Authentifizierung über Impersonation verwendet. Siehe Impersonation.cs.ArgumentLogic.cs, SQLAuthentication.cs und ModuleHandler.cs überarbeitet.ModuleHandler.cs verwendet keine massive if/else if/else-Anweisung mehr zur Ausführung von Modulen. Stattdessen wird jetzt Reflektion verwendet, um Methoden aufzurufen, die mit den Befehlsmodulnamen übereinstimmen.commands hinzugefügt, das globale Variablen enthält, die im gesamten Programm verwendet werden.SQLAuthentication.cs zusammengefasst.Program.cs nach ArgumentLogic.cs verschoben.sccm ausgeführt werden können.roles, iRoles und lRoles abgefragt werden.users, iUsers und lUsers erstellt.sp_drop_trusted_assembly in den Modulen clr und iClr nicht gelöscht wurde.lAgentCmd-Modul erstellt.lClr-Modul erstellt.info-Modul hinzugefügt.Local- und Azure-Authentifizierung behoben.-e domain).-r zu den Authentifizierungsmodi Windows und Local hinzugefügt, damit nicht standardmäßige TCP-Ports angegeben werden können.Environment.Exit aus TestAuthentication.cs entfernt.AgentJobs.cs erstellt.agentStatus erstellt.iAgentStatus erstellt.lAgentStatus erstellt.agentCmd erstellt.iAgentCmd erstellt.clr erstellt.iEnableClr erstellt.iDisableClr erstellt.iClr erstellt.iWhoami erstellt.iMapped erstellt.iRoles erstellt.lEnableRpc erstellt.lDisableRpc erstellt.lWhoami erstellt.lEnableXp erstellt.lDisableXp erstellt.lEnableOle erstellt.lDisableOle erstellt.lSmb-Modul erstellt.lWhoami-Modul erstellt.lRoles-Modul erstellt.oldCmd-Modul behoben.iOleCmd-Modul behoben.lDatabases-Modul behoben.lTables-Modul behoben./v, /verbose-Flag ist optional und zeigt alle SQL-Abfragen an, die von einem Modul ausgeführt werden, bevor sie auf dem/den entfernten Host(s) ausgeführt werden. Ein Beispiel hierfür finden Sie im Wiki.| Modulname | Beschreibung | Impersonierung | Verkettete Ausführung | Verkettete Kettenausführung | Erfordert privilegierten Kontext |
|---|
AuditStatus | Prüfen, ob SQL-Überwachung vorhanden ist. | ✅ | ✅ | ✅ | ❎ |
CheckRpc | Eine Liste der verknüpften Server und deren RPC-Status abrufen. | ✅ | ✅ | ✅ | ❎ |
Databases | Alle Datenbanken anzeigen. | ✅ | ✅ | ✅ | ❎ |
Impersonate | Benutzerkonten auflisten, die impersoniert werden können. | ✅ | ✅ | ✅ | ❎ |
Info | Informationen über den SQL-Server anzeigen. | ✅ | ✅ | ✅ | ❎ |
Links | Verknüpfte SQL-Server auflisten. | ✅ | ✅ | ✅ | ❎ |
Users | Anzeigen, welche Benutzerkonten und Gruppen sich gegen die Datenbank authentifizieren können. | ✅ | ✅ | ✅ | ❎ |
Whoami | Ihre Berechtigungen anzeigen. | ✅ | ✅ | ✅ | ❎ |
Query /c:QUERY | Eine SQL-Abfrage ausführen. | ✅ | ✅ | ✅ | ❎ |
Smb /unc:UNC_PATH | NetNTLMv2-Hash erfassen. | ✅ | ✅ | ✅ | ❎ |
Columns /db:DATABASE /table:TABLE | Alle Spalten in der angegebenen Datenbank und Tabelle anzeigen. | ✅ | ✅ | ✅ | ❎ |
Rows /db:DATABASE /table:TABLE | Die Anzahl der Zeilen in der angegebenen Datenbanktabelle anzeigen. | ✅ | ✅ | ✅ | ❎ |
Search /keyword:KEYWORD | Spaltennamen in der angegebenen Tabelle der verbundenen Datenbank durchsuchen. | ✅ | ✅ | ✅ | ❎ |
Tables /db:DATABASE | Alle Tabellen in der angegebenen Datenbank anzeigen. | ✅ | ✅ | ✅ | ❎ |
EnableRpc /rhost:LINKED_HOST | RPC und RPC out auf einem verknüpften Server aktivieren. | ✅ | ❌ | ❌ | ✔️ |
EnableClr | CLR-Integration aktivieren. | ✅ | ✅ | ✅ | ✔️ |
EnableOle | OLE-Automatisierungsprozeduren aktivieren. | ✅ | ✅ | ✅ | ✔️ |
EnableXp | xp_cmdshell aktivieren. | ✅ | ✅ | ✅ | ✔️ |
DisableRpc /rhost:LINKED_HOST | RPC und RPC out auf einem verknüpften Server deaktivieren. | ✅ | ❌ | ❌ | ✔️ |
DisableClr | CLR-Integration deaktivieren. | ✅ | ✅ | ✅ | ✔️ |
DisableOle | OLE-Automatisierungsprozeduren deaktivieren. | ✅ | ✅ | ✅ | ✔️ |
DisableXp | xp_cmdshell deaktivieren. | ✅ | ✅ | ✅ | ✔️ |
AgentStatus | Anzeigen, ob der SQL-Agent läuft, und Agent-Jobs abrufen. | ✅ | ✅ | ✅ | ✔️ |
AgentCmd /c:COMMAND /subsystem:(OPTIONAL) /proxy:(OPTIONAL) | Einen Systembefehl unter Verwendung von Agent-Jobs ausführen. Optional kann ein Subsystem mit /subsystem: angegeben werden; standardmäßig wird 'PowerShell' verwendet. Optional kann ein SQL-Agent-Proxy-Konto mit /proxy: angegeben werden. | ✅ | ✅ | ✅ | ✔️ |
Adsi /adsi:SERVER_NAME /lport:LOCAL_PORT | Klartext-ADSI-Anmeldeinformationen von einem verknüpften ADSI-Server abrufen. | ✅ | ✅ | ✅ | ✔️ |
Clr /dll:DLL /function:FUNCTION | Eine .NET-Assembly in einer benutzerdefinierten gespeicherten Prozedur laden und ausführen. | ✅ | ✅ | ✅ | ✔️ |
CredentialObjects | Anmeldeinformationsobjekte aus sys.credentials abrufen. | ✅ | ✅ | ✅ | ✔️ |
OleCmd /c:COMMAND /subsystem:(OPTIONAL) | Einen Systembefehl unter Verwendung von OLE-Automatisierungsprozeduren ausführen. | ✅ | ✅ | ✅ | ✔️ |
Proxies | SQL-Agent-Proxy-Informationen abrufen. | ✅ | ✅ | ✅ | ✔️ |
XpCmd /c:COMMAND | Einen Systembefehl unter Verwendung von xp_cmdshell ausführen. | ✅ | ✅ | ✅ | ✔️ |
| Modulname | Beschreibung | Impersonierung | Erfordert privilegierten Kontext |
|---|
Users | Alle SCCM-Benutzer anzeigen. | ✅ | ❎ |
Sites | Alle anderen Sites mit gespeicherten Daten anzeigen. | ✅ | ❎ |
Logons | Alle zugehörigen SCCM-Clients und den zuletzt angemeldeten Benutzer anzeigen. | ✅ | ❎ |
Credentials | Von SCCM gespeicherte verschlüsselte Anmeldeinformationen anzeigen. | ✅ | ❎ |
TaskList | Alle Tasksequenzen anzeigen, aber nicht auf die Inhalte der Aufgabendaten zugreifen. | ✅ | ❎ |
TaskData | Alle Tasksequenzen entschlüsseln und als Klartext anzeigen. | ✅ | ❎ |
DecryptCredentials | Einen SCCM-Anmeldeinformations-Blob entschlüsseln. Muss in einem Prozess mit hoher Integrität oder SYSTEM auf dem SCCM-Server ausgeführt werden. | ❌ | ✔️ |
AddAdmin /user:DOMAIN\USERNAME /sid:SID | Ein angegebenes Konto zu einem 'Volladministrator' in SCCM erheben. | ✅ | ✔️ |
RemoveAdmin /user:ADMIN_ID /remove:STRING | Berechtigungen eines Benutzers entfernen oder einen Benutzer vollständig aus der SCCM-Datenbank löschen. | ✅ | ✔️ |
ScriptData | Alle Skripte zurückgeben, die für die Ausführung in SCCM konfiguriert sind. | ✅ | ✔️ |
CIData | Alle KIs zurückgeben, die für die Ausführung von Skripten in SCCM konfiguriert sind. | ✅ | ✔️ |
Credentials-Modul listet von SCCM für verschiedene Funktionen gespeicherte Anmeldeinformationen auf. Diese Anmeldeinformationen können nicht remote entschlüsselt werden, da der Schlüssel auf dem SCCM-Server gespeichert ist. Dieses Modul liefert jedoch Informationen darüber, ob es sinnvoll ist, zu versuchen, den Schlüssel zu erhalten.DecryptCredentials-Modul versucht, wiederhergestellte SCCM-Anmeldeinformations-Blobs zu entschlüsseln. Dieses Modul muss in einem Prozess mit hoher Integrität oder SYSTEM auf einem SCCM-Server ausgeführt werden.AddAdmin-Modul erhebt das angegebene Konto zu einem 'Volladministrator' in SCCM. Wenn der Zielbenutzer bereits ein SCCM-Benutzer ist, fügt dieses Modul stattdessen die erforderlichen Berechtigungen zur Erhöhung hinzu. Geben Sie zwei Argumente an, entweder /user:current /sid:current, wenn Sie den Benutzer, der gerade den SQLRecon-Prozess ausführt, als 'Volladministrator' in SCCM hinzufügen möchten. Wenn Sie einen anderen Benutzer als 'Volladministrator' in SCCM hinzufügen möchten, geben Sie seinen Domänenbenutzernamen und die 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.RemoveAdmin-Modul entfernt die Berechtigungen eines Benutzers, indem es einen neu hinzugefügten Benutzer vollständig aus der SCCM-Datenbank löscht. 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 sAddAdmin-Befehls bereitgestellt werden, um diesen Befehl auszuführen. Dieses Modul erfordert sysadmin oder ähnliche Berechtigungen, da das Schreiben in SCCM-Datenbanktabellen erforderlich ist.LinkedChainQueryRecurseModuleHandler.cs verschoben, um Vereinfachung und Erweiterbarkeit zu fördern.Queries.cs verschoben.EnumerationModules.cs erstellt.FormatQuery.cs erstellt.SccmModules.cs erstellt.ModuleHandler.cs in SqlModules.cs umbenannt.PrintUtils.cs in Print.cs umbenannt.SQLServerInfo.cs in Info.cs umbenannt.iQueryiSearchauthentication entfernt.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.lEnableClr erstellt.lDisableClr erstellt.lXpCmd erstellt.lXpOle erstellt.Random.cs erstellt.EnableDisable.cs erstellt.clr implementiert.ole implementiert.mapped und roles in whoami integriert.lMapped und lRoles in lWhoami integriert.iMapped und iRoles in iWhoami integriert.