
Веб-инструмент для регистрации активности red team, формирования отчётов и ситуационной осведомлённости с интеграцией Cobalt Strike и BloodHound.
Центр управления активностью Red Team, предназначенный для ведения записей, ситуационной осведомлённости и формирования отчётов. Stepping Stones предоставляет веб-интерфейс для регистрации активности команды и генерации фрагментов отчётов. Интерфейс рассчитан на достаточную скорость работы, чтобы использоваться на всём протяжении задания, а не только на этапе подготовки отчётов.
Stepping Stones — это приложение на Python/Django, поэтому для запуска локальной копии:
python -m venv .venv.venv\Scripts\activate или source .venv/bin/activate в *nixpip install -r requirements.txtpython manage.py makemigrations background_taskpython manage.py migratepython manage.py runserver и python manage.py process_tasks одновременноpython manage.py check --deploy, чтобы получить рекомендации по усилению защиты, а затем следуйте руководству, например:
https://docs.djangoproject.com/en/6.0/howto/deployment/На командном сервере (team server) откройте порт в брандмауэре, чтобы разрешить подключение Stepping Stones, например:
sudo ufw allow proto tcp from 172.31.16.0/20 to any port 50050Если вы запускаете локальную копию, когда код обновлён в git и вы хотите получить новые функции:
sudo service ssbot stopsudo service steppingstones stoprm -rf /tmp/stepping-stones-main; unzip /tmp/stepping-stones-main.zip && cp -R /tmp/stepping-stones-main/* /opt/steppingstones.venv\Scripts\activate или source .venv/bin/activate в *nixpip install -r requirements.txtpython manage.py makemigrations background_taskpython manage.py migrate.
python manage.py makemigrations, ОСТАНОВИТЕСЬ и свяжитесь с разработчиками Stepping Stones — важно, чтобы все пользователи работали с одним и тем же набором скриптов миграции, и их следует согласовывать через разработчиков.sudo service ssbot restartsudo service steppingstones restartjournalctl -u steppingstonesЕсли вы используете один и тот же экземпляр для разных задач и хотите заархивировать старые данные, а затем начать заново, вы можете:
mv db.sqlite3 db.sqlite.OLD_CLIENT_NAMEСистема использует SQLite. Регулярно создавайте резервные копии файла db.sqlite3 в корневом каталоге сервера или через веб-интерфейс, чтобы защитить свои ценные данные.
На каждый настроенный URL веб-хука при наступлении ключевых событий будет отправляться небольшой JSON-документ. JSON-документ всегда имеет следующую структуру:
{
"type": "notification type",
"message": "Human readable message"
}
Поле type может принимать одно из следующих значений:
new beacon (ранее неизвестный beacon подключился к отслеживаемому Team Server)respawned beacon (ранее известный beacon подключился к отслеживаемому Team Server)returned beacon (beacon, который был явно отслеживаем в ожидании переподключения, только что переподключился)Для приёма этих данных можно использовать сценарий https://make.com на основе следующего blueprint:
{"name":"Webhook to iOS","flow":[{"id":1,"module":"gateway:CustomWebHook","version":1,"parameters":{"hook":129792,"maxResults":1},"mapper":{},"metadata":{"designer":{"x":-386,"y":-129},"restore":{"parameters":{"hook":{"data":{"editable":"true"},"label":"My webhook"}}},"parameters":[{"name":"hook","type":"hook:gateway-webhook","label":"Webhook","required":true},{"name":"maxResults","type":"number","label":"Maximum number of results"}],"interface":[{"name":"type","type":"text"},{"name":"message","type":"text"}]}},{"id":8,"module":"ios:SendNotification","version":1,"parameters":{"device":171760},"mapper":{"body":"{{1.message}}","title":"{{1.type}}","action":"","priority":10,"collapsible":false},"metadata":{"designer":{"x":-31,"y":-128},"restore":{"expect":{"action":{"label":"Default"},"priority":{"label":"Deliver immediately"}},"parameters":{"device":{"data":{"editable":"undefined"},"label":"Personal Phone"}}},"parameters":[{"name":"device","type":"device:apn","label":"Device","required":true}],"expect":[{"name":"title","type":"text","label":"Title","required":true},{"name":"body","type":"text","label":"Body"},{"name":"action","type":"select","label":"Action","validate":{"enum":["open_url"]}},{"name":"priority","type":"select","label":"Priority","required":true,"validate":{"enum":[10,5]}},{"name":"collapsible","type":"boolean","label":"Collapse push notifications","required":true}]}}],"metadata":{"instant":true,"version":1,"scenario":{"roundtrips":1,"maxErrors":3,"autoCommit":true,"autoCommitTriggerLast":true,"sequential":false,"confidential":false,"dataloss":false,"dlq":false},"designer":{"orphans":[]},"zone":"eu1.make.com"}}
Импортируйте указанный выше blueprint, создав пустой сценарий и используя функцию «Import Blueprint» в меню «...» (More), которое находится в нижней части веб-интерфейса по центру.