
Un cliente MSSQL dedicado para la exploración y explotación de bases de datos SCCM.
$ pipx install git+https://github.com/synacktiv/sccmsqlclient/
Puedes instalar clonando el repositorio e instalando las dependencias.
$ 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 utiliza el mismo modelo de autenticación y sintaxis que mssqlclient.py de Impacket, ya que se basa en la misma implementación del protocolo MSSQL TDS (Tabular Data Stream).
Si ya estás familiarizado con las herramientas de Impacket, el formato de uso e inicio de sesión es idéntico.
$ python3 sccmsqlclient.py -windows-auth 'DOMAIN/USER:password'@mp.local
Lista los sitios y servidores SCCM en una jerarquía de múltiples sitios.
> sccm_sites
> sccm_servers
Enumera los servidores de infraestructura SCCM y sus roles asignados dentro de la jerarquía.
> sccm_sysreslist [ROLE_NAME]
> sccm_mp
> sccm_dp
Este conjunto de comandos consulta los datos de recursos del sistema y asignación de roles de SCCM para mapear los componentes de infraestructura y sus responsabilidades.
sccm_sysreslist → lista todos los recursos del sistema SCCM registrados y sus rolessccm_sysreslist [ROLE_NAME] → filtra los resultados por nombre de rol (p. ej., Management Point, Distribution Point)sccm_mp → acceso directo para listar todos los Management Pointssccm_dp → acceso directo para listar todos los Distribution PointsLista los dispositivos conocidos, con filtrado parcial por nombre o dirección IP
> sccm_devices [FILTER]
Lista los clientes con su estado de canal BGB / Notificación (OnlineStatus=0|1)
> sccm_devices_bgbstatus [FILTER]
Explota la función Run Scripts para ejecutar scripts de PowerShell en dispositivos administrados
Define un script de PowerShell directamente desde una cadena.
> set_ps1_script "<string>"
Ejemplo:
> set_ps1_script "Get-Process | Select-Object -First 10"
Carga un script desde un archivo .ps1 local.
Ejemplo:
> load_ps1_script ./script.ps1
Ejecuta un script previamente definido contra un recurso SCCM objetivo.
> sccm_run_script <RESOURCE_ID>
Ejemplo:
> sccm_run_script 16777219
Cuando se ejecuta, este comando genera dos GUID:
Estos identificadores se almacenan automáticamente en memoria y son reutilizados por los siguientes comandos:
last_task_outputllast_task_output_printlast_task_cleanEsto permite operar sobre la ejecución más reciente sin especificar GUIDs manualmente.
Muestra los resultados de la tarea más reciente lanzada mediante sccm_run_script.
> last_task_output
Esto recupera la salida de ejecución sin procesar almacenada en memoria de la última ejecución de SCCM Run Script.
Muestra la salida de ejecución de la última tarea en un formato legible para humanos.
> last_task_output_print
Esto formatea y limpia la salida sin procesar de la última ejecución de SCCM Run Script para facilitar su lectura e interpretación.
Recupera el estado de ejecución de una tarea o script.
> sccm_ScriptsExecutionStatus [TASK_GUID|SCRIPT_GUID]
Ejemplos:
> sccm_ScriptsExecutionStatus
> sccm_ScriptsExecutionStatus 4F3A1B2C-AAAA-BBBB-CCCC-1234567890AB
Elimina la tarea SCCM rastreada más recientemente.
> last_task_clean
Elimina una tarea específica de Background Group (BGB).
> sccm_BGB_Tasks_clean <TASK_GUID>
Ejemplo:
> sccm_BGB_Tasks_clean 4F3A1B2C-AAAA-BBBB-CCCC-1234567890AB
Elimina un objeto Run Script de SCCM.
> sccm_script_delete <SCRIPT_GUID>
Ejemplo:
> sccm_script_delete 7F2C9D11-1111-2222-3333-ABCDEF987654
Estos comandos permiten la enumeración y extracción de secretos sensibles relacionados con SCCM, como Network Access Accounts, credenciales de Client Push y configuraciones de aplicaciones de Azure AD. El descifrado se basa en la ejecución de un script remoto mediante SCCM Run Scripts.
Recupera las cuentas de usuario de SCCM configuradas para operaciones privilegiadas, como Network Access Accounts (NAA) o cuentas de instalación de Client Push.
> sccm_useraccounts
Enumera las configuraciones de aplicaciones de Azure AD almacenadas en SCCM.
> sccm_add_apps
Ejecuta un script remoto en un Management Point de SCCM o en un cliente administrado para descifrar blobs de secretos almacenados.
> sccm_decrypt_blob [RESOURCE_ID] [HEXBLOB]
Este comando:
RESOURCE_ID válido de un Site Server o cliente administrado con estado de agente saludable (consulta sccm_devices_bgbstatus)sccm_add_apps o sccm_useraccountsLa ejecución se realiza de forma remota y el resultado descifrado se devuelve a través del canal de ejecución de SCCM Run Script.