
Инструмент Azure Red Team для построения графа Azure и Azure Active Directory объектов.

Stormspotter создает «граф атак» ресурсов в подписке Azure. Он позволяет красным командам и пентестерам визуализировать поверхность атаки и возможности для перехода (pivot) внутри тенанта, а также усиливает возможности ваших защитников быстро ориентироваться и расставлять приоритеты в работе по реагированию на инциденты.
Большинству пользователей может быть проще установить Stormspotter через Docker. Это рекомендуемый метод.
git clone https://github.com/Azure/Stormspotter
docker-compose up
Файл docker-compose создаст три контейнера:
По умолчанию контейнер Stormspotter будет открывать пользовательский интерфейс на порту 9091. Контейнер neo4j будет открывать neo4j на портах 7474 (HTTP) и 7687 (Bolt). В конфигурации Neo4j по умолчанию SSL не включен, поэтому вы можете изначально взаимодействовать напрямую с интерфейсом neo4j на порту 7474.
Примечание: В настоящее время Stormspotter поддерживает запуск этих контейнеров только локально. Попытка загрузить данные на удаленно размещенный фронтенд будет безуспешной, но ожидается, что это поведение изменится в будущем.
Учетные данные по умолчанию для neo4j: neo4j/password. Вы можете изменить это в файле docker-compose через переменную окружения NEO4JAUTH.
Если вы решите запускать Stormspotter без Docker, у вас должны быть установлены Python 3.8, NodeJS/npm и Neo4j. Вы также можете скачать последние релизы Stormspotter здесь.
Бэкенд, обрабатывающий данные для Neo4j, построен с использованием FastAPI. Если вы не планируете загружать новый контент в базу данных, вам может не понадобиться запускать бэкенд вовсе. Бэкенд настроен на работу на порту 9090. Вы можете изменить это, изменив номер порта в строке 5 файла app.py. Если вы это сделаете, вы также должны изменить порт в компоненте Q-Uploader в DatabaseView Component, чтобы загрузки с фронтенда отправлялись на правильный порт, где находится бэкенд.
cd backend
python3 ssbackend.pyz
Веб-приложение разработано с использованием Vue и Quasar Framework. Одностраничное приложение (SPA) было собрано для вас и находится в frontend/dist/spa. Чтобы обслуживать этот каталог:
npm install -g @quasar/cli
cd frontend/dist/spa
quasar serve -p 9091 --history
Затем вы можете открыть http://localhost:9091 в своем браузере.
Stormcollector — это часть Stormspotter, которая позволяет перечислять подписки, к которым имеют доступ предоставленные учетные данные. РЕКОМЕНДУЕМЫЙ способ использования Stormcollector — запустить пакет sscollector.pyz, который находится в файле релиза для вашей операционной системы. Этот PYZ-пакет создан с помощью Shiv и включает все необходимые пакеты, уже упакованные! Зависимости извлекутся в папку .shiv в домашнем каталоге пользователя.
cd stormcollector
python3 sscollector.pyz -h
Если по какой-то причине вы не хотите использовать предоставленный пакет, вы можете установить необходимые пакеты с помощью pip или pipenv. При таком подходе настоятельно рекомендуется устанавливать Stormcollector в виртуальное окружение, чтобы избежать конфликтов пакетов. Если у вас возникают проблемы с управлением виртуальными окружениями, используйте рекомендуемый выше метод.
cd stormcollector
python3 -m pip install pipenv
pipenv install .
python3 ./sscollector.py
Поддерживаемые типы входа:
az login)Вы можете просмотреть все опции, предлагаемые Stormcollector, используя ключ -h, как показано выше. Самые основные варианты использования Stormcollector:
python3 sscollector.pyz cli
python3 sscollector.pyz spn -t <tenant> -c <clientID> -s <clientSecret>
Общие опции для всех типов аутентификации
Загрузка результатов
После запуска пользовательского интерфейса вы увидите раздел на вкладке базы данных под названием "Stormcollector Upload". Добавьте ваш файл в этот загрузчик, и начнется обработка. По мере обработки результатов вы можете проверять логи бэкенда, чтобы отслеживать прогресс, и результаты также должны отражаться на той же вкладке Database View.
Просмотр разрешений на KeyVault

Показать участников роли Azure AD

Показать входящие и исходящие связи

Этот проект приветствует вклад и предложения. Большинство вкладов требуют вашего согласия с Соглашением о лицензии на вклад (CLA), подтверждающим, что вы имеете право и действительно предоставляете нам права на использование вашего вклада. Подробности см. на https://cla.opensource.microsoft.com.
Когда вы отправляете запрос на слияние (pull request), бот CLA автоматически определит, нужно ли вам предоставить CLA, и соответствующим образом оформит PR (например, проверка статуса, комментарий). Просто следуйте инструкциям бота. Вам нужно будет сделать это только один раз для всех репозиториев, использующих наш CLA.
Этот проект принял Кодекс поведения Microsoft для открытого исходного кода. Для получения дополнительной информации см. Часто задаваемые вопросы о Кодексе поведения или обращайтесь по адресу [email protected] с любыми дополнительными вопросами или комментариями.