
Инструмент 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.