Инструмент разведки и атак на Azure Active Directory (часть ROADtools). Собирает полную картину AAD: пользователи, группы, приложения, политики условного доступа, роли. Хранит данные в SQLite, отображает в браузерном GUI. Незаменим при Red Team на Microsoft 365.
pip install roadrecon roadrecon auth -u user@domain.com -p Password roadrecon gather roadrecon gui
(Rogue Office 365 и Azure (активный) Directory инструменты)
ROADtools — это фреймворк для взаимодействия с Azure AD. Он состоит из библиотеки (roadlib) с общими компонентами, инструмента исследования Azure AD ROADrecon и инструмента обмена токенами ROADtools Token eXchange (roadtx).
ROADlib — это библиотека, которую можно использовать для аутентификации в Azure AD или для создания инструментов, интегрируемых с базой данных, содержащей данные ROADrecon. Модель базы данных в ROADlib автоматически генерируется на основе определения метаданных внутреннего API Azure AD. ROADlib находится в пространстве имён ROADtools, поэтому для импорта в своих скриптах используйте from roadtools.roadlib import X.
ROADrecon — это инструмент для изучения информации в Azure AD как с точки зрения Red Team, так и Blue Team. Коротко, вот что он делает: * Использует автоматически сгенерированную модель метаданных для создания базы данных с поддержкой SQLAlchemy на диске. * Использует асинхронные HTTP-вызовы в Python для выгрузки всей доступной информации из графа Azure AD в эту базу данных. * Предоставляет плагины для запроса этой базы данных и вывода её в полезный формат. * Предоставляет обширный интерфейс, построенный на Angular, который напрямую запрашивает офлайн-базу данных для своего анализа.
ROADrecon использует асинхронные возможности Python и совместим только с Python 3.10 и более новыми версиями (разработка ведется с использованием Python 3.11, тесты запускаются с версий до Python 3.14 включительно).
Существует несколько способов установить ROADrecon:
Использование опубликованной версии на PyPi
Стабильные версии можно установить с помощью pip install roadrecon. Это автоматически добавит команду roadrecon в ваш PATH.
Использование версии из GitHub
Каждый коммит в master автоматически собирается в релизную версию с помощью Azure Pipelines. Это гарантирует, что вы можете установить последнюю версию GUI без необходимости устанавливать npm и все его зависимости. Вы можете скачать файлы сборки roadlib и roadrecon из артефактов Azure Pipelines (нажмите на кнопку "1 Published"). Файлы вывода сборки хранятся в ROADtools.zip. Вы можете установить файлы .whl или .tar.gz напрямую с помощью pip или распаковать оба архива и установить папки в правильном порядке (сначала roadlib):
pip install roadlib/
pip install roadrecon/
Вы также можете установить их в режиме разработки с помощью pip install -e roadlib/.
Разработка фронтенда
Если вы хотите внести изменения в Angular фронтенд, вам потребуется установленный node и npm. Затем установите компоненты из git:
git clone https://github.com/dirkjanm/roadtools.git
pip install -e roadlib/
pip install -e roadrecon/
cd roadrecon/frontend/
npm install
Вы можете запустить Angular фронтенд с помощью npm start или ng serve, используя Angular CLI из директории roadrecon/frontend/. Чтобы собрать JavaScript файлы в директорию dist_gui ROADrecon, выполните npm run build.
Смотрите эту страницу Wiki о том, как начать работу.
roadtx — это инструмент для обмена и использования различных типов токенов, выпущенных Azure AD. Он поддерживает множество различных потоков аутентификации, регистрацию устройств и операции, связанные с PRT. Для обзора инструмента смотрите Wiki roadtx.
Существует несколько способов установить roadtx. Обратите внимание, что roadtx требует Python 3.10 или более новую версию.
Использование опубликованной версии на PyPi
Стабильные версии можно установить с помощью pip install roadtx. Это автоматически добавит команду roadtx в ваш PATH.
Использование версии из GitHub
Вы можете клонировать этот репозиторий и установить сначала roadlib, а затем roadtx, чтобы убедиться, что у вас есть последние версии как инструмента, так и библиотеки:
pip install roadlib/
pip install roadtx/
Вы также можете установить их в режиме разработки с помощью pip install -e roadtx/.
Смотрите Wiki о том, как использовать roadtx. Смотрите также блог о выпуске.