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
Ferramentas/GitHubGitHub/tw1sm/spraycharles
Quebra de SenhasAtaques de SenhaSegurança WebTestes de PenetraçãoAutenticação
GitHubtw1sm/spraycharles

spraycharles

Ferramenta de pulverização de senhas lenta e discreta, projetada para pulverizar em intervalos ao longo de um longo período de tempo.

Ver Repositório
223373há 7 mesesRevisado 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

Spraycharles

hey, yo I'm feeling like spraycharles - Chiddy Bang

Python PyPi

Ferramenta de pulverização de senhas lenta e gradual, projetada para pulverizar em um intervalo durante um longo período de tempo.

Inclui plugins de pulverização para Office365, OWA, EWS, Okta, ADFS, Cisco SSL VPN, Citrix Netscaler, Sonciwall, NTLM sobre HTTP e SMB.

Postagem de blog associada por @sprocket_ed cobrindo NTLM sobre HTTP, Exchange Web Services e Spraycharles.

O que é esta ferramenta?

Spraycharles é um pulverizador de senhas relativamente simples, projetado em uma época em que não havia muitas ferramentas públicas disponíveis que permitissem que a pulverização de senhas fosse um processo não manual durante um teste de penetração. Talvez a melhor característica do Spraycharles seja a capacidade de configurar uma pulverização de longa duração usando -a/--attempts e -i/--interval, e deixá-la rodar ao longo de vários dias, enquanto verifica periodicamente. Se você tem um serviço único ou algo específico para pulverizar, também é muito fácil criar um novo módulo a partir de um modelo e começar a pulverizar.

O que esta ferramenta não é?

Spraycharles não foi inicialmente projetado pensando em provedores modernos de autenticação/nuvem. Se você está procurando recursos mais avançados, pode querer conferir ferramentas como CredMaster ou TeamFiltration. Spraycharles não foi projetado para ser rápido - é single-threaded e voltado para uma abordagem mais de volume/tempo.

Instalação

Spraycharles pode ser instalado com pip3 install spraycharles ou clonando este repositório e executando pip3 install .

[!TIP] Isso registrará os apelidos spraycharles e sc (abreviação) em seu caminho. Os arquivos de log e saída são armazenados em ~/.spraycharles. Um local de saída alternativo pode ser especificado com uma flag de CLI.

Usando Docker

Execute os seguintes comandos para construir o contêiner Docker do Spraycharles:

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

Execute o seguinte comando para usar o contêiner Docker do Spraycharles:

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

Pode ser necessário especificar volumes adicionais com base em onde as listas de nomes de usuário e senhas estão sendo armazenadas.

NixOS

Para usuários Nix ou NixOS, há um pacote disponível. Lembre-se de que os lançamentos mais recentes podem estar presentes apenas no canal unstable.

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

Uso

O subcomando spray:

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

 Pulverização de senhas lenta e gradual

╭─ Opções ─────────────────────────────────────────────────────────────────────────────╮
│ --debug                 Ativar log de depuração (sobrescreve --quiet)                 │
│ --config          TEXT  Arquivo de configuração.                                      │
│ --help    -h            Mostrar esta mensagem e sair.                                 │
╰───────────────────────────────────────────────────────────────────────────────────────╯
╭─ Configuração de Usuário/Senha ───────────────────────────────────────────────────────╮
│ *  --usernames  -u      TEXT  Caminho do arquivo da lista de nomes de usuário         │
│                               [padrão: None]                                          │
│                               [obrigatório]                                           │
│ *  --passwords  -p      TEXT  Senha única para pulverizar ou caminho do arquivo de    │
│                               lista de senhas                                         │
│                               [padrão: None]                                          │
│                               [obrigatório]                                           │
│    --equal      -e            Faz 1 pulverização para cada usuário onde senha =       │
│                               nome de usuário                                         │
╰───────────────────────────────────────────────────────────────────────────────────────╯
╭─ Alvo da Pulverização ────────────────────────────────────────────────────────────────╮
│    --host      -H      TEXT                           Host para pulverizar senha (ip  │
│                                                       ou hostname). Pode ser qualquer │
│                                                       coisa ao usar o módulo         │
│                                                       Office365 - usado apenas para o │
│                                                       nome do arquivo de log          │
│                                                       [padrão: None]                  │
│ *  --module    -m      [ADFS|CiscoSSLVPN|Citrix|NTLM  Módulo correspondente ao host   │
│                        |Office365|Okta|OWA|SMB|Sonic  alvo                            │
│                        wall]                          [padrão: None]                  │
│                                                       [obrigatório]                   │
│    --path              TEXT                           Endpoint de autenticação NTLM   │
│                                                       (ex.: rpc ou ews)               │
│                                                       [padrão: None]                  │
│    --port      -P      INTEGER                        Porta para conectar no host     │
│                                                       especificado                    │
│                                                       [padrão: 443]                   │
│    --fireprox  -f      TEXT                           URL da interface fireprox       │
│                                                       desejada                        │
│                                                       [padrão: None]                  │
│    --domain    -d      TEXT                           HTTP - Preceder DOMÍNIO\ aos    │
│                                                       nomes de usuário; SMB - Fornecer │
│                                                       domínio para conexão smb        │
│                                                       [padrão: None]                  │
│    --no-ssl                                           Usar HTTP em vez de HTTPS       │
╰───────────────────────────────────────────────────────────────────────────────────────╯
╭─ Saída ───────────────────────────────────────────────────────────────────────────────╮
│ --output   -o      TEXT  Nome e caminho do arquivo de saída de resultados [padrão:    │
│                          None]                                                        │
│ --quiet                  Não registrará cada tentativa de login no console            │
│ --analyze                Executar o analisador de resultados após cada intervalo de   │
│                          pulverização (falsos positivos precoces são mais prováveis)  │
╰───────────────────────────────────────────────────────────────────────────────────────╯
╭─ Comportamento da Pulverização ───────────────────────────────────────────────────────╮
│ --attempts    -a      INTEGER  Número de submissões de login por intervalo (para cada │
│                                usuário)                                               │
│                                [padrão: None]                                         │
│ --interval    -i      INTEGER  Minutos entre intervalos de login [padrão: None]       │
│ --timeout     -t      INTEGER  Limite de tempo limite da requisição web [padrão: 5]   │
│ --jitter              INTEGER  Tempo de variação entre requisições em segundos        │
│                                [padrão: None]                                         │
│ --jitter-min          INTEGER  Tempo mínimo entre requisições em segundos             │
│                                [padrão: None]                                         │
│ --pause                        Pausar a pulverização entre intervalos se um novo      │
│                                login potencialmente bem-sucedido foi encontrado       │
╰───────────────────────────────────────────────────────────────────────────────────────╯
╭─ Notificações ────────────────────────────────────────────────────────────────────────╮
│ --notify   -n      [Slack|Teams|Discord]  Ativar notificações para Slack, Teams ou    │
│                                           Discord                                     │
│                                           [padrão: None]                              │
│ --webhook  -w      TEXT                   Webhook usado para o módulo de notificação  │
│                                           especificado                                │
│                                           [padrão: None]                              │
╰───────────────────────────────────────────────────────────────────────────────────────╯

Arquivo de Configuração

Devido à quantidade de flags de CLI frequentemente usadas, uma alternativa é preencher os parâmetros da linha de comando a partir de um arquivo yaml usando a flag --config. Além disso, cada vez que você usar o Spraycharles, suas opções de CLI serão gravadas em um arquivo yaml (last-config.yaml) no diretório atual para fácil modificação e reutilização.

Notificações

Spraycharles tem a capacidade de emitir notificações para Discord, Slack e Microsoft Teams após uma tentativa de login potencialmente bem-sucedida. Esta lista de provedores de notificação pode ser aumentada usando o script utils/notify.py. Para qualquer um dos agentes de notificação potenciais, você deve especificar seu nome e uma URL de webhook.

Você pode especificá-los usando o arquivo de configuração para manter seu comando mais curto:

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

As notificações enviadas para qualquer um dos provedores incluirão o hostname alvo associado ao trabalho de pulverização. Isso é especialmente útil ao pulverizar vários alvos ao mesmo tempo.

Atualizando Arquivos de Nome de Usuário/Senha

Você tem a capacidade de fazer alterações nos arquivos de nome de usuário e senha fornecidos enquanto a pulverização está em andamento. Adições ou remoções nas listas entrarão em vigor na próxima rotação de senha

[!NOTE] Se você inserir uma nova senha na lista, ela deve estar depois da senha que está sendo pulverizada atualmente, para ser pulverizada (Spraycharles mantém um contador de loop interno usado como índice para buscar a próxima senha na posição correspondente na lista atualizada)

Utilitários

Spraycharles é empacotado com alguns utilitários adicionais para auxiliar nos esforços de pulverização. Lista completa de módulos do Spraycharles:

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

╭─ Opções ─────────────────────────────────────────────────────────────────────────────╮
│ --help  -h        Mostrar esta mensagem e sair.                                      │
╰───────────────────────────────────────────────────────────────────────────────────────╯
╭─ Comandos ───────────────────────────────────────────────────────────────────────────╮
│ analyze   Analisar arquivos de saída do Spraycharles em busca de possíveis acertos   │
│ gen       Gerar listas de senhas personalizadas a partir de arquivo JSON             │
│ modules   Listar módulos de pulverização                                             │
│ parse     Analisar endpoints NTLM sobre HTTP e SMB para coletar informações de       │
│           domínio                                                                    │
│ spray     Pulverização de senhas lenta e gradual                                     │
╰───────────────────────────────────────────────────────────────────────────────────────╯

Gerando Listas de Pulverização Personalizadas

O subcomando "gen" do Spraycharles gerará uma lista de senhas com base nas especificações fornecidas em extras/list_elements.json

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

Extraindo Domínio de NTLM sobre HTTP e SMB

O subcomando parse do Spraycharles extrairá o domínio interno de serviços NTLM sobre HTTP e SMB usando um comando semelhante ao listado abaixo.

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

Analisando Arquivos de Resultados

O submódulo analyze pode ler seus objetos JSON de saída e determinar comprimentos de resposta que são estatisticamente relevantes. Com dados suficientes, deve ser capaz de extrair logins bem-sucedidos do seu arquivo de resultados. Esta não é a única maneira de determinar logins bem-sucedidos, dependendo do seu site alvo, e eu ainda recomendo verificar os dados você mesmo para garantir que nada seja perdido. Para SMB, ele simplesmente encontrará entradas com códigos NTSTATUS que indicam sucesso.

root@kitploit:~
spraycharles analyze myresults.json

Aviso Legal

Esta ferramenta foi projetada para uso durante testes de penetração; o uso desta ferramenta para atacar alvos sem consentimento mútuo prévio é ilegal. É de responsabilidade do usuário final obedecer a todas as leis locais, estaduais e federais aplicáveis. Os desenvolvedores não assumem qualquer responsabilidade e não são responsáveis por qualquer uso indevido deste programa.

Desenvolvimento

Spraycharles usa Poetry para gerenciar dependências. Instale a partir da fonte e configure para desenvolvimento com:

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

Créditos

  • @sprocket_ed por contribuir: vários módulos de pulverização, muitos recursos que tornam o spraycharles excelente, e a postagem de blog associada
  • @b17zr pelo script ntlm_challenger.py, que está incluído na pasta utils
Baixar ferramenta