
MSSQL-клиент для сред SCCM, позволяющий выполнять разведку, удалённое выполнение PowerShell на управляемых клиентах и извлечение конфиденциальных секретов, таких как учётные данные NAA и конфигурации приложений Azure AD.
Специализированный MSSQL-клиент для исследования и эксплуатации базы данных SCCM.
$ pipx install git+https://github.com/synacktiv/sccmsqlclient/
Вы можете установить, клонировав репозиторий и установив зависимости.
$ 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 использует ту же модель аутентификации и синтаксис, что и mssqlclient.py из Impacket, поскольку основан на той же реализации протокола MSSQL TDS (Tabular Data Stream).
Если вы уже знакомы с инструментами Impacket, формат использования и входа идентичен.
$ python3 sccmsqlclient.py -windows-auth 'DOMAIN/USER:password'@mp.local
Перечисляет сайты и серверы SCCM в многосайтовой иерархии.
> sccm_sites
> sccm_servers
Перечисляет инфраструктурные серверы SCCM и назначенные им роли в иерархии.
> sccm_sysreslist [ROLE_NAME]
> sccm_mp
> sccm_dp
Этот набор команд запрашивает данные о системных ресурсах SCCM и назначении ролей, чтобы составить карту компонентов инфраструктуры и их обязанностей.
sccm_sysreslist → выводит список всех зарегистрированных системных ресурсов SCCM и их ролейsccm_sysreslist [ROLE_NAME] → фильтрует результаты по имени роли (например, Management Point, Distribution Point)sccm_mp → сокращение для вывода всех точек управления (Management Points)sccm_dp → сокращение для вывода всех точек распространения (Distribution Points)Выводит список известных устройств с частичной фильтрацией по имени или IP-адресу
> sccm_devices [FILTER]
Выводит клиентов с их статусом BGB / канала уведомлений (OnlineStatus=0|1)
> sccm_devices_bgbstatus [FILTER]
Используйте функцию Run Scripts для выполнения PowerShell-скриптов на управляемых устройствах
Задайте PowerShell-скрипт напрямую из строки.
> set_ps1_script "<string>"
Пример:
> set_ps1_script "Get-Process | Select-Object -First 10"
Загружает скрипт из локального .ps1-файла.
Пример:
> load_ps1_script ./script.ps1
Выполняет ранее заданный скрипт для целевого ресурса SCCM.
> sccm_run_script <RESOURCE_ID>
Пример:
> sccm_run_script 16777219
При выполнении эта команда генерирует два GUID:
Эти идентификаторы автоматически сохраняются в памяти и используются следующими командами:
last_task_outputllast_task_output_printlast_task_cleanЭто позволяет работать с последним выполнением без ручного указания GUID.
Показывает результаты самой последней задачи, запущенной через sccm_run_script.
> last_task_output
Извлекает исходный вывод выполнения, сохранённый в памяти от последнего запуска SCCM Run Script.
Отображает вывод выполнения последней задачи в удобочитаемом формате.
> last_task_output_print
Форматирует и очищает исходный вывод последнего выполнения SCCM Run Script для более лёгкого чтения и интерпретации.
Получает статус выполнения задачи или скрипта.
> sccm_ScriptsExecutionStatus [TASK_GUID|SCRIPT_GUID]
Примеры:
> sccm_ScriptsExecutionStatus
> sccm_ScriptsExecutionStatus 4F3A1B2C-AAAA-BBBB-CCCC-1234567890AB
Удаляет самую последнюю отслеживаемую задачу SCCM.
> last_task_clean
Удаляет конкретную задачу фоновой группы (BGB).
> sccm_BGB_Tasks_clean <TASK_GUID>
Пример:
> sccm_BGB_Tasks_clean 4F3A1B2C-AAAA-BBBB-CCCC-1234567890AB
Удаляет объект Run Script из SCCM.
> sccm_script_delete <SCRIPT_GUID>
Пример:
> sccm_script_delete 7F2C9D11-1111-2222-3333-ABCDEF987654
Эти команды позволяют перечислять и извлекать конфиденциальные секреты, связанные с SCCM, такие как учётные записи сетевого доступа (Network Access Accounts), учётные данные Client Push и конфигурации приложений Azure AD. Расшифровка основана на выполнении удалённого скрипта через SCCM Run Scripts.
Получает учётные записи SCCM, настроенные для привилегированных операций, таких как учётные записи сетевого доступа (NAA) или учётные записи установки Client Push.
> sccm_useraccounts
Перечисляет конфигурации приложений Azure AD, хранящиеся в SCCM.
> sccm_add_apps
Выполняет удалённый скрипт на точке управления SCCM или управляемом клиенте для расшифровки сохранённых секретных blob-объектов.
> sccm_decrypt_blob [RESOURCE_ID] [HEXBLOB]
Эта команда:
RESOURCE_ID сервера сайта или управляемого клиента с исправным статусом агента (см. sccm_devices_bgbstatus)sccm_add_apps или sccm_useraccountsВыполнение происходит удалённо, а расшифрованный результат возвращается через канал выполнения SCCM Run Script.