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
jackdaw — raccogliere raccogliere raccogliere | Kitploit
Strumenti/GitHubGitHub/skelsec/jackdaw
Password CrackingRaccolta InformazioniPenetration TestingRilevamento di Anomalie
GitHubskelsec/jackdaw

jackdaw

raccogliere raccogliere raccogliere

Vedi Repository
585861 anno faRevisionato da Kitploit

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

jackdaw

raccogli raccogli raccogli jackdaw_card

Cos'è questo?

Jackdaw è qui per raccogliere tutte le informazioni nel tuo dominio, archiviarle in un database SQL e mostrarti bei grafici su come gli oggetti del tuo dominio interagiscono tra loro e come un potenziale attaccante potrebbe sfruttare queste interazioni. Include anche una pratica funzionalità per aiutarti in un progetto di cracking delle password memorizzando/consultando/reportando hash/password/utenti.

Informazioni rapide sull'uso

  • Se non utilizzi la raccolta automatica (es. non su Windows) dovrai creare un database vuoto iniziale tramite dbinit
  • Per prima cosa devi eseguire enum. Questo può essere fatto automaticamente su Windows facendo doppio clic sul file eseguibile, o digitando jackdaw.exe auto.
  • In secondo luogo dovrai eseguire nest per ottenere l'interfaccia web. Di default viene servita su http://127.0.0.1:5000/nest; c'è un'API documentata con SWAGGER su http://127.0.0.1:5000/ui.
  • Per l'interfaccia web, dovrai andare alla vista del dominio e cliccare su Generate graph cache una sola volta per ottenere le informazioni sugli archi in un file cache. Potrebbe volerci un po', ma nella riga di comando vedrai una barra di avanzamento.
  • Dopo che la cache del grafico è pronta, puoi giocare con il grafico nella graph view ma non dimenticare di selezionare il numero di cache corretto in alto a sinistra.

Trucchi/Suggerimenti per le prestazioni

Questa sezione verrà aggiornata regolarmente in base ai feedback degli utenti.

Raccolta dati

Nessun consiglio qui; mentre alcuni miglioramenti possono essere fatti nel codice, non c'è nulla che un generico possa fare.

Generazione del file cache dei dati del grafico

La generazione del file cache dei dati del grafico deve essere eseguita una volta per ogni grafico (e una sola volta), il che può richiedere un po' di tempo usando lo strumento sqlalchemy predefinito.
Le prestazioni e la velocità possono migliorare significativamente (oltre 50x più velocità e 20x meno memoria) se usi il backend sqlite E metti l'utilità da riga di comando "sqlite3" da qualche parte nel PATH. Lo consiglio a tutti gli utenti.

Calcolo del percorso e caricamento dei dati del grafico

Qui entra in gioco il grande compromesso. Le prime implementazioni di Jackdaw usavano il modulo networkx come backend del grafico poiché è completamente scritto in Python. Ma questo comportava un costo significativo in termini di memoria e velocità. Per mantenere Jackdaw puramente Python, questa opzione esiste ancora, tuttavia l'uso del backend igraph è ora predefinito.
Nota: igraph è una libreria C++ con binding Python. Ha wheel precompilati per Windows e le principali distribuzioni Linux, ma se usi Jackdaw su qualcos'altro (sistemi embedded/telefoni cellulari/browser web) dovrai tornare a networkx o sopportare ore di compilazione.

Comandi di esempio

Enumerazione automatica - solo Windows, con utente unito al dominio -

Non c'è bisogno di pre-inizializzare il database, verrà fatto automaticamente. Usando il binario distribuito puoi semplicemente fare doppio clic su jackdaw.exe
Usando come script Python: jackdaw auto

Inizializzazione DB

jackdaw --sql sqlite:///<percorso completo>/test.db dbinit
SU SISTEMI LINUX <percorso completo> include la prima / quindi avrai //// quattro (4) trattini prima del nome del file. Non preoccuparti.

Enumerazione

Enumerazione completa con SSPI integrato - solo Windows

jackdaw --sql sqlite:///test.db enum 'ldap+sspi-ntlm://<dominio>\<segnaposto>@10.10.10.2' 'smb+sspi-ntlm://<dominio>\<segnaposto>@10.10.10.2'

Enumerazione completa con nome utente e password - indipendente dalla piattaforma

La password è Passw0rd!
jackdaw --sql sqlite:///test.db enum 'ldap+ntlm-password://TEST\vittima:[email protected]' 'smb+ntlm-password://TEST\vittima:[email protected]'

Enumerazione solo LDAP con nome utente e password - indipendente dalla piattaforma

La password è Passw0rd!
jackdaw --sql sqlite:///test.db ldap 'ldap+ntlm-password://TEST\vittima:[email protected]'

Avvia interfaccia web interattiva per tracciare il grafico e accedere a funzionalità aggiuntive

jackdaw --sql sqlite:///<PERCORSO COMPLETO AL DB> nest

Apri http://127.0.0.1:5000/ui per l'API

Vedi la sezione Costruire l'interfaccia utente più avanti per imparare come costruire l'UI. Una volta costruita:

Apri http://127.0.0.1:5000/nest per l'interfaccia del grafico (mostra il grafico, ma ben lontano dall'essere funzionante)

Funzionalità

Acquisizione dati

tramite LDAP

La fase di enumerazione LDAP acquisisce dati su informazioni AD, oggetti Utente, Macchina, OU, Gruppo che saranno rappresentati come nodi nel grafico e come tabelle separate nel DB. Inoltre, il Descrittore di Sicurezza di tutti gli oggetti menzionati verrà analizzato e gli ACL per il DACL aggiunti al DB. Questo, insieme alle informazioni di appartenenza, sarà rappresentato come archi nel grafico. Inoltre, quando necessario, è possibile eseguire query SQL personalizzate su qualsiasi tipo di dato sopra menzionato.

tramite SMB

La fase di enumerazione SMB acquisisce dati su condivisioni, gruppi locali, sessioni, dati NTLM tramite connessione a ciascuna macchina nel dominio (acquisita tramite LDAP)

tramite Kerberos

Il modulo Kerberos esegue automaticamente kerberoasting e aspreproasting

tramite dump di LSASS (opzionale)

Il framework permette agli utenti di caricare dump di memoria LSASS per memorizzare le credenziali e ampliare la tabella delle informazioni sulle sessioni. Entrambi saranno usati come archi aggiuntivi nel grafico (rispettivamente password condivise e sessioni). Il framework usa anche queste informazioni per creare un report sulle password deboli/condivise/crackate.

tramite risultati DCSYNC (opzionale)

Il framework permette agli utenti di caricare file DCSYNC di impacket per memorizzare le credenziali. Questo sarà usato come archi aggiuntivi nel grafico (password condivise). Il framework usa anche queste informazioni per creare un report sulle password deboli/condivise/crackate.

tramite caricamento manuale (opzionale)

Il framework permette di estendere manualmente il DB disponibile in ogni aspetto. Esempio: quando vengono scoperte informazioni sulle sessioni utente su un dato computer (al di fuori dell'enumerazione automatica), c'è la possibilità di caricare manualmente queste sessioni, che popoleranno il DB e anche il grafico risultante.

Grafico

Il framework può generare un grafico usando le informazioni disponibili nel database e visualizzarlo tramite l'interfaccia web (nest). Inoltre, la generazione del grafico e i calcoli dei percorsi possono essere invocati programmaticamente, sia tramite l'API web (endpoint /ui) sia tramite le funzioni dell'oggetto grafico.

Rilevamento anomalie

Il framework può identificare le misconfigurazioni AD comuni senza generare il grafico. Attualmente solo tramite l'API web.

Utente

Il rilevamento di anomalie utente include la rilevazione di permessi UAC insicuri e valori estesi nella descrizione dell'utente. Si prevede che questo insieme di funzionalità cresca in futuro man mano che verranno implementate nuove funzionalità.

Macchina

Il rilevamento di anomalie macchina include la rilevazione di permessi UAC insicuri, firma SMB non obbligatoria, versione del sistema operativo obsoleta, macchine fuori dal dominio. Si prevede che questo insieme di funzionalità cresca in futuro man mano che verranno implementate nuove funzionalità.

Cracking delle password

Il framework non esegue alcun cracking, si limita a organizzare gli hash e i risultati del cracking
attualmente l'attenzione principale è sui risultati dcsync di impacket e aiosmb! solo hash NT e LM!
Il processo di esempio è il seguente:

  1. Raccogliere le credenziali come file di testo tramite impacket/aiosmb o come dump di memoria del processo LSASS tramite qualsiasi strumento tu ritenga adatto.
  2. Caricare le credenziali raccolte tramite l'API
  3. Recuperare gli hash non craccati tramite l'API
  4. Craccarli (hashcat?)
  5. Caricare i risultati al framework tramite l'API
  6. Generare un report sugli utenti craccati/non craccati e sulla forza e condivisione delle password

nota dell'autore: Questa funzionalità è stata implementata sia per gli attaccanti che per i difensori. Personalmente non vedo molto valore aggiunto da nessuna delle due parti, poiché una volta ottenuto l'hash NT di un utente è altrettanto valido quanto la password... Tuttavia, sempre più aziende stanno effettuando esercizi sulla robustezza delle password, e questa funzionalità le aiuterebbe. Per quanto riguarda gli attaccanti: a questo punto è solo per mettersi in mostra, ma fate pure. Forse spaventare la direzione per punti extra.

Importante

Questo progetto è in fase sperimentale! Ciò significa diverse cose:

  1. potrebbe andare in crash
  2. i controlli che stai usando potrebbero cambiare in futuro (molto probabile)
  3. (la parte peggiore) La progettazione del database non è necessariamente adatta a richieste future, quindi potrebbe cambiare. Non ci sarà alcuno sforzo per mantenere la compatibilità all'indietro con la struttura del DB in fase sperimentale!

Parte tecnica

Backend del database

Jackdaw utilizza il modulo ORM SQLAlchemy, che ti dà la possibilità di usare qualsiasi backend SQL DB tu preferisca. I test sono principalmente fatti su SQLite per ovvie ragioni. Non ci saranno comandi specifici per backend utilizzati in questo progetto che potrebbero limitarti.

Costruire l'interfaccia utente

QUESTO È NECESSARIO SOLO SE INSTALLI TRAMITE GIT E/O MODIFICHI QUALCOSA NEL CODICE DELL'UI
L'UI è stata scritta in React. Prima del primo uso/installazione devi costruirla. Per questo, avrai bisogno di nodejs e npm installati. Poi:

  1. Vai a jackdaw/nest/site/nui
  2. Esegui npm install
  3. Esegui npm run build

Una volta fatto quanto sopra, l'UI è pronta per essere utilizzata.

Riconoscimenti

"Se ho visto più lontano, è perché stavo sulle spalle di giganti."

Per l'idea originale

Team di BloodHound

Per il calcolo degli archi ACL

@dirkjanm (https://github.com/dirkjanm/)

Per la fantastica UI

Zsolt Imre (https://github.com/keymandll)

Per le parti di raccolta dati

vedi la sezione riconoscimenti nei moduli aiosmb e msldap

Nel caso avessi dimenticato qualcuno, per favore invia una PR

Scarica lo strumento