Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
SteppingStones — Strumento basato sul web per la registrazione delle attività di red team, il reporting e la consapevolezza situazionale, con integrazione con Cobalt Strike e BloodHound. | Kitploit
Strumenti/GitHubGitHub/nccgroup/steppingstones
Scripting e AutomazioneRaccolta InformazioniPenetration TestingCommand and ControlUtilità e FrameworkRed Teaming
GitHubnccgroup/steppingstones

SteppingStones

Strumento basato sul web per la registrazione delle attività di red team, il reporting e la consapevolezza situazionale, con integrazione con Cobalt Strike e BloodHound.

Vedi Repository
24334592 giorni faRevisionato da Kitploit
Sito web

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Stepping Stones

Scopo

Un hub per l'attività Red Team per supportare la tenuta dei registri, la consapevolezza situazionale e il reporting. Stepping Stones fornisce un'interfaccia web per il team per registrare le attività e generare frammenti di report. L'interfaccia è pensata per essere abbastanza rapida da essere usata durante tutta l'operazione, non solo nella fase di reporting.

Articolo del blog di rilascio

Installazione

Stepping Stones è un'applicazione Python Django, quindi per avere una copia locale in esecuzione:

  1. Installare l'ultima versione di Python 3 (testata con 3.12.2 su Windows e Linux)
  2. Spostarsi nella directory radice di una copia di questo repository
  3. Creare un ambiente virtuale per mantenere le dipendenze separate dalle altre app: python -m venv .venv
  4. Attivare l'ambiente virtuale: .venv\Scripts\activate oppure source .venv/bin/activate su *nix
  5. Installare le dipendenze: pip install -r requirements.txt
  6. Assicurarsi che il modulo di terze parti per le attività in background abbia tutte le migrazioni richieste: python manage.py makemigrations background_task
  7. Aggiornare lo schema del database: python manage.py migrate
  8. Avviare l'applicazione:
    • Se si esegue su un sistema Linux con systemd, vedere guida systemd
    • Per le versioni di sviluppo:
      • Eseguire python manage.py runserver e python manage.py process_tasks contemporaneamente
    • Per le versioni di produzione:
      • Eseguire python manage.py check --deploy per ottenere consigli sull'indurimento, quindi seguire una guida come: https://docs.djangoproject.com/en/6.0/howto/deployment/
  9. Visitare l'applicazione per configurare un task e un utente admin: ad esempio accedere a http://127.0.0.1:8000 se si esegue localmente
    • Nota: l'utente creato verrà utilizzato anche per l'app principale e verrà mostrato come "operatore red team" in corrispondenza degli eventi registrati, quindi scegliere un nome utente adeguato, ad esempio "ST" o "stephen", piuttosto che "admin". Se si utilizza l'integrazione con Cobalt Strike, l'uso degli stessi nomi utente per entrambi gli strumenti faciliterà l'integrazione.

Integrazione con Cobalt Strike

  • Posizionare una copia CON LICENZA di Cobalt Strike in /opt/cobaltstrike o c:\tools\cobaltstrike-dist\cobaltstrike

Sul team server - aprire un varco nel firewall per consentire a Stepping Stones di connettersi, ad esempio:

  • Su AWS, impostare il security group di Stepping Stones in modo che sia consentito l'accesso alla porta 50050 sul Team Server
  • Sull'host, assicurarsi che il firewall consenta anche il traffico in ingresso, ad esempio sudo ufw allow proto tcp from 172.31.16.0/20 to any port 50050

Aggiornamento dell'applicazione

Se si esegue una copia locale, quando il codice è stato aggiornato in git e si desiderano le nuove funzionalità:

  1. Fermare entrambi i servizi, ad esempio con systemd:
    • sudo service ssbot stop
    • sudo service steppingstones stop
  2. Ottenere l'ultima versione, ad esempio da https://github.com/nccgroup/SteppingStones/archive/refs/heads/main.zip
  3. Decomprimere il download e copiare i file sopra la distribuzione, ad esempio rm -rf /tmp/stepping-stones-main; unzip /tmp/stepping-stones-main.zip && cp -R /tmp/stepping-stones-main/* /opt/steppingstones
  4. Attivare l'ambiente virtuale (se non già fatto) dalla directory steppingstones: .venv\Scripts\activate oppure source .venv/bin/activate su *nix
  5. Installare eventuali nuove dipendenze con: pip install -r requirements.txt
  6. Assicurarsi che il modulo di terze parti per le attività in background abbia tutte le migrazioni richieste: python manage.py makemigrations background_task
  7. Eseguire eventuali script di migrazione per trasformare il database locale nel nuovo schema: python manage.py migrate.
    • Se Django chiede di eseguire python manage.py makemigrations, FERMARSI e contattare gli sviluppatori di Stepping Stones - è importante che tutti gli utenti lavorino con lo stesso set di script di migrazione e che questi siano coordinati tramite gli sviluppatori.
  8. Riavviare entrambi i servizi, ad esempio con systemd:
    • sudo service ssbot restart
    • sudo service steppingstones restart
  9. Assicurarsi che non ci siano errori, ad esempio con systemd journalctl -u steppingstones

Ricominciare con un database pulito

Se si sta usando la stessa istanza per diversi lavori e si desidera archiviare i vecchi dati per poi ricominciare da zero, si può:

  • Eseguire il punto 1 della sezione Aggiornamento dell'applicazione qui sopra per fermare l'applicazione
  • Rinominare il database SQLite:
    • mv db.sqlite3 db.sqlite.OLD_CLIENT_NAME
  • Eseguire i punti 2, 4 e 7-9 della sezione Installazione qui sopra per creare la struttura corretta del database e accedere all'applicazione appena configurata.

Backup

Il sistema usa SQLite. Eseguire periodicamente il backup del file db.sqlite3 nella radice del server o tramite l'interfaccia Web per proteggere i propri dati preziosi.

Webhook

A ciascun URL di webhook configurato verrà inviato un piccolo documento JSON in corrispondenza di eventi chiave. Il documento JSON ha sempre la struttura:

{
    "type": "notification type",
    "message": "Human readable message"
}

Il campo type può essere uno dei seguenti:

  • new beacon (un beacon mai visto prima si è connesso a un Team Server monitorato)
  • respawned beacon (un beacon già visto si è connesso a un Team Server monitorato)
  • returned beacon (un beacon esplicitamente monitorato per la riconnessione si è appena riconnesso)

Per consumare questi dati, si può usare uno scenario https://make.com, basato sul seguente 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"}}

Importare il blueprint precedente creando uno scenario vuoto e usando la funzione "Import Blueprint" nel menu "..." (Altro) che si trova al centro in basso nell'interfaccia Web.

Scarica lo strumento