Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
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
24334405 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
  • Assicurarsi che il modulo di terze parti per le attività in background abbia tutte le migrazioni richieste: python manage.py makemigrations background_task
  • Aggiornare lo schema del database: python manage.py migrate
  • 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/
  • 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:

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

    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"}}
    

    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.

    Sono quindi necessari altri due passaggi:

    • Fare clic sul cerchio del webhook e aggiungere un nuovo webhook con nome per generare un URL
    • Fare clic sul logo Apple per registrare un iPhone su make.com con la loro app integromat.

    I webhook possono essere testati tramite un pulsante nella pagina dei webhook di Stepping Stones.

    Modello di sicurezza

    Stepping Stones utilizza il sistema di permessi a livello di modello di Django, consentendo di limitare gli utenti nella creazione, modifica, visualizzazione ed eliminazione di ciascun tipo di modello dati. I gruppi si trovano nella console /admin e assegnano un insieme di permessi, ad esempio adatti al Blue Team di un cliente, a tutti i membri del gruppo.

    I gruppi esistenti sono:

    RuoloDescrizione
    Client Blue Team - Read OnlyPuò leggere la pagina degli eventi e dei file
    Client Blue Team - Limited WriteCome Client Blue Team - Read Only con accesso in scrittura ai campi esito e rilevamento di un evento

    Gli utenti creati durante il processo di installazione ricevono lo stato di "superuser", quindi implicitamente hanno tutti i permessi possibili. Tuttavia, quando si creano manualmente utenti tramite la console admin, assicurarsi che NON siano contrassegnati come "staff" né come "superuser", così da partire senza permessi impliciti e ottenere permessi solo tramite l'aggiunta a gruppi.

    Localizzazione

    I fusi orari degli utenti possono essere modificati tramite il portale /admin. I tempi nei report sono intenzionalmente emessi in UTC per consentire una più facile correlazione da parte dei Blue Team.

    I formati data presentati da Stepping Stones dovrebbero corrispondere alla locale del browser web. Ad esempio, gli utenti il cui browser è configurato con una locale statunitense visualizzeranno le date nel formato MM/DD/YYYY nell'interfaccia web e nei frammenti di report.

    EventStream

    Stepping Stones può acquisire log da altri strumenti se sono formattati nel formato EventStream personalizzato basato su JSON. Il formato è descritto in dettaglio nell'interfaccia web di SteppingStones, inclusi schemi e dati di esempio.

    Una volta che un log EventStream è stato acquisito da Stepping Stones, le voci pertinenti specifiche possono essere clonate in Eventi per il report.

    Dettagli dell'integrazione con Cobalt Strike

    Il metodo preferito per integrare Cobalt Strike è tramite SSBot. Ciò richiede una copia con licenza di Cobalt Strike in /opt/cobaltstrike o c:\tools\cobaltstrike che verrà utilizzata per contattare qualsiasi team server (abilitato) configurato nell'interfaccia Web.

    Una volta integrato:

    • I menu a discesa Source/Target includeranno i beacon
    • I menu a discesa dei file includeranno i file caricati/scaricati tramite CS
    • La scheda Credenziali si popolerà in base all'output degli strumenti e alle eventuali credenziali aggiunte a CS.
    • Le singole azioni CS possono essere trasformate in eventi - si prega di essere selettivi e di aggiungere contesto a ciascun evento piuttosto che duplicare le azioni in blocco per mantenere la qualità del report.

    Sono disponibili comandi CLI aggiuntivi che possono essere usati se SSBot non funziona come previsto:

    • .\manage.py reset_cs_data [-s SERVER] - Reimposta tutti i dati analizzati dal team server indicato, o tutti se non viene indicato alcun nome. Questo non influisce sui dati derivati dai log CS, ad esempio eventi clonati manualmente o credenziali.
    • .\manage.py parse_log_tar <file name> - Analizza il contenuto di una directory di log, compressa in tar e prelevata da un team server. Nota: non include tutti i dati accessibili da SSBot e quindi non è la tecnica di acquisizione preferita

    Integrazione con BloodHound

    I server Neo4j configurati tramite l'interfaccia web verranno utilizzati per:

    • Aggiornare lo stato owned di BloodHound quando vengono aggiunte credenziali con una password o quando un beacon viene eseguito su un host specifico come system.
    • Popolare i menu a discesa Source/Target con utenti e computer
    • Fornire report aggiuntivi sugli account nella sezione delle credenziali di Stepping Stones

    Plugin di reporting

    È possibile estendere le funzionalità di Stepping Stones tramite plugin. La documentazione aggiuntiva è disponibile qui.

    Scarica lo strumento