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
smbcrawler — smbcrawler è un tool senza fronzoli che prende credenziali e una lista di host e 'crawls' (o 'spiders') attraverso quelle condivisioni | Kitploit
Strumenti/GitHubGitHub/syss-research/smbcrawler
RicognizioneAnalisi delle VulnerabilitàEsfiltrazione DatiRaccolta InformazioniSicurezza di RetePenetration Testing
GitHubsyss-research/smbcrawler

smbcrawler

smbcrawler è un tool senza fronzoli che prende credenziali e una lista di host e 'crawls' (o 'spiders') attraverso quelle condivisioni

Vedi Repository
189269 mesi 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

SmbCrawler

SmbCrawler è uno strumento senza fronzoli che prende credenziali e un elenco di host e 'crawl' (o 'spider') attraverso quelle condivisioni. Caratteristiche:

  • accetta nomi host, indirizzi IP, range IP o un file xml nmap come input
  • controlla i permessi (il controllo dei permessi di scrittura è opzionale, perché richiede la creazione di una directory vuota sulla condivisione)
  • la profondità di crawling è personalizzabile
  • produce risultati in formati leggibili da macchina o come report HTML interattivo
  • supporto pass-the-hash
  • download automatico di file interessanti
  • segnala potenziali segreti
  • multi-thread
  • pausabile
  • salta interattivamente singole condivisioni e host

Installazione

Se hai bisogno di istruzioni su come installare un pacchetto Python, ti consiglio di assicurarti di avere pipx installato ed esegui pipx install smbcrawler.

SmbCrawler può convertire automaticamente alcuni file binari come PDF, XLSX, DOCX, ZIP, ecc. in testo semplice usando MarkItDown. Poiché questo pacchetto richiede molte dipendenze, è contrassegnato come extra. Tuttavia, è altamente raccomandato per ottenere i migliori risultati. Se vuoi convertire automaticamente i binari, installa SmbCrawler in questo modo:

root@kitploit:~
pipx install 'smbcrawler[binary-conversion]'

Aggiungere il completamento shell è altamente raccomandato. Come app Python che utilizza la libreria click, puoi aggiungere il completamento tramite tab a bash, zsh e fish usando il meccanismo usuale.

Esempio

Eseguilo in questo modo (10 thread, profondità massima 5):

root@kitploit:~
$ smbcrawler crawl -i hosts.txt -u pen.tester -p iluvb0b -d contoso.local -t 10 -D 5

Modifiche principali nella versione 1.0

SmbCrawler ha subito una profonda rielaborazione. Le modifiche più significative sono:

  • Abbiamo pulito la CLI e introdotto un meccanismo di "profilo" per guidare il comportamento del crawler
  • L'output ora è un database sqlite invece di file JSON sparsi
  • I permessi ora sono segnalati in modo più granulare

I vecchi argomenti della CLI riguardanti "file interessanti", "condivisioni noiose" e così via erano goffi e confusi. Invece ora usiamo "profili"; vedi sotto per i dettagli.

Inoltre, mi sono reso conto di aver sostanzialmente reinventato i database relazionali, ma in modo molto scarso, quindi perché non usare direttamente sqlite? L'approccio sqlite ci consente di produrre un bel report HTML interattivo con buone prestazioni. Puoi comunque esportare i risultati in vari formati se hai bisogno di utilizzare i dati in qualche pipeline di strumenti.

Il vecchio modo di SmbCrawler di segnalare i permessi a volte non era molto utile. Ad esempio, non è raro avere permessi di lettura nella directory principale della condivisione, ma tutte le sottodirectory sono protette, ad esempio per i profili utente. SmbCrawler ora segnalerà quanto profondamente è stato in grado di leggere l'albero delle directory di una condivisione e se ha raggiunto il massimo o avrebbe potuto andare più in profondità se avessi fornito un valore più alto per l'argomento della profondità massima.

Se preferisci la versione precedente, è ancora disponibile su PyPI e installabile con pipx install smbcrawler==0.2.0, per esempio.

Utilizzo

Durante l'esecuzione, puoi usare i seguenti tasti:

  • p: metti in pausa il crawler e salta singoli host o condivisioni
  • <spazio>: stampa il progresso corrente
  • s: stampa un aggiornamento dettagliato dello stato

Per maggiori informazioni, esegui smbcrawler -h.

Note

Anche in reti di medie dimensioni, SmbCrawler troverà tonnellate di dati. La sfida è ridurre i falsi positivi.

Note sui permessi

È importante rendersi conto che i permessi possono applicarsi a livello di servizio e a livello di file system. Il servizio SMB remoto potrebbe consentirti di autenticarti e il tuo account utente potrebbe avere teoricamente permessi di lettura, ma potrebbe non averli sul file system.

SmbCrawler segnalerà se hai i permessi per:

  • autenticarsi contro un target come guest ed elencare le condivisioni
  • autenticarsi contro un target con le credenziali utente
  • accedere a una condivisione come guest
  • accedere a una condivisione con le credenziali utente
  • creare una directory nella directory principale della condivisione
  • il livello di directory più profondo di una condivisione a cui è stato possibile accedere (limitato dall'argomento --depth)

Poiché non è banale controllare i permessi delle condivisioni SMB senza tentare l'azione in questione, SmbCrawler tenterà di creare una directory su ogni condivisione. Il suo nome è smbcrawler_DELETEME_<8 caratteri casuali> e verrà eliminata immediatamente, ma sii comunque consapevole.

[!WARNING] A volte hai il permesso di creare directory, ma non di eliminarle, quindi lascerai una directory vuota.

Profili

Per decidere cosa fare con determinate condivisioni, file o directory, SmbCrawler ha una funzionalità chiamata "profili". Dai un'occhiata al profilo predefinito.

I profili vengono caricati da file con estensione *.yml o *.yaml da queste posizioni:

  • Il profilo predefinito integrato
  • $XDG_DATA_HOME/smbcrawler/ (~/.local/share/smbcrawler di default)
  • La directory extra definita da --extra-profile-directory
  • I file extra definiti da --extra-profile-file

I profili di ogni posizione sovrascrivono le definizioni precedenti.

Il valore regex definisce se un profilo corrisponde, e verrà utilizzato l'ultimo profilo corrispondente. Tutte le espressioni regolari sono case-insensitive, rispecchiando il comportamento più comune nel mondo Windows.

Poiché può essere confuso come i profili provenienti da diverse fonti interagiscono, assicurati di utilizzare il parametro --dry-run. Mostra la configurazione effettiva e non fa altro.

Diamo un'occhiata a ogni sezione, che è sempre un elenco di dizionari. Ogni chiave del dizionario è un'etichetta arbitraria e ogni valore è a sua volta un dizionario con proprietà diverse.

File

  • comment: Una stringa utile che descrive questo profilo
  • regex: Un'espressione regolare che definisce a quali file si applica questo profilo. L'ultima regex che corrisponde è quella che conta.
  • regex_flags: Un array di flag che verranno passati alla funzione match di regex
  • high_value (default: false): Se un file è di "alto valore", la sua presenza verrà segnalata, ma non verrà necessariamente scaricato (pensa a dischi virtuali - importanti, ma troppo grandi per essere scaricati automaticamente)
  • download (default: true): Se true, i primi 200KiBi verranno scaricati (o l'intero file se high_value=true) e analizzati per cercare segreti

Condivisioni e directory

  • comment, regex, regex_flags: Come sopra
  • high_value: la sua presenza verrà segnalata e la profondità di crawling modificata a infinito
  • crawl_depth: Scansiona questa condivisione o directory fino a una profondità diversa da quella definita dall'argomento --depth

Segreti

  • comment, regex_flags: Come sopra
  • regex: Un'espressione regolare che corrisponde al segreto. Il segreto stesso può essere un gruppo nominato con il nome secret.

Flusso di lavoro tipico

Ha senso eseguire prima SmbCrawler con profondità di crawling 1 per farti un'idea di ciò con cui hai a che fare. In questa prima esecuzione, puoi abilitare il controllo di scrittura con -w:

root@kitploit:~
$ smbcrawler -C permissions_check.crwl crawl -D1 -t10 -w \
    -i <FILE INPUT> -u <UTENTE> -d <DOMINIO> -p <PASSWORD>

Nota che questo controlla solo i permessi di lettura e scrittura nella directory principale di ogni condivisione. Solo un'esecuzione completa ti dirà di più su quanto in profondità arrivano i permessi di lettura.

Dopo il controllo iniziale dei permessi, puoi identificare condivisioni interessanti e noiose per la tua prossima esecuzione o più esecuzioni. Alcune condivisioni come SYSVOL e NETLOGON compaiono molte volte, quindi dovresti impostare la profondità di crawling a zero nella tua prossima esecuzione e scegliere un host per scansionare queste condivisioni duplicate in una terza esecuzione. Ecco un esempio:

root@kitploit:~
$ smbcrawler -C dc_only.crwl crawl -D -1 <IP DC> \
    -u <UTENTE> -d <DOMINIO> -p <PASSWORD>
$ smbcrawler -C full.crwl crawl -D5 -t10 -i <NUOVO FILE INPUT> \
    -u <UTENTE> -d <DOMINIO> -p <PASSWORD> \
    --extra-profile-file skip_sysvol.yml

Qui, skip_sysvol.yml sarebbe:

root@kitploit:~
shares:
  sysvol:
    comment: "Salta la condivisione sysvol e netlogon"
    regex: 'SYSVOL|NETLOGON'
    crawl_depth: 0

Sentiti libero di includere altre condivisioni qui che potresti ritenere non valga la pena scansionare.

Output

I dati grezzi sono contenuti in un database SQLite e una directory (default output.crwl e output.crwl.d). La directory contiene altre due directory: una con i file scaricati resi unici tramite l'hash del contenuto e una directory che rispecchia tutte le condivisioni con collegamenti simbolici che puntano ai file di contenuto. Quest'ultima è utile per fare grep attraverso tutti i file scaricati.

I dati possono essere trasformati in vari formati. Puoi anche semplicemente accedere al database con sqlitebrowser, per esempio. Sono state predefinite alcune viste utili. Oppure puoi produrre JSON e usare jq per manipolare i dati.

Se vuoi visualizzare tutte le condivisioni che sei stato in grado di leggere oltre la directory principale in una tabella LaTeX, ad esempio, usa questa query:

root@kitploit:~
SELECT target_id || " & " || name || " & " || remark || " \\"
FROM share
WHERE read_level > 0
ORDER BY target_id, name

C'è anche una funzionalità sperimentale di output HTML. Potrebbe non essere ancora del tutto utile per grandi quantità di dati.

Aiuta

Se noti molti falsi positivi o falsi negativi nei segreti segnalati, per favore aiutaci e fammelo sapere. Il contributo della community è importante per migliorare il rilevamento automatico. Scenario migliore: fornisci una pull request con modifiche al file del profilo predefinito.

Crediti

Adrian Vollmer, SySS GmbH

Licenza

Licenza MIT; vedi LICENSE per i dettagli.

Scarica lo strumento