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
spraycharles — Strumento di spraying password lento e costante, progettato per effettuare spray a intervalli su un lungo periodo di tempo. | Kitploit
Strumenti/GitHubGitHub/tw1sm/spraycharles
Password CrackingAttacchi alle PasswordSicurezza WebPenetration TestingAutenticazione
GitHubtw1sm/spraycharles

spraycharles

Strumento di spraying password lento e costante, progettato per effettuare spray a intervalli su un lungo periodo di tempo.

Vedi Repository
223376 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

Spraycharles

hey, yo mi sento come spraycharles - Chiddy Bang

Python PyPi

Strumento di password spraying lento e costante, progettato per eseguire spray a intervalli regolari per un lungo periodo di tempo.

Include plugin di spraying per Office365, OWA, EWS, Okta, ADFS, Cisco SSL VPN, Citrix Netscaler, Sonciwall, NTLM over HTTP e SMB.

Post del blog associato di @sprocket_ed che tratta NTLM su HTTP, Exchange Web Services e Spraycharles.

Cos'è questo strumento?

Spraycharles è uno sprayer di password relativamente semplice, progettato in un'epoca in cui non c'erano molti strumenti disponibili pubblicamente che permettessero di eseguire lo spraying di password in modo non manuale durante un test di penetrazione. Forse la migliore caratteristica di Spraycharles è la possibilità di impostare uno spray di lunga durata usando -a/--attempts e -i/--interval, lasciarlo eseguire per diversi giorni, mentre lo si controlla periodicamente. Se hai un servizio unico o qualcosa di particolare per cui eseguire lo spray, è anche molto facile creare un template per un nuovo modulo e iniziare a spruzzare.

Cosa non è questo strumento?

Spraycharles non è stato progettato inizialmente pensando ai provider di autenticazione/cloud moderni. Se cerchi funzionalità più avanzate, potresti voler dare un'occhiata a strumenti come CredMaster o TeamFiltration. Spraycharles non è stato progettato per essere veloce - è single-threaded e orientato a un approccio basato su volume/tempo.

Installazione

Spraycharles può essere installato con pip3 install spraycharles o clonando questo repository ed eseguendo pip3 install .

[!TIP] Questo registrerà gli alias spraycharles e sc (abbreviazione) nel tuo PATH. I file di log e output vengono salvati in ~/.spraycharles. È possibile specificare una posizione di output alternativa con un flag da riga di comando.

Utilizzo con Docker

Esegui i seguenti comandi per costruire il container Docker di Spraycharles:

root@kitploit:~
git clone https://github.com/Tw1sm/spraycharles
cd spraycharles/extras
docker build . -t spraycharles

Esegui il seguente comando per utilizzare il container Docker di Spraycharles:

root@kitploit:~
docker run -it -v ~/.spraycharles:/root/.spraycharles spraycharles -h

Potrebbe essere necessario specificare volumi aggiuntivi in base a dove sono archiviati gli elenchi di nomi utente e password.

NixOS

Per gli utenti Nix o NixOS è disponibile un pacchetto. Tieni presente che le ultime versioni potrebbero essere presenti solo nel canale unstable.

root@kitploit:~
nix-env -iA nixos.spraycharles

Utilizzo

Il sottocomando spray:

root@kitploit:~
 Usage: spraycharles spray [OPTIONS] COMMAND [ARGS]...

 Password spraying lento e costante

╭─ Opzioni ─────────────────────────────────────────────────────────────────────────────╮
│ --debug                 Abilita il logging di debug (sovrascrive --quiet)             │
│ --config          TEXT  File di configurazione.                                       │
│ --help    -h            Mostra questo messaggio ed esci.                              │
╰───────────────────────────────────────────────────────────────────────────────────────╯
╭─ Configurazione Utente/Password ──────────────────────────────────────────────────────╮
│ *  --usernames  -u      TEXT  Percorso del file con l'elenco dei nomi utente          │
│                               [default: None]                                         │
│                               [required]                                              │
│ *  --passwords  -p      TEXT  Singola password da spruzzare o percorso del file con   │
│                               l'elenco delle password                                 │
│                               [default: None]                                         │
│                               [required]                                              │
│    --equal      -e            Esegue 1 spray per ogni utente dove password = nome     │
│                               utente                                                  │
╰───────────────────────────────────────────────────────────────────────────────────────╯
╭─ Target dello Spray ──────────────────────────────────────────────────────────────────╮
│    --host      -H      TEXT                           Host su cui eseguire lo spray   │
│                                                       (ip o hostname). Può essere     │
│                                                       qualsiasi cosa quando si usa il │
│                                                       modulo Office365 - usato solo   │
│                                                       per il nome del file di log     │
│                                                       [default: None]                 │
│ *  --module    -m      [ADFS|CiscoSSLVPN|Citrix|NTLM  Modulo corrispondente          │
│                        |Office365|Okta|OWA|SMB|Sonic  all'host di destinazione        │
│                        wall]                          [default: None]                 │
│                                                       [required]                      │
│    --path              TEXT                           Endpoint di autenticazione NTLM │
│                                                       (es. rpc o ews)                 │
│                                                       [default: None]                 │
│    --port      -P      INTEGER                        Porta su cui connettersi        │
│                                                       all'host specificato            │
│                                                       [default: 443]                  │
│    --fireprox  -f      TEXT                           URL dell'interfaccia fireprox   │
│                                                       desiderata                      │
│                                                       [default: None]                 │
│    --domain    -d      TEXT                           HTTP - Antepone DOMINIO\ ai     │
│                                                       nomi utente; SMB - Fornisce     │
│                                                       il dominio per la connessione   │
│                                                       SMB                              │
│                                                       [default: None]                 │
│    --no-ssl                                           Usa HTTP invece di HTTPS        │
╰───────────────────────────────────────────────────────────────────────────────────────╯
╭─ Output ──────────────────────────────────────────────────────────────────────────────╮
│ --output   -o      TEXT  Nome e percorso del file di output dei risultati             │
│                          [default: None]                                              │
│ --quiet                  Non registra ogni tentativo di login nella console           │
│ --analyze                Esegue l'analizzatore dei risultati dopo ogni intervallo di  │
│                          spray (i falsi positivi anticipati sono più probabili)       │
╰───────────────────────────────────────────────────────────────────────────────────────╯
╭─ Comportamento dello Spray ───────────────────────────────────────────────────────────╮
│ --attempts    -a      INTEGER  Numero di invii di login per intervallo (per ogni      │
│                                utente)                                                │
│                                [default: None]                                        │
│ --interval    -i      INTEGER  Minuti tra un intervallo di login e l'altro            │
│                                [default: None]                                        │
│ --timeout     -t      INTEGER  Soglia di timeout per le richieste web [default: 5]    │
│ --jitter              INTEGER  Tempo di jitter tra le richieste in secondi            │
│                                [default: None]                                        │
│ --jitter-min          INTEGER  Tempo minimo tra le richieste in secondi               │
│                                [default: None]                                        │
│ --pause                        Mette in pausa lo spray tra gli intervalli se viene    │
│                                trovato un nuovo login potenzialmente riuscito         │
╰───────────────────────────────────────────────────────────────────────────────────────╯
╭─ Notifiche ───────────────────────────────────────────────────────────────────────────╮
│ --notify   -n      [Slack|Teams|Discord]  Abilita notifiche per Slack, Teams o        │
│                                           Discord                                    │
│                                           [default: None]                            │
│ --webhook  -w      TEXT                   Webhook utilizzato per il modulo di         │
│                                           notifica specificato                       │
│                                           [default: None]                            │
╰───────────────────────────────────────────────────────────────────────────────────────╯

File di Configurazione

A causa della quantità di flag CLI spesso utilizzati, è possibile popolare i parametri della riga di comando da un file yaml usando il flag --config. Inoltre, ogni volta che usi Spraycharles, le tue opzioni CLI verranno scritte in un file yaml (last-config.yaml) nella directory corrente per una facile modifica e riutilizzo.

Notifiche

Spraycharles ha la capacità di inviare notifiche a Discord, Slack e Microsoft Teams dopo un tentativo di login potenzialmente riuscito. Questo elenco di provider di notifiche può essere ampliato usando lo script utils/notify.py. Per qualsiasi potenziale agente di notifica, devi specificare il suo nome e un URL webhook.

Puoi specificarli usando il file di configurazione per mantenere il comando più corto:

root@kitploit:~
notify: Slack
webhook: https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX

Le notifiche inviate a qualsiasi provider includeranno il nome host target associato al job di spraying. Questo è particolarmente utile quando si esegue lo spraying su più target contemporaneamente.

Aggiornamento dei File di Nome Utente/Password

Hai la possibilità di apportare modifiche ai file di nomi utente e password forniti mentre lo spray è in esecuzione. Le aggiunte o le rimozioni dalle liste avranno effetto al prossimo cambio di password.

[!NOTE] Se inserisci una nuova password nell'elenco, deve essere dopo la password che si sta attualmente spruzzando, per essere spruzzata (Spraycharles mantiene un contatore interno del ciclo usato come indice per prelevare la password successiva nella posizione corrispondente nell'elenco aggiornato)

Utilità

Spraycharles include alcune utilità aggiuntive per assistere negli sforzi di spraying. Elenco completo dei moduli di Spraycharles:

root@kitploit:~
 Usage: spraycharles [OPTIONS] COMMAND [ARGS]...

╭─ Opzioni ─────────────────────────────────────────────────────────────────────────────╮
│ --help  -h        Mostra questo messaggio ed esci.                                    │
╰───────────────────────────────────────────────────────────────────────────────────────╯
╭─ Comandi ─────────────────────────────────────────────────────────────────────────────╮
│ analyze   Analizza i file di output di Spraycharles per potenziali hit di spray      │
│ gen       Genera elenchi di password personalizzati da file JSON                     │
│ modules   Elenca i moduli di spraying                                                 │
│ parse     Analizza gli endpoint NTLM su HTTP e SMB per raccogliere informazioni       │
│           sul dominio                                                                 │
│ spray     Password spraying lento e costante                                         │
╰───────────────────────────────────────────────────────────────────────────────────────╯

Generazione di Elenchi di Spray Personalizzati

Il sottocomando "gen" di Spraycharles genera un elenco di password basato sulle specifiche fornite in extras/list_elements.json

root@kitploit:~
spraycharles gen extras/list_elements.json custom_passwords.txt

Estrazione del Dominio da NTLM su HTTP e SMB

Il sottocomando parse di Spraycharles estrae il dominio interno da servizi NTLM su HTTP e SMB usando un comando simile a quello elencato di seguito.

root@kitploit:~
spraycharles parse https://example.com/ews
spraycharles parse smb://host.domain.local

Analisi dei File dei Risultati

Il sottomodulo analyze può leggere i tuoi oggetti JSON di output e determinare le lunghezze delle risposte statisticamente rilevanti. Con dati sufficienti, dovrebbe essere in grado di estrarre i login riusciti dal tuo file dei risultati. Questo non è l'unico modo per determinare i login riusciti, dipende dal sito target, e ti consiglio comunque di controllare i dati tu stesso per essere sicuro di non perdere nulla. Per SMB, troverà semplicemente le voci con codici NTSTATUS che indicano successo.

root@kitploit:~
spraycharles analyze myresults.json

Disclaimer

Questo strumento è progettato per l'uso durante test di penetrazione; l'utilizzo di questo strumento per attaccare target senza previo consenso reciproco è illegale. È responsabilità dell'utente finale rispettare tutte le leggi locali, statali e federali applicabili. Gli sviluppatori non si assumono alcuna responsabilità legale e non sono responsabili per qualsiasi uso improprio di questo programma.

Sviluppo

Spraycharles utilizza Poetry per gestire le dipendenze. Installa dal sorgente e configura per lo sviluppo con:

root@kitploit:~
pip3 install poetry
git clone https://github.com/Tw1sm/spraycharles
cd spraycharles
poetry install

Crediti

  • @sprocket_ed per il contributo di: diversi moduli di spray, molte delle funzionalità che rendono spraycharles eccezionale e il relativo post sul blog
  • @b17zr per lo script ntlm_challenger.py, incluso nella cartella utils
Scarica lo strumento