
Client MSSQL per ambienti SCCM, che consente ricognizione, esecuzione remota di PowerShell sui client gestiti ed estrazione di segreti sensibili come credenziali NAA e configurazioni di app Azure AD.
Un client MSSQL dedicato per l'esplorazione e lo sfruttamento del database SCCM.
$ pipx install git+https://github.com/synacktiv/sccmsqlclient/
Puoi installarlo clonando il repository e installando le dipendenze.
$ 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 utilizza lo stesso modello di autenticazione e la stessa sintassi di mssqlclient.py di Impacket, poiché si basa sulla stessa implementazione del protocollo MSSQL TDS (Tabular Data Stream).
Se hai già familiarità con gli strumenti Impacket, l'utilizzo e il formato di login sono identici.
$ python3 sccmsqlclient.py -windows-auth 'DOMAIN/USER:password'@mp.local
Elenca i siti e i server SCCM in una gerarchia multi-sito.
> sccm_sites
> sccm_servers
Enumera i server dell'infrastruttura SCCM e i ruoli assegnati all'interno della gerarchia.
> sccm_sysreslist [ROLE_NAME]
> sccm_mp
> sccm_dp
Questo insieme di comandi interroga i dati delle risorse di sistema SCCM e delle assegnazioni dei ruoli per mappare i componenti dell'infrastruttura e le loro responsabilità.
sccm_sysreslist → elenca tutte le risorse di sistema SCCM registrate e i relativi ruolisccm_sysreslist [NOME_RUOLO] → filtra i risultati per nome del ruolo (es., Management Point, Distribution Point)sccm_mp → scorciatoia per elencare tutti i Management Pointsccm_dp → scorciatoia per elencare tutti i Distribution PointElenca i dispositivi noti, con filtro parziale per nome o indirizzo IP
> sccm_devices [FILTER]
Elenca i client con il loro stato del canale BGB / Notifiche (OnlineStatus=0|1)
> sccm_devices_bgbstatus [FILTER]
Sfrutta la funzionalità Run Scripts per eseguire script PowerShell sui dispositivi gestiti
Definisci uno script PowerShell direttamente da una stringa.
> set_ps1_script "<string>"
Esempio:
> set_ps1_script "Get-Process | Select-Object -First 10"
Carica uno script da un file .ps1 locale.
Esempio:
> load_ps1_script ./script.ps1
Esegui uno script precedentemente definito su una risorsa SCCM di destinazione.
> sccm_run_script <RESOURCE_ID>
Esempio:
> sccm_run_script 16777219
Quando eseguito, questo comando genera due GUID:
Questi identificativi vengono automaticamente salvati in memoria e riutilizzati dai seguenti comandi:
last_task_outputllast_task_output_printlast_task_cleanQuesto consente di operare sull'esecuzione più recente senza specificare manualmente i GUID.
Mostra i risultati dell'attività più recente avviata tramite sccm_run_script.
> last_task_output
Recupera l'output di esecuzione grezzo salvato in memoria dall'ultima esecuzione di SCCM Run Script.
Visualizza l'output di esecuzione dell'ultima attività in un formato leggibile.
> last_task_output_print
Formatta e ripulisce l'output grezzo dell'ultima esecuzione di SCCM Run Script per una lettura e interpretazione più semplici.
Recupera lo stato di esecuzione di un'attività o di uno script.
> sccm_ScriptsExecutionStatus [TASK_GUID|SCRIPT_GUID]
Esempi:
> sccm_ScriptsExecutionStatus
> sccm_ScriptsExecutionStatus 4F3A1B2C-AAAA-BBBB-CCCC-1234567890AB
Rimuove l'attività SCCM tracciata più di recente.
> last_task_clean
Rimuove un'attività specifica del gruppo in background (BGB).
> sccm_BGB_Tasks_clean <TASK_GUID>
Esempio:
> sccm_BGB_Tasks_clean 4F3A1B2C-AAAA-BBBB-CCCC-1234567890AB
Elimina un oggetto Run Script da SCCM.
> sccm_script_delete <SCRIPT_GUID>
Esempio:
> sccm_script_delete 7F2C9D11-1111-2222-3333-ABCDEF987654
Questi comandi consentono di enumerare ed estrarre segreti sensibili legati a SCCM, come Network Access Account, credenziali Client Push e configurazioni delle applicazioni Azure AD. La decrittazione si basa sull'esecuzione di uno script remoto tramite SCCM Run Scripts.
Recupera gli account utente SCCM configurati per operazioni privilegiate come Network Access Account (NAA) o account di installazione Client Push.
> sccm_useraccounts
Enumera le configurazioni delle applicazioni Azure AD salvate all'interno di SCCM.
> sccm_add_apps
Esegui uno script remoto su un Management Point SCCM o su un client gestito per decrittare i blob segreti salvati.
> sccm_decrypt_blob [RESOURCE_ID] [HEXBLOB]
Questo comando:
RESOURCE_ID valido di un Site Server o di un client gestito con stato dell'agente integro (vedi sccm_devices_bgbstatus)sccm_add_apps o sccm_useraccountsL'esecuzione avviene da remoto e il risultato decrittato viene restituito tramite il canale di esecuzione di SCCM Run Script.