Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Spray365 — O Spray365 facilita o password spraying em contas Microsoft (Office 365 / Azure AD) por meio de sua abordagem personalizável de duas etapas. O plano de execução integrado inclui opções que tentam contornar o Azure Smart Lockout e políticas de acesso condicional inseguras. | Kitploit
Ferramentas/GitHubGitHub/markoh17/spray365
Ataques de SenhaEvasão de IDS/IPSTestes de PenetraçãoSegurança na NuvemAutenticaçãoRed TeamingArchived
GitHubmarkoh17/spray365

Spray365

O Spray365 facilita o password spraying em contas Microsoft (Office 365 / Azure AD) por meio de sua abordagem personalizável de duas etapas. O plano de execução integrado inclui opções que tentam contornar o Azure Smart Lockout e políticas de acesso condicional inseguras.

Ver Repositório
38157há 1 anoRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Logotipo do Spray 365


O que é o Spray365?

O Spray365 é uma ferramenta de password spraying que identifica credenciais válidas para contas da Microsoft (Office 365 / Azure AD). Como o Spray365 é diferente de muitas outras ferramentas de password spraying já disponíveis? O Spray365 permite que as senhas sejam pulverizadas a partir de um "plano de execução". Embora ter um plano de execução pré-gerado que descreva a operação de spraying bem antes de ela ocorrer traga muitos outros benefícios que o Spray365 aproveita, isso também permite que os sprays de senha sejam retomados (opção -R) após um erro de rede ou outra interrupção. Embora seja mais fácil gerar um plano de execução do Spray365 diretamente usando o Spray365, outras ferramentas que produzem uma estrutura JSON compatível facilitam a construção de fluxos de trabalho únicos de password spraying.

O Spray365 expõe algumas opções úteis ao pulverizar credenciais. User agents aleatórios podem ser usados para detectar e contornar políticas de acesso condicional inseguras configuradas para limitar os tipos de dispositivos permitidos. Da mesma forma, o argumento --shuffle_auth_order é uma ótima maneira de pulverizar credenciais de forma menos previsível. Essa opção foi adicionada na tentativa de contornar bloqueios inteligentes de conta (por exemplo, Azure Smart Lockout). Embora não seja perfeito, randomizar a ordem em que as credenciais são testadas também traz outros benefícios, como dificultar ainda mais a detecção dessas operações de spraying. O Spray365 também suporta o proxy de tráfego via HTTP/HTTPS, o que se integra bem com outras ferramentas como Burp Suite para manipular a origem da operação de spraying.

Gerando um Plano de Execução (Passo 1)

Gerando Plano de Execução

Pulverizando Credenciais com um Plano de Execução (Passo 2)

Pulverizando Plano de Execução

Revisar Resultados do Spray365 (Passo 3)

Revisando Resultados de Password Spraying

Primeiros Passos

Requisitos

  • Python
    • 3.9 (mínimo)
    • 3.10 (recomendado)

Instalação

Clone o repositório, instale os pacotes Python necessários e execute o Spray365!

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

Uso

Gerar um Plano de Execução (Normal)

Um plano de execução é necessário para pulverizar credenciais, então precisamos criar um! O Spray365 pode gerar seu próprio plano de execução executando o comando generate no modo "normal": (spray365.py generate normal). Consulte a ajuda (spray365.py generate -h / spray365.py generate normal -h) para mais detalhes.

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

exemplo:

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

Gerar um Plano de Execução (Auditoria)

O Spray365 também pode auditar configurações de autenticação multifator (MFA) e políticas de acesso condicional, pulverizando credenciais válidas. Os planos de execução no estilo auditoria tentam todas as combinações de User-Agent + AAD Client ID + AAD Endpoint ID para um determinado par de credenciais.

O Spray365 pode gerar um plano de execução no estilo auditoria executando o comando generate no modo "audit": (spray365.py generate audit). Consulte a ajuda (spray365.py generate -h / spray365.py generate audit -h) para mais detalhes. Embora seja possível fornecer uma lista de usuários e senhas separadamente (-u e -pf), essas opções são mais adequadas para planos de execução de password spraying (não auditoria), o que provavelmente causaria muitas tentativas de login inválidas. Em vez disso, considere usar -u / --user_file com --passwords_in_userfile, que instruirá o Spray365 a extrair as senhas do "user_file" dividindo cada linha do arquivo de entrada por dois pontos, onde o valor antes dos dois pontos é tratado como nome de usuário e o valor após os dois pontos é tratado como senha (ex: <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

exemplo:

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

Executar um Plano de Execução (Spray)

Depois que um plano de execução é criado, o Spray365 pode ser usado para processá-lo. Executar o Spray365 no modo "spray" (spray365.py spray) processará o plano de execução especificado e pulverizará as credenciais apropriadas. Todos os tipos de planos de execução (normal e auditoria) podem ser processados neste modo. Consulte a ajuda (spray365.py spray -h) para mais detalhes.

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

exemplo:

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

Revisar os Resultados de uma Operação de Spraying

Após pulverizar credenciais a partir de um plano de execução, o Spray365 gera um arquivo JSON com os resultados. Esse arquivo pode ser processado usando outras ferramentas como JQ para obter insights sobre a operação de spraying após sua ocorrência. No entanto, o Spray365 também inclui um comando "review" que pode ser usado para obter informações sobre:

  • Contas Válidas (e Inválidas)
  • Credenciais Válidas (e Inválidas)
  • Credenciais Parcialmente Válidas (Autenticação bem-sucedida, mas o acesso foi impedido por MFA / Políticas de Acesso Condicional)

Consulte a ajuda (spray365.py review -h) para mais detalhes.

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

exemplo:

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

Uso do Spray365

Modo de Geração (Normal)
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.
Modo de Geração (Auditoria)
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.
Modo 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.
Modo de Revisão
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.

Agradecimentos

AutorFerramenta / OutroLink
@__TexasRangermsspray: Realizar ataques de password spray contra o Azure AD, bem como validar a implementação de MFA em endpoints do Azure e Office 365https://github.com/SecurityRiskAdvisors/msspray

Aviso de Isenção de Responsabilidade

O uso deste software para atacar alvos sem consentimento mútuo prévio é ilegal. É de responsabilidade do usuário final obedecer todas as leis aplicáveis, locais, estaduais e federais, além de quaisquer políticas de uso aceitável aplicáveis. O uso deste software isenta o(s) autor(es) de qualquer responsabilidade por uso indevido ou danos causados.

Baixar ferramenta