
Outil web de journalisation des activités de red team, de génération de rapports et de connaissance de la situation, avec intégration de Cobalt Strike et BloodHound.
Un hub pour l'activité Red Team afin de faciliter la tenue de registres, la connaissance de la situation et le reporting. Stepping Stones fournit une interface web permettant à l'équipe de consigner son activité et de générer des extraits de rapport. L'interface est conçue pour être suffisamment rapide pour être utilisée tout au long de la mission, et pas seulement en phase de reporting.
Stepping Stones est une application Python Django, donc pour obtenir une copie locale fonctionnelle :
python -m venv .venv.venv\Scripts\activate ou source .venv/bin/activate sur *nixpip install -r requirements.txtpython manage.py makemigrations background_taskpython manage.py migratepython manage.py runserver et python manage.py process_tasks simultanémentpython manage.py check --deploy pour obtenir des recommandations de durcissement, puis suivez un guide tel que :
https://docs.djangoproject.com/en/6.0/howto/deployment/Sur le serveur d'équipe, ouvrez une porte dans le pare-feu pour permettre à Stepping Stones de se connecter, par ex. :
sudo ufw allow proto tcp from 172.31.16.0/20 to any port 50050Si vous exécutez une copie locale, lorsque le code a été mis à jour dans git et que vous souhaitez profiter des nouvelles fonctionnalités :
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 sur *nixpip install -r requirements.txtpython manage.py makemigrations background_taskpython manage.py migrate.
python manage.py makemigrations, arrêtez-vous et contactez les développeurs de Stepping Stones – il est important que tous les utilisateurs travaillent à partir du même ensemble de scripts de migration et ceux-ci doivent être coordonnés par les développeurs.sudo service ssbot restartsudo service steppingstones restartjournalctl -u steppingstonesSi vous utilisez la même instance pour différents travaux et souhaitez archiver les anciennes données puis repartir de zéro, vous pouvez :
mv db.sqlite3 db.sqlite.OLD_CLIENT_NAMELe système utilise SQLite. Sauvegardez régulièrement le fichier db.sqlite3 situé à la racine du serveur ou via l'interface web pour protéger vos précieuses données.
Chacune des URL de webhook configurées recevra un petit document JSON lors des événements clés. Le document JSON a toujours la structure suivante :
{
"type": "notification type",
"message": "Human readable message"
}
Le champ type peut être l'une des valeurs suivantes :
new beacon (un beacon jamais vu auparavant s'est connecté à un Team Server surveillé)respawned beacon (un beacon déjà vu s'est connecté à un Team Server surveillé)returned beacon (un beacon explicitement surveillé pour une reconnexion vient de se reconnecter)Pour consommer ces notifications, vous pouvez utiliser un scénario https://make.com, basé sur le blueprint suivant :
{"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"}}