
Ferramenta baseada na web para registro de atividades de red team, geração de relatórios e consciência situacional, com integração com Cobalt Strike e BloodHound.
Um hub para atividades de Red Team para auxiliar no registro de informações, consciência situacional e relatórios. O Stepping Stones fornece uma UI baseada na web para a equipe registrar atividades e gerar trechos de relatórios. A UI é projetada para ser rápida o suficiente para ser usada durante todo o engajamento, não apenas na fase de relatórios.
Postagem do Blog de Lançamento
O Stepping Stones é uma aplicação Python Django, então para ter uma cópia local em execução:
python -m venv .venv.venv\Scripts\activate ou source .venv/bin/activate no *nixpip install -r requirements.txtpython manage.py makemigrations background_taskpython manage.py migratepython manage.py runserver e python manage.py process_tasks simultaneamentepython manage.py check --deploy para obter recomendações de endurecimento e depois siga um guia como:
https://docs.djangoproject.com/en/6.0/howto/deployment/No Team Server - abra uma brecha no firewall para permitir que o Stepping Stones se conecte, ex.:
sudo ufw allow proto tcp from 172.31.16.0/20 to any port 50050Se estiver executando uma cópia local, quando o código for atualizado no git e você quiser os novos recursos:
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 ou source .venv/bin/activate no *nixpip install -r requirements.txtpython manage.py makemigrations background_taskpython manage.py migrate.
python manage.py makemigrations, então PARE e contate os desenvolvedores do Stepping Stones - é importante que todos os usuários estejam trabalhando com o mesmo conjunto de scripts de migração e que isso seja coordenado pelos desenvolvedores.sudo service ssbot restartsudo service steppingstones restartjournalctl -u steppingstonesSe você estiver usando a mesma instância para diferentes trabalhos e quiser arquivar os dados antigos e recomeçar, você pode:
mv db.sqlite3 db.sqlite.OLD_CLIENT_NAMEO sistema usa SQLite. Faça backup do arquivo db.sqlite3 na raiz do servidor ou pela interface web periodicamente para proteger seus dados valiosos.
Cada uma das URLs de webhook configuradas receberá um pequeno documento JSON em eventos importantes. O documento JSON sempre tem a estrutura:
{
"type": "notification type",
"message": "Human readable message"
}
O campo type pode ser um dos seguintes:
new beacon (Um beacon nunca antes visto conectou-se a um Team Server monitorado)respawned beacon (Um beacon já visto conectou-se a um Team Server monitorado)returned beacon (Um beacon que estava sendo explicitamente monitorado para reconexão acabou de se reconectar)Para consumir isso, você pode usar um cenário do https://make.com, baseado no seguinte 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"}}
Importe o blueprint acima criando um cenário em branco e usando o recurso "Import Blueprint" no menu "..." (Mais) encontrado no centro inferior da interface web.
Mais dois passos são necessários em seguida: