
EntraFalcon V20260824
Легковесный инструмент PowerShell для оценки состояния безопасности сред Microsoft Entra ID. Он помогает выявлять привилегированные объекты, рискованные назначения и потенциальные ошибки конфигурации.
EntraFalcon

EntraFalcon — это инструмент оценки на базе PowerShell для пентестеров, аналитиков безопасности и системных администраторов, предназначенный для оценки уровня безопасности среды Microsoft Entra ID.
Разработанный для простоты использования, EntraFalcon работает на PowerShell 5.1 и 7, поддерживает Windows и Linux и не требует дополнительных модулей PowerShell, дополнительных установок или согласия Microsoft Graph API.
Инструмент помогает выявлять привилегированные объекты, потенциально рискованные назначения и ошибки конфигурации Conditional Access, которые часто остаются незамеченными, например:
- Пользователи, имеющие контроль над высокопривилегированными группами или приложениями
- Внешние или внутренние корпоративные приложения с избыточными разрешениями (например, Microsoft Graph API, роли Azure)
- Пользователи с назначениями ролей Azure IAM непосредственно на ресурсах
- Привилегированные учётные записи, синхронизированные из локальной среды
- Неактивные пользователи или пользователи без возможности MFA
- Незащищённые группы, используемые в чувствительных назначениях (например, исключения Conditional Access, Subscription Owner или eligible member привилегированной группы)
Результаты представляются в интерактивных HTML-отчётах для эффективного изучения и анализа.
🚀 Возможности
- Простой скрипт PowerShell, совместимый с PowerShell 5.1 и 7. Работает на Windows и Linux
- Встроенная аутентификация с поддержкой нескольких методов
- Использует first-party приложения Microsoft с предварительно согласованными областями для обхода запросов согласия Graph API
- Генерирует навигируемые HTML-отчёты с поддержкой фильтрации, сортировки, экспорта данных и т. д.
- Выполняет более 90 автоматических проверок и обобщает результаты в Security Findings Report
- Включает проверки слабых конфигураций тенанта и рискованных свойств или разрешений объектов
- Предоставляет оценки серьёзности, а также описания проблемы, потенциальных угроз и рекомендации по устранению
- Перечисляет затронутые объекты и ссылается напрямую на их подробные отчёты для дальнейшего исследования
- Выполняет базовую оценку воздействия, вероятности и риска для выделения слабо защищённых высокопривилегированных объектов и сортировки данных.
- Отображает предупреждения о рискованных конфигурациях и повышенных привилегиях
- Перечисляет объекты Entra ID, включая:
- Пользователи (включая Agent Users)
- Группы
- Корпоративные приложения
- Регистрации приложений
- Управляемые удостоверения
- Удостоверения агентов
- Субъекты схемы удостоверений агентов
- Схемы удостоверений агентов
- Назначения PIM:
- PIM для ролей Entra
- PIM для групп
- PIM для ролей Azure
- Назначения ролей Entra
- Назначения ролей Azure
- Назначения Intune RBAC
- Пакеты доступа
- Каталоги управления правами
- RBAC каталога
- Политики Conditional Access
- Административные единицы
- Параметры PIM:
- PIM для ролей Entra
- PIM для групп (только аутентификация BroCi)
✅ Требования
| Тип | Разрешение | Обязательно | Влияние при отсутствии |
|---|---|---|---|
| Роль Entra ID | Global Reader | Да | Невозможно запустить скрипты |
| Роль Azure | Reader: на каждой Management Group или Subscription | Нет | Невозможно оценить назначения Azure IAM |
Кроме того, вы должны иметь возможность аутентифицироваться в Microsoft Graph API и, опционально, в Azure ARM API с устройства, на котором запускаете инструмент. Убедитесь, что политики Conditional Access не блокируют вашу аутентификацию.
▶️ Использование
Загрузка EntraFalcon
Для начала клонируйте репозиторий и перейдите в каталог проекта:```powershell git clone https://github.com/CompassSecurity/EntraFalcon cd EntraFalcon
Примечание: возможно, потребуется временно изменить политику выполнения PowerShell, чтобы запустить скрипт.
Делайте это только для доверенных скриптов!```
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope Process
Запуск EntraFalcon
EntraFalcon включает встроенную поддержку аутентификации Entra ID. Используйте -AuthFlow для выбора потока аутентификации.
Для обычных проверок используйте один из потоков с полным покрытием:
| Рекомендуемый поток | Лучше всего подходит для | Платформа | Покрытие |
|---|---|---|---|
BroCi (по умолчанию) | Интерактивные запуски в Windows | Windows | Полное |
BroCiManualCode | Аутентификация в другом браузере | Windows, Linux, macOS | Полное |
BroCiToken | Существующий refresh-токен Azure Portal | Windows, Linux, macOS | Полное |
ServicePrincipal | Автоматизация / CI | Windows, Linux, macOS | Полное |
BroCi использует один интерактивный вход. BroCiToken и ServicePrincipal не используют ни одного. Резервные пользовательские потоки могут требовать нескольких интерактивных входов, поскольку запрашиваются отдельные токены для ресурсов.
Резервные потоки аутентификации
Из-за отсутствия предварительно согласованных приложений первой стороны резервные потоки не могут выполнить полное перечисление (PIM for Groups, Access Packages, Catalogs). Поэтому в настоящее время они остаются только резервными вариантами.
| Поток | Использовать только когда | Платформа | Ограничения |
|---|---|---|---|
AuthCode | Требуется поддержка устаревших систем | Windows | Частичное покрытие. Нет отдельного отчёта по PIM for Groups, Access Packages или Catalogs. |
DeviceCode | Аутентификация через браузер невозможна | Windows, Linux, macOS | Частичное покрытие. Нет отдельного отчёта по PIM for Groups, Access Packages или Catalogs. Некоторые проверки Security Findings выполняются с уменьшенной глубиной. |
ManualCode | Аутентификация должна быть выполнена через отдельный сеанс браузера | Windows, Linux, macOS | Частичное покрытие. Нет отдельного отчёта по PIM for Groups, Access Packages или Catalogs. |
Рекомендуется: поток BroCi (по умолчанию / только Windows)
BroCi использует альтернативные приложения первой стороны и требует только одного интерактивного входа.
Это полезно, когда клиент Azure Active Directory PowerShell требует назначения и его необходимо избегать.```powershell
.\run_EntraFalcon.ps1
Явный выбор BroCi:```powershell
.\run_EntraFalcon.ps1 -AuthFlow BroCi
Рекомендуется: BroCi + ручной поток кода```powershell
.\run_EntraFalcon.ps1 -AuthFlow BroCiManualCode
1. Скрипт копирует URL аутентификации в буфер обмена.
2. Вставьте URL в браузер (при необходимости на другом устройстве для поддержки SSO).
3. Откройте инструменты разработчика браузера и на вкладке Network включите `Preserve log`.
4. Завершите аутентификацию.
5. Найдите в сетевом журнале `code=1.` и скопируйте URL запроса, содержащий код, в буфер обмена.
6. Нажмите Enter, чтобы продолжить; скрипт считает код из буфера обмена и завершит получение токена.
#### Рекомендуется: BroCi с токеном
Если уже доступен действительный refresh-токен Azure Portal (client c44b4083-3bb0-49c1-b47d-974e53cbdf3c), его можно использовать напрямую.
Пример: получение refresh-токена из браузера
1. Откройте инструменты разработчика браузера и на вкладке Network включите Preserve log.
2. Пройдите аутентификацию на https://entra.microsoft.com.
3. Найдите в сетевом журнале `brk_client_id=c44b4083-3bb0-49c1-b47d-974e53cbdf3c` и извлеките refresh-токен из ответа.```powershell
.\run_EntraFalcon.ps1 -AuthFlow BroCiToken -BroCiToken "1.XXXXXXXXXXX"
Рекомендуется: субъект-служба
Выполняет аутентификацию как зарегистрированное приложение с использованием предоставления учётных данных клиента OAuth2 — взаимодействие с пользователем не требуется.
Полезно для повторяющихся автоматизированных запусков.
Требуется пользовательская регистрация приложения Entra с разрешениями Graph API типа Application (см. ниже).