Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
SteppingStones — Webbasiertes Red-Team-Tool für Aktivitätsprotokollierung, Berichterstattung und Lagebewusstsein mit Cobalt Strike- und BloodHound-Integration. | Kitploit
Tools/GitHubGitHub/nccgroup/steppingstones
Scripting & AutomatisierungInformationsbeschaffungPenetrationstestsCommand and ControlDienstprogramme & FrameworksRed Teaming
GitHubnccgroup/steppingstones

SteppingStones

Webbasiertes Red-Team-Tool für Aktivitätsprotokollierung, Berichterstattung und Lagebewusstsein mit Cobalt Strike- und BloodHound-Integration.

Repository anzeigen
24334vor 22h 49mVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Webseite

Stepping Stones

Zweck

Ein Hub für Red-Team-Aktivitäten zur Unterstützung der Dokumentation, des Lagebewusstseins und der Berichterstattung. Stepping Stones bietet eine webbasierte Benutzeroberfläche, mit der das Team Aktivitäten protokollieren und Berichtsausschnitte erstellen kann. Die Benutzeroberfläche soll schnell genug sein, um während des gesamten Engagements verwendet zu werden, nicht nur in der Berichtsphase.

Link zum Release-Blogbeitrag

Installation

Stepping Stones ist eine Python-Django-Anwendung. So erhalten Sie eine lokale Kopie:

  1. Installieren Sie die neueste Version von Python 3 (getestet mit 3.12.2 unter Windows und Linux)
  2. Wechseln Sie in das Stammverzeichnis einer Kopie dieses Repositorys
  3. Erstellen Sie eine virtuelle Umgebung, um die Abhängigkeiten von anderen Apps zu trennen: python -m venv .venv
  4. Aktivieren Sie die virtuelle Umgebung: .venv\Scripts\activate oder source .venv/bin/activate unter *nix
  5. Installieren Sie die Abhängigkeiten: pip install -r requirements.txt
  6. Stellen Sie sicher, dass das Modul für Drittanbieter-Hintergrundaufgaben über alle erforderlichen Migrationen verfügt: python manage.py makemigrations background_task
  7. Bringen Sie das Datenbankschema auf den neuesten Stand: python manage.py migrate
  8. Starten Sie die Anwendung:
    • Wenn Sie auf einem Linux-System mit systemd arbeiten, finden Sie weitere Informationen im systemd-Leitfaden
    • Für Entwicklerversionen:
      • Führen Sie python manage.py runserver und python manage.py process_tasks gleichzeitig aus
    • Für Produktionsversionen:
      • Führen Sie python manage.py check --deploy aus, um Empfehlungen zur Absicherung zu erhalten, und folgen Sie dann einem Leitfaden wie: https://docs.djangoproject.com/en/6.0/howto/deployment/
  9. Rufen Sie die Anwendung auf, um eine Aufgabe und einen Admin-Benutzer zu konfigurieren: z. B. http://127.0.0.1:8000 aufrufen, wenn Sie lokal arbeiten
    • Hinweis: Der erstellte Benutzer wird auch für die Hauptanwendung verwendet und als „Red-Team-Operator“ bei protokollierten Ereignissen angezeigt. Wählen Sie daher einen geeigneten Benutzernamen, z. B. „ST“ oder „stephen“, statt „admin“. Wenn Sie die Cobalt-Strike-Integration verwenden, erleichtert die Verwendung derselben Benutzernamen für beide Tools die Integration.

Cobalt Strike-Integration

  • Platzieren Sie eine LIZENZIERTE Cobalt-Strike-Installation in /opt/cobaltstrike oder c:\tools\cobaltstrike-dist\cobaltstrike

Auf dem Team-Server – öffnen Sie einen Port in der Firewall, damit Stepping Stones eine Verbindung herstellen kann, z. B.:

  • Unter AWS: Legen Sie fest, dass die Sicherheitsgruppe von Stepping Stones über Port 50050 auf den Team-Server zugreifen darf
  • Auf dem Host: Stellen Sie sicher, dass die Firewall ebenfalls eingehenden Verkehr erlaubt, z. B. sudo ufw allow proto tcp from 172.31.16.0/20 to any port 50050

Aktualisieren der Anwendung

Wenn Sie eine lokale Kopie verwenden und der Code in Git aktualisiert wurde und Sie die neuen Funktionen wünschen:

  1. Stoppen Sie beide Dienste, z. B. mit systemd:
    • sudo service ssbot stop
    • sudo service steppingstones stop
  2. Laden Sie die neueste Version herunter, z. B. von https://github.com/nccgroup/SteppingStones/archive/refs/heads/main.zip
  3. Entpacken Sie den Download und kopieren Sie die Dateien über die Bereitstellung, z. B. rm -rf /tmp/stepping-stones-main; unzip /tmp/stepping-stones-main.zip && cp -R /tmp/stepping-stones-main/* /opt/steppingstones
  4. Aktivieren Sie die virtuelle Umgebung (falls noch nicht geschehen) aus dem Verzeichnis steppingstones: .venv\Scripts\activate oder source .venv/bin/activate unter *nix
  5. Ziehen Sie alle neuen Abhängigkeiten mit: pip install -r requirements.txt
  6. Stellen Sie sicher, dass das Modul für Drittanbieter-Hintergrundaufgaben über alle erforderlichen Migrationen verfügt: python manage.py makemigrations background_task
  7. Führen Sie alle Migrationsskripte aus, um Ihre lokale Datenbank an das neue Schema anzupassen: python manage.py migrate.

Neu beginnen mit einer sauberen Datenbank

Wenn Sie dieselbe Instanz für verschiedene Aufträge verwenden und die alten Daten archivieren möchten, um dann neu zu starten, können Sie:

  • Führen Sie Schritt 1 aus Aktualisieren der Anwendung oben aus, um die Anwendung zu stoppen
  • Benennen Sie die SQLite-Datenbank um:
    • mv db.sqlite3 db.sqlite.OLD_CLIENT_NAME
  • Führen Sie die Schritte 2, 4 und 7-9 aus Installation oben aus, um die korrekte Datenbankstruktur zu erstellen und auf die frisch konfigurierte Anwendung zuzugreifen.

Backups

Das System verwendet SQLite. Sichern Sie die Datei db.sqlite3 im Stammverzeichnis des Servers oder regelmäßig über die Weboberfläche, um Ihre wertvollen Daten zu schützen.

Webhooks

Den konfigurierten Webhook-URLs wird bei Schlüsselereignissen jeweils ein kleines JSON-Dokument gesendet. Das JSON-Dokument hat immer die folgende Struktur:

root@kitploit:~
{
    "type": "notification type",
    "message": "Human readable message"
}

Das Feld type kann einen der folgenden Werte haben:

  • new beacon (Ein bisher unbekannter Beacon hat sich mit einem überwachten Team-Server verbunden)
  • respawned beacon (Ein zuvor gesehener Beacon hat sich mit einem überwachten Team-Server verbunden)
  • returned beacon (Ein Beacon, der ausdrücklich auf Wiederverbindung überwacht wurde, hat sich gerade wieder verbunden)

Zum Konsumieren können Sie ein https://make.com-Szenario basierend auf dem folgenden Blueprint verwenden:

root@kitploit:~
{"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"}}

Importieren Sie den obigen Blueprint, indem Sie ein leeres Szenario erstellen und die Funktion „Import Blueprint“ im Menü „...“ (Mehr) verwenden, das sich unten in der Mitte der Weboberfläche befindet.

Danach sind zwei weitere Schritte erforderlich:

  • Klicken Sie auf den Webhook-Kreis und fügen Sie einen neuen benannten Webhook hinzu, um eine URL zu generieren
  • Klicken Sie auf das Apple-Logo, um ein iPhone mit der Integromat-App bei make.com anzumelden.

Webhooks können über eine Schaltfläche auf der Stepping-Stones-Webhook-Seite getestet werden.

Sicherheitsmodell

Stepping Stones nutzt das Berechtigungssystem auf Modellebene von Django und ermöglicht es, Benutzer beim Erstellen, Bearbeiten, Anzeigen und Löschen jedes Datentyps einzuschränken. Gruppen finden Sie in der /admin-Konsole, die einer Gruppe von Berechtigungen entsprechen, z. B. geeignet für das Blue Team eines Kunden, die allen Mitgliedern dieser Gruppe zugewiesen werden.

Bestehende Gruppen sind:

RolleBeschreibung
Client Blue Team - Read OnlyKann die Seiten für Ereignisse und Dateien lesen
Client Blue Team - Limited WriteWie Client Blue Team - Read Only mit Schreibzugriff auf die Felder „Ergebnis“ und „Erkennung“ eines Ereignisses

Benutzer, die während der Installation erstellt werden, erhalten den Status „Superuser“ und haben damit implizit alle möglichen Berechtigungen. Wenn Sie Benutzer jedoch manuell über die Admin-Konsole erstellen, stellen Sie sicher, dass sie NICHT als „Staff“ oder „Superuser“ markiert sind, damit sie ohne implizite Berechtigungen beginnen und daher nur durch die Aufnahme in Gruppen Berechtigungen erhalten.

Lokalisierung

Die Zeitzonen der Benutzer können über das /admin-Portal geändert werden. Zeiten in den Berichten werden absichtlich in UTC ausgegeben, um Blue Teams eine einfachere Korrelation zu ermöglichen.

Die von Stepping Stones angezeigten Datumsformate sollten der Locale des Webbrowsers entsprechen. D. h. Benutzer, deren Browser mit einer US-Locale konfiguriert ist, sehen Daten im Format MM/TT/JJJJ in der Weboberfläche und in Berichtsausschnitten.

EventStream

Stepping Stones kann Protokolle anderer Tools aufnehmen, sofern diese in das JSON-basierte, maßgeschneiderte EventStream-Format formatiert sind. Das Format wird in der Weboberfläche von SteppingStones detailliert beschrieben, einschließlich Schemas und Beispieldaten.

Sobald ein EventStream-Protokoll von Stepping Stones aufgenommen wurde, können relevante Einträge für den Bericht in Ereignisse geklont werden.

Details zur Cobalt-Strike-Integration

Die bevorzugte Methode zur Integration von Cobalt Strike ist über SSBot. Dazu ist eine lizenzierte Kopie von Cobalt Strike in /opt/cobaltstrike oder c:\tools\cobaltstrike erforderlich, die verwendet wird, um alle (aktivierten) Team-Server zu kontaktieren, die in der Weboberfläche konfiguriert sind.

Nach der Integration:

  • Die Dropdowns für Quelle/Ziel enthalten Beacons
  • Die Datei-Dropdowns enthalten Dateien, die über CS hoch-/heruntergeladen wurden
  • Der Reiter „Anmeldedaten“ wird basierend auf der Tool-Ausgabe und allen zu CS hinzugefügten Anmeldedaten befüllt
  • Einzelne CS-Aktionen können in Ereignisse umgewandelt werden – bitte seien Sie selektiv und fügen Sie jedem Ereignis Kontext hinzu, anstatt Aktionen in großem Umfang zu duplizieren, um die Berichtsqualität zu erhalten.

Es gibt zusätzliche CLI-Befehle, die verwendet werden können, falls SSBot nicht wie erwartet funktioniert:

  • .\manage.py reset_cs_data [-s SERVER] – Setzt alle Daten zurück, die von dem angegebenen Team-Server geparst wurden, oder von allen, wenn kein Name angegeben wird. Dies wirkt sich nicht auf Daten aus, die aus den CS-Protokollen abgeleitet wurden, z. B. manuell geklonte Ereignisse oder Anmeldedaten.
  • .\manage.py parse_log_tar <file name> – Parst den Inhalt eines Logs-Verzeichnisses, das archiviert und von einem Team-Server geholt wurde. Hinweis: Dies umfasst nicht alle Daten, die SSBot zugänglich sind, und ist daher nicht die bevorzugte Aufnahmemethode.

BloodHound-Integration

Neo4j-Server, die über die Weboberfläche konfiguriert wurden, werden verwendet, um:

  • Den BloodHound-Status owned zu aktualisieren, wenn Anmeldedaten mit einem Passwort hinzugefügt werden oder ein Beacon als System auf einem bestimmten Host ausgeführt wird
  • Die Dropdowns für Quelle/Ziel mit Benutzern und Computern zu befüllen
  • Zusätzliche Berichte zu Konten im Bereich „Anmeldedaten“ von Stepping Stones bereitzustellen.

Reporting-Plugins

Es ist möglich, die Funktionalität von Stepping Stones über Plugins zu erweitern. Weitere Dokumentation finden Sie hier.

Tool herunterladen
  • Wenn Django Sie auffordert, python manage.py makemigrations auszuführen, dann STOPPEN Sie und kontaktieren Sie die Stepping-Stones-Entwickler – es ist wichtig, dass alle Benutzer mit demselben Satz an Migrationsskripten arbeiten, und diese sollten über die Entwickler koordiniert werden.
  • Starten Sie beide Dienste neu, z. B. mit systemd:
    • sudo service ssbot restart
    • sudo service steppingstones restart
  • Stellen Sie sicher, dass keine Fehler auftreten, z. B. mit systemd journalctl -u steppingstones