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
Spray365 — Spray365 rende semplice lo spraying degli account Microsoft (Office 365 / Azure AD) grazie al suo approccio personalizzabile di password spraying in due fasi. Il piano di esecuzione integrato include opzioni che tentano di aggirare Azure Smart Lockout e le policy di accesso condizionale non sicure. | Kitploit
Strumenti/GitHubGitHub/markoh17/spray365
Attacchi alle PasswordEvasione IDS/IPSPenetration TestingSicurezza CloudAutenticazioneRed TeamingArchived
GitHubmarkoh17/spray365

Spray365

Vedi Repository
381571 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 →

Informazioni

Spray365 rende semplice lo spraying degli account Microsoft (Office 365 / Azure AD) grazie al suo approccio personalizzabile di password spraying in due fasi. Il piano di esecuzione integrato include opzioni che tentano di aggirare Azure Smart Lockout e le policy di accesso condizionale non sicure.

Condividi

Spray 365 Logo


Cos'è Spray365?

Spray365 è uno strumento di password spraying che identifica credenziali valide per account Microsoft (Office 365 / Azure AD). In cosa Spray365 è diverso dai molti altri strumenti di password spraying già disponibili? Spray365 consente di effettuare password spraying basandosi su un "execution plan". Oltre ad avere un execution plan pre-generato che descrive l'operazione di spraying ben prima che avvenga, con molti altri vantaggi di cui Spray365 sfrutta, ciò permette anche di riprendere gli spray di password (-R option) dopo un errore di rete o altra interruzione. Sebbene sia più semplice generare un execution plan di Spray365 usando direttamente Spray365, altri strumenti che producono una struttura JSON compatibile facilitano la creazione di flussi di lavoro unici per il password spraying.

Spray365 espone alcune opzioni utili durante lo spraying delle credenziali. È possibile utilizzare user agent casuali per rilevare e bypassare policy di accesso condizionale insicure configurate per limitare i tipi di dispositivi consentiti. Allo stesso modo, l'argomento --shuffle_auth_order è un ottimo modo per effettuare lo spraying delle credenziali in modo meno prevedibile. Questa opzione è stata aggiunta nel tentativo di bypassare i blocchi intelligenti degli account (ad es., Azure Smart Lockout). Sebbene non sia perfetto, randomizzare l'ordine in cui le credenziali vengono tentate ha anche altri vantaggi, come rendere ancora più difficile il rilevamento di queste operazioni di spraying. Spray365 supporta anche il proxy del traffico tramite HTTP/HTTPS, che si integra bene con altri strumenti come Burp Suite per manipolare la fonte dell'operazione di spraying.

Generazione di un Execution Plan (Passo 1)

Generazione dell'Execution Plan

Spraying delle Credenziali con un Execution Plan (Passo 2)

Spraying dell'Execution Plan

Revisione dei Risultati di Spray365 (Passo 3)

Revisione dei risultati di password spraying

Per Iniziare

Requisiti

  • Python
    • 3.9 (minimo)
    • 3.10 (consigliato)

Installazione

Clona il repository, installa i pacchetti Python richiesti ed esegui Spray365!

root@kitploit:~
$ git clone https://github.com/MarkoH17/Spray365
$ cd Spray365
~/Spray365$ pip3 install -r requirements.txt -U
~/Spray365$ python3 spray365.py

Utilizzo

Generare un Execution Plan (Normale)

Un execution plan è necessario per effettuare lo spraying delle credenziali, quindi dobbiamo crearne uno! Spray365 può generare il proprio execution plan eseguendo il comando generate in modalità "normale": (spray365.py generate normal). Vedi aiuto (spray365.py generate -h / spray365.py generate normal -h) per maggiori dettagli.

root@kitploit:~
$ python3 spray365.py generate normal -ep <execution_plan_filename> -d <domain_name> -u <file_containing_usernames> -pf <file_containing_passwords>

es.

root@kitploit:~
$ python3 spray365.py generate normal -ep ex-plan.s365 -d example.com -u usernames -pf passwords

Generare un Execution Plan (Audit)

Spray365 può anche verificare la configurazione dell'autenticazione multifattore (MFA) e delle policy di accesso condizionale effettuando lo spraying di credenziali valide. Gli execution plan in stile audit tentano tutte le combinazioni di User-Agent + AAD Client ID + AAD Endpoint ID per una determinata coppia di credenziali.

Spray365 può generare un execution plan in stile audit eseguendo il comando generate in modalità "audit": (spray365.py generate audit). Vedi aiuto (spray365.py generate -h / spray365.py generate audit -h) per maggiori dettagli. Sebbene sia possibile fornire un elenco di utenti e password separatamente (-u e -pf), queste opzioni sono più adatte per execution plan di password spraying (non di audit), che probabilmente causerebbero molti tentativi di accesso non validi. Invece, considera -u / --user_file con --passwords_in_userfile, che istruirà Spray365 a estrarre le password da "user_file" dividendo ogni riga del file di input sui due punti, dove il valore prima dei due punti viene considerato come nome utente e il valore dopo i due punti viene considerato come password (es. <username>:<password>, jsmith:Password01).

root@kitploit:~
$ python3 spray365.py generate audit -ep <execution_plan_filename> -d <domain_name> -u <file_containing_usernames_and_passwords> --passwords_in_userfile

es.

root@kitploit:~
$ python3 spray365.py generate audit -ep ex-plan.s365 -d example.com -u usernames --passwords_in_userfile

Eseguire uno Spraying con un Execution Plan

Una volta creato un execution plan, Spray365 può essere utilizzato per elaborarlo. Eseguire Spray365 in modalità "spray" (spray365.py spray) elaborerà l'execution plan specificato e effettuerà lo spraying delle credenziali appropriate. Tutti i tipi di execution plan (normale e audit) possono essere elaborati in questa modalità. Vedi aiuto (spray365.py spray -h) per maggiori dettagli.

root@kitploit:~
$ python3 spray365.py spray -ep <execution_plan_filename>

es.

root@kitploit:~
$ python3 spray365.py spray -ep ex-plan.s365

Revisione dei Risultati di un'Operazione di Spraying

Dopo aver effettuato lo spraying delle credenziali da un execution plan, Spray365 produce un file JSON con i risultati. Questo file può essere elaborato utilizzando altri strumenti come JQ per ottenere informazioni sull'operazione di spraying dopo che è avvenuta. Tuttavia, Spray365 include anche un comando "review" che può essere utilizzato per conoscere:

  • Account validi (e non validi)
  • Credenziali valide (e non valide)
  • Credenziali parzialmente valide (autenticazione riuscita, ma accesso impedito da MFA / Policy di accesso condizionale)

Vedi aiuto (spray365.py review -h) per maggiori dettagli.

root@kitploit:~
$ python3 spray365.py review <spray_results_json_filename>

es.

root@kitploit:~
$ python3 spray365.py review spray365_results_2022-05-20_18-58-31.json

Utilizzo di Spray365

Modalità Generazione (Normale)
root@kitploit:~
Usage: spray365.py generate normal [OPTIONS]

Generate a vanilla (normal) execution plan

Options:
-ep, --execution_plan           File path where execution plan should be saved  [required]
-d, --domain                    Office 365 domain to authenticate against  [required]
--delay                         Delay in seconds to wait between authentication attempts  [default: 30]
-mD, --min_loop_delay           Minimum time to wait between authentication attempts for a given user. This option takes into account the time one spray iteration will take, so a pre-authentication delay may not occur every time  [default: 0]

User options:
  -u, --user_file               File containing usernames to spray (one per line without domain)  [required]

Password options: [mutually_exclusive, required]
  -p, --password                Password to spray
  -pf, --password_file          File containing passwords to spray (one per line)
  --passwords_in_userfile       Extract passwords from user_file (colon separated)

Authentication options:
  -cID, --aad_client            Client ID used during authentication. Leave unspecified for random selection, or provide a comma-separated string
  -eID, --aad_endpoint          Endpoint ID used during authentication. Leave unspecified for random selection, or provide a comma-separated string

User Agent options: [mutually_exclusive]
  -cUA, --custom_user_agent     Set custom user agent for authentication requests
  -rUA, --random_user_agent     Randomize user agent for authentication requests  [default: True]

Shuffle options: [all_or_none]
  -S, --shuffle_auth_order      Shuffle order of authentication attempts so that each iteration (User1:Pass1, User2:Pass1, User3:Pass1) will be sprayed in a random order with a random arrangement of passwords, e.g (User4:Pass16, User13:Pass25, User19:Pass40). Be aware this option introduces the possibility that the time between consecutive authentication attempts for a given user may occur DELAY seconds apart. Consider using the-mD/--min_loop_delay option to enforce a minimum delay between authentication attempts for any given user.
  -SO, --shuffle_optimization_attempts [default: 10]

-h, --help                      Show this message and exit.
Modalità Generazione (Audit)
root@kitploit:~
Usage: spray365.py generate audit [OPTIONS]

Generate an execution plan to identify flaws in MFA / Conditional Access Policies. This works best with with known credentials.

Options:
-ep, --execution_plan           File path where execution plan should be saved  [required]
-d, --domain                    Office 365 domain to authenticate against  [required]
--delay                         Delay in seconds to wait between authentication attempts  [default: 30]
-mD, --min_loop_delay           Minimum time to wait between authentication attempts for a given user. This option takes into account the time one spray iteration will take, so a pre-authentication delay may not occur every time  [default: 0]

User options:
  -u, --user_file               File containing usernames to spray (one per line without domain)  [required]

Password options: [mutually_exclusive, required]
  -p, --password                Password to spray
  -pf, --password_file          File containing passwords to spray (one per line)
  --passwords_in_userfile       Extract passwords from user_file (colon separated)

Shuffle options: [all_or_none]
  -S, --shuffle_auth_order      Shuffle order of authentication attempts so that each iteration (User1:Pass1, User2:Pass1, User3:Pass1) will be sprayed in a random order with a random arrangement of passwords, e.g (User4:Pass16, User13:Pass25, User19:Pass40). Be aware this option introduces the possibility that the time between consecutive authentication attempts for a given user may occur DELAY seconds apart. Consider using the-mD/--min_loop_delay option to enforce a minimum delay between authentication attempts for any given user.
  -SO, --shuffle_optimization_attempts [default: 10]

-h, --help                      Show this message and exit.
Modalità Spray
root@kitploit:~
Usage: spray365.py spray [OPTIONS]

Password spray user accounts using an existing execution plan

Options:
-ep, --execution_plan         File path to execution plan  [required]
-l, --lockout                 Number of account lockouts to observe before aborting spraying session (disable with 0)  [default: 5]
-R, --resume_index            Resume spraying passwords from this position in the execution plan  [x>=1]
-i, --ignore_success          Ignore successful authentication attempts for users and continue to spray credentials. Setting this flag will enable spraying credentials for users even if Spray365 has already identified valid credentials.

Proxy options: [all_or_none]
  -x, --proxy                 HTTP Proxy URL (format: http[s]://proxy.address:port)
  -k, --insecure              Disable HTTPS certificate verification

-h, --help                    Show this message and exit.
Modalità Revisione
root@kitploit:~
Usage: spray365.py review [OPTIONS] RESULTS

View data from password spraying results to identify valid accounts and more

Options:
--show_invalid_creds
--show_invalid_users

-h, --help            Show this message and exit.

Riconoscimenti

AutoreStrumento / AltroCollegamento
@__TexasRangermsspray: Condurre attacchi di password spraying contro Azure AD e convalidare l'implementazione di MFA sugli endpoint di Azure e Office 365https://github.com/SecurityRiskAdvisors/msspray

Dichiarazione di non responsabilità

L'utilizzo di questo software per attaccare target senza previo consenso reciproco è illegale. È responsabilità dell'utente finale osservare tutte le leggi locali, statali e federali applicabili, oltre a qualsiasi politica di utilizzo accettabile applicabile. L'utilizzo di questo software esonera gli autori da qualsiasi responsabilità per uso improprio o danni causati.

Scarica lo strumento