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

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

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

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

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

Категории

Все категории
Loading categories
SecretsStalker — Оценка учётных данных приложений Entra ID в режиме только для чтения: перечисляет разрешения Graph, Azure RBAC и доступные облачные данные, затем сопоставляет полученные результаты с путями повышения привилегий и латерального перемещения. | Kitploit
Инструменты/GitHubGitHub/rootsecdev/secretsstalker
Аутентификация и авторизацияБезопасность облачной инфраструктурыПовышение привилегийРазведкаЛатеральное перемещениеПост-эксплуатацияТестирование на ПроникновениеБезопасность облачных средУправление идентификацией и доступом (IAM)Red Teaming
341231 месяц назадПроверено Kitploit

Популярное

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

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

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

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

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

SecretsStalker

Оценка учётных данных приложений Entra ID в режиме только для чтения: перечисляет разрешения Graph, Azure RBAC и доступные облачные данные, затем сопоставляет полученные результаты с путями повышения привилегий и латерального перемещения.

Репозиторий

secret_stalker```


/ / ______ ___ ___ / /_ / / / /__ _ / / /_____ ____ \ / -) / -) -)/ / \ \ / __/ _ `// / '/ -) / //_/_/_/_/ _/ // _/_,////_\__/_/

     ╔╦╦╬╬╬╬╬╬╦╦╗
 ╔╬╬╬╝╝┘      ╚╝╝╬╬╬┐
╬╬╝╚╩╬╗╔          ╚╬╬╬

╬╝ ╚╬╬╗╗ ╔ ╚╬╗ ╬╬ ╔╗ ╚╬╬╬╬╬╬╦ ╬╬ we found your secret... ╔╬┤ ╬╬╬ ╬╬╬╬╬╬╬╬╝╝╝╬╬╗ ...now let's see what it ╬╬┤ ╚╩┘ ╚╬╬╬╬╬╩ ╠╬╬ can REALLY do. ( o_o)>=|= ╬╬┤ ╠╬╬ ╬╬ ╦╗ ╗╗ ╬╬ [ client_id + secret -> total recall ] └╬┐ ╚╬╗╗ ╔╬╬╝ ╔╬┘ └╬╗ ╚╩╩╬╬╬╩╩╝╝ ╔╬╬ ╚╬╬╬╗ ┌╗╬╬╝┘ ╚╩╬╬╬╦╦╦╦╦╦╬╬╬╝╝ ╚╚╝╝╝╝ // pst... that app registration talks too much. \

**Что на самом деле может делать этот client ID + секрет Entra ID?**

Вы нашли учётные данные приложения Entra ID (Azure AD) — client ID и секрет —
в рамках авторизованного тестирования, и тенант, к которому они относятся, входит в область действия.
`secret_stalker` принимает эти два значения и сообщает вам с нуля:

1. **Действительны ли учётные данные, и когда истекает срок действия секрета?** — а если нет, *почему*
   (неверный секрет, истёкший секрет, приложения нет в тенанте…). Для действительного секрета
   он читает `passwordCredentials` регистрации приложения и сообщает дату
   истечения + оставшиеся дни (требуется чтение каталога; см. примечание ниже).
2. **Какими правами Microsoft Graph оно обладает?** — разрешения приложения, считываемые
   напрямую из выданного токена, плюс **роли каталога Entra**, которыми оно владеет (даже
   пассивно обнаруживаемые по утверждению `wids` в токене), и **объекты, которыми оно владеет**
   (приложения/субъекты-службы, к которым можно добавить учётные данные).
3. **Какой контроль над Azure оно имеет?** — назначения ролей RBAC на уровне
   группы управления и подписки.
4. **Может ли оно добраться до реальных данных?** — опциональные проверки достижимости в плоскости данных
   Key Vault (секреты / ключи / сертификаты),
   Storage (blob / файл / очередь / таблица) и Cosmos DB.
5. **Каково влияние?** — опасные разрешения, роли, владение и достижимые данные,
   сопоставленные с известными примитивами повышения привилегий / бокового перемещения,
   оценённые по степени серьёзности, с конкретными описаниями **путей атак**.

Оно аутентифицируется либо с помощью **секрета клиента**, либо **сертификата** (`--cert`),
и работает с **коммерческими и суверенными облаками** (`--cloud`).

Оно **пассивно по умолчанию** и **никогда ничего не изменяет** — только перечисление в режиме чтения.

> ⚠️ **Только авторизованное тестирование.** Запускайте его исключительно против тенантов,
> явно входящих в область действия задания, на проведение которого вы авторизованы.

---

## Установка```bash
pip install -r requirements.txt        # just runs it from source
#   — or —
pip install .                          # installs the `secret_stalker` command
pip install '.[cert]'                  # + certificate (--cert) auth support
pip install '.[dev]'                   # + pytest for the test suite

The only runtime dependency is requests. Tokens are decoded locally (base64 + JSON) — no signature verification, no crypto library, no Microsoft SDK. The one exception is certificate auth (--cert), which needs the optional cryptography package to sign the JWT client assertion. Requires Python 3.7+.

After pip install . you can invoke it as secret_stalker … instead of python -m secret_stalker ….


Быстрый старт

Самый быстрый способ узнать, что могут учётные данные:```bash python -m secret_stalker
--tenant contoso.onmicrosoft.com
--client-id 11111111-2222-3333-4444-555555555555
--secret ''

`--tenant` принимает либо GUID тенанта, либо домен — домен автоматически преобразуется в
его идентификатор тенанта через публичную конечную точку конфигурации OpenID.

### Не оставляйте секрет в истории вашей оболочки

Передавайте учетные данные через переменные окружения вместо флагов:```bash
export SS_TENANT=contoso.onmicrosoft.com
export SS_CLIENT_ID=11111111-2222-3333-4444-555555555555
export SS_SECRET='<client-secret>'

python -m secret_stalker

Любой из --tenant / --client-id / --secret может браться из SS_TENANT / SS_CLIENT_ID / SS_SECRET. Флаги имеют приоритет над окружением.

Дело не только в истории shell: значение argv доступно для чтения любому локальному пользователю в течение всего времени жизни процесса (ps, /proc/<pid>/cmdline). Если --secret или --cert-password передаётся как флаг, инструмент выводит однострочное напоминание в stderr — оно никогда не появляется в выводе --json или --export.

Аутентификация с помощью сертификата вместо секрета

Регистрации приложений часто используют сертификат, а не секрет. Передайте --cert (PEM-файл, содержащий закрытый ключ и сертификат, или .pfx/.p12), и инструмент выполнит аутентификацию с помощью подписанного JWT-клиентского утверждения:```bash python -m secret_stalker --tenant contoso.onmicrosoft.com
--client-id --cert ./app.pem # or app.pfx

encrypted key / PFX:

python -m secret_stalker ... --cert app.pfx --cert-password ''

Аутентификация по сертификату требует опциональный пакет `cryptography` (`pip install '.[cert]'`).
Инструмент сообщает о сроке действия самого сертификата (сопоставленного по его отпечатку в
`keyCredentials` приложения) так же, как и для секрета. `--cert`/`--cert-password`
также читаются из `SS_CERT` / `SS_CERT_PASSWORD`.

### Суверенные и государственные облака

По умолчанию secret_stalker нацелен на **коммерческое** облако. Для суверенных тенантов
передайте `--cloud` (или `SS_CLOUD`), чтобы центр авторизации Entra и конечные точки Graph / ARM / Key
Vault совпадали — иначе действительные учётные данные будут выглядеть так, будто у них нет доступа:```bash
# US Government (GCC High)
python -m secret_stalker --cloud usgov  --tenant contoso.onmicrosoft.us ...

# US DoD (L5)
python -m secret_stalker --cloud usdod  ...

# Azure operated by 21Vianet (China)
python -m secret_stalker --cloud china  --tenant contoso.partner.onmschina.cn ...
--cloudЦентр выдачи EntraMicrosoft GraphARMKey Vault
public (по умолчанию)login.microsoftonline.comgraph.microsoft.commanagement.azure.comvault.azure.net
usgov (GCC High)login.microsoftonline.usgraph.microsoft.usmanagement.usgovcloudapi.netvault.usgovcloudapi.net
usdod (DoD)login.microsoftonline.usdod-graph.microsoft.usmanagement.usgovcloudapi.netvault.usgovcloudapi.net
china (21Vianet)login.chinacloudapi.cnmicrosoftgraph.chinacloudapi.cnmanagement.chinacloudapi.cnvault.azure.cn

Принимаются такие псевдонимы, как gov, dod, commercial, gcc-high и 21vianet. (Аудитория плоскости данных Storage, storage.azure.com, одинакова во всех облаках.)


Рекомендуемый порядок действий в рамках задания

  1. Обновите карту разрешений для этого клиента (один раз). Преобразует Graph GUID разрешений в авторитетные имена для целевого клиента: ```bash python -m secret_stalker --update-manifest

Это выполняет аутентификацию, кэширует карту appRole Graph клиента в ~/.secret_stalker/app_roles_cache.json и завершает работу. Пропустите этот шаг, если учётные данные не могут читать субъекты-службы — встроенная карта по-прежнему покрывает известные разрешения.

Скачать инструмент