
MSSQL-Client für SCCM-Umgebungen, der Aufklärung, Remote-PowerShell-Ausführung auf verwalteten Clients und die Extraktion sensibler Geheimnisse wie NAA-Anmeldeinformationen und Azure-AD-App-Konfigurationen ermöglicht.
Ein spezieller MSSQL-Client zum Erkunden und Ausnutzen von SCCM-Datenbanken.
$ pipx install git+https://github.com/synacktiv/sccmsqlclient/
Sie können das Tool installieren, indem Sie das Repository klonen und die Abhängigkeiten installieren.
$ git clone https://github.com/synacktiv/sccmsqlclient
$ cd sccmsqlclient
$ python3 -m venv .venv && source .venv/bin/activate
$ python3 -m pip install -r requirements.txt
sccmsqlclient.py verwendet dasselbe Authentifizierungsmodell und dieselbe Syntax wie Impackets mssqlclient.py, da es auf derselben TDS-Implementierung (Tabular Data Stream) des MSSQL-Protokolls basiert.
Wenn Sie bereits mit Impacket-Tools vertraut sind, sind Verwendung und Anmeldeformat identisch.
$ python3 sccmsqlclient.py -windows-auth 'DOMAIN/USER:password'@mp.local
Listet SCCM-Standorte (Sites) und Server in einer Multi-Site-Hierarchie auf.
> sccm_sites
> sccm_servers
Listet SCCM-Infrastrukturserver und ihre zugewiesenen Rollen innerhalb der Hierarchie auf.
> sccm_sysreslist [ROLE_NAME]
> sccm_mp
> sccm_dp
Diese Befehlsgruppe fragt SCCM-Systemressourcen- und Rollenzuweisungsdaten ab, um Infrastrukturkomponenten und ihre Zuständigkeiten zu erfassen.
sccm_sysreslist → listet alle registrierten SCCM-Systemressourcen und ihre Rollen aufsccm_sysreslist [ROLE_NAME] → filtert Ergebnisse nach Rollennamen (z. B. Management Point, Distribution Point)sccm_mp → Abkürzung zum Auflisten aller Management Pointssccm_dp → Abkürzung zum Auflisten aller Distribution PointsListet bekannte Geräte auf, mit teilweiser Filterung nach Name oder IP-Adresse
> sccm_devices [FILTER]
Listet Clients mit ihrem BGB-/Benachrichtigungskanalstatus auf (OnlineStatus=0|1)
> sccm_devices_bgbstatus [FILTER]
Nutzen Sie die Run-Scripts-Funktion, um PowerShell-Skripte auf verwalteten Geräten auszuführen
Definiert ein PowerShell-Skript direkt aus einer Zeichenkette.
> set_ps1_script "<string>"
Beispiel:
> set_ps1_script "Get-Process | Select-Object -First 10"
Lädt ein Skript aus einer lokalen .ps1-Datei.
Beispiel:
> load_ps1_script ./script.ps1
Führt ein zuvor definiertes Skript gegen eine Ziel-SCCM-Ressource aus.
> sccm_run_script <RESOURCE_ID>
Beispiel:
> sccm_run_script 16777219
Bei der Ausführung erzeugt dieser Befehl zwei GUIDs:
Diese Kennungen werden automatisch im Speicher abgelegt und von den folgenden Befehlen wiederverwendet:
last_task_outputllast_task_output_printlast_task_cleanSo können Sie mit der zuletzt ausgeführten Aufgabe arbeiten, ohne GUIDs manuell angeben zu müssen.
Zeigt die Ergebnisse der zuletzt über sccm_run_script gestarteten Aufgabe.
> last_task_output
Ruft die rohe Ausführungsausgabe ab, die aus der letzten SCCM-Run-Script-Ausführung im Speicher abgelegt wurde.
Zeigt die Ausführungsausgabe der letzten Aufgabe in einem menschenlesbaren Format an.
> last_task_output_print
Formatiert und bereinigt die rohe Ausgabe der letzten SCCM-Run-Script-Ausführung, um das Lesen und Interpretieren zu erleichtern.
Ruft den Ausführungsstatus einer Aufgabe oder eines Skripts ab.
> sccm_ScriptsExecutionStatus [TASK_GUID|SCRIPT_GUID]
Beispiele:
> sccm_ScriptsExecutionStatus
> sccm_ScriptsExecutionStatus 4F3A1B2C-AAAA-BBBB-CCCC-1234567890AB
Entfernt die zuletzt verfolgte SCCM-Aufgabe.
> last_task_clean
Entfernt eine bestimmte Background-Group-Aufgabe (BGB).
> sccm_BGB_Tasks_clean <TASK_GUID>
Beispiel:
> sccm_BGB_Tasks_clean 4F3A1B2C-AAAA-BBBB-CCCC-1234567890AB
Löscht ein Run-Script-Objekt aus SCCM.
> sccm_script_delete <SCRIPT_GUID>
Beispiel:
> sccm_script_delete 7F2C9D11-1111-2222-3333-ABCDEF987654
Diese Befehle ermöglichen das Auflisten und Extrahieren sensibler SCCM-bezogener Geheimnisse wie Network Access Accounts, Client-Push-Anmeldedaten und Azure-AD-Anwendungskonfigurationen. Die Entschlüsselung erfolgt durch die Ausführung eines entfernten Skripts über SCCM Run Scripts.
Ruft SCCM-Benutzerkonten ab, die für privilegierte Vorgänge wie Network Access Accounts (NAA) oder Client-Push-Installationskonten konfiguriert sind.
> sccm_useraccounts
Listet in SCCM gespeicherte Azure-AD-Anwendungskonfigurationen auf.
> sccm_add_apps
Führt ein entferntes Skript auf einem SCCM-Management-Point oder verwalteten Client aus, um gespeicherte Secret-BLOBs zu entschlüsseln.
> sccm_decrypt_blob [RESOURCE_ID] [HEXBLOB]
Dieser Befehl:
RESOURCE_ID eines Site-Servers oder verwalteten Clients mit gesundem Agentenstatus (siehe sccm_devices_bgbstatus)sccm_add_apps oder sccm_useraccounts abgerufen wurdeDie Ausführung erfolgt remote, und das entschlüsselte Ergebnis wird über den SCCM-Run-Script-Ausführungskanal zurückgegeben.