
Suíte completa de ataque de credenciais para testes de segurança autorizados — SSH, FTP, Login Web, Bruteforce, Ataques de dicionário
⚠️ AVISO LEGAL — Apenas para testes de segurança AUTORIZADOS.
Usar esta ferramenta contra sistemas que você não possui ou para os quais não tem autorização escrita explícita é ilegal sob o Computer Fraud and Abuse Act (EUA), Computer Misuse Act (Reino Unido) e leis equivalentes em todo o mundo. Consulte SECURITY.md.
O CredAttack é uma suíte modular de testes de credenciais de nível de produção para engajamentos autorizados de testes de penetração. Ele cobre todo o ciclo de vida de ataques de credenciais:
| Fase | Capacidade do CredAttack |
|---|---|
| Reconhecimento | Base de credenciais padrão (200+ pares), geração inteligente de padrões derivados de nomes de usuário |
| Ataque | 17 atacantes de protocolo, 6 modos de ataque, campanhas multi-alvo |
| Evasão | Detecção de bloqueio, limitação de taxa configurável, jitter, rotação de proxies |
| Relatórios | Log de auditoria JSONL, relatório HTML Jinja2, banner de credenciais encontradas + dump em arquivo |
| Modo | Comando | Descrição |
|---|---|---|
| Dicionário | ssh, ftp, smb, … | Wordlist contra um usuário |
| Spray | spray | Uma senha em uma lista de usuários (seguro contra bloqueio) |
| Combo | combo | Cada usuário × cada senha |
| Inteligente | smart | Geração de padrões derivados de nome de usuário/empresa |
| Padrões | defaults | Testa 200+ padrões conhecidos de serviços |
| Multi-alvo | multi | Mesmo ataque em uma lista de hosts |
| Pipeline completo | full | Todos os protocolos, um relatório |
| # | Protocolo | Módulo | Porta Padrão | Observações |
|---|---|---|---|---|
| 1 | SSH | ssh.py | 22 | paramiko, autenticação por chave/senha |
| 2 | FTP | ftp.py | 21 | Modo ativo e passivo |
| 3 | Formulário HTTP | http_form.py | 80/443 | Detecção automática de token CSRF |
| 4 | HTTP Basic | http_basic.py | 80 | RFC 7617 |
| 5 | HTTP Digest | http_digest.py | 80 | RFC 7616 |
| 6 | SMB | smb.py | 445 | impacket, NTLM |
| 7 | RDP | rdp.py | 3389 | impacket NLA |
| 8 | SMTP | smtp.py | 587 | STARTTLS |
| 9 | POP3 | pop3.py | 110 | Suporte a APOP |
| 10 | IMAP | imap.py | 143 | STARTTLS |
| 11 | MySQL | mysql.py | 3306 | mysql-connector-python |
| 12 | MSSQL | mssql.py | 1433 | pymssql |
| 13 | Redis | redis_proto.py | 6379 | Comando AUTH |
| 14 | MongoDB | mongodb.py | 27017 | pymongo |
| 15 | WinRM | winrm.py | 5985 | NTLM, pywinrm |
| 16 | LDAP | ldap_proto.py | 389 | ldap3, detecção automática de rootDSE |
| 17 | Telnet | telnet.py | 23 | TCP bruto |
| 18 | VNC | vnc.py | 5900 | DES challenge-response bruto |
credattack.py ← shim fino: `python credattack.py ...` a partir de um checkout
│
├── credattack/cli.py ← CLI (Typer) — 8 subcomandos de modos de ataque; também o
│ script de console `credattack` quando instalado via pip
├── credattack/core/
│ ├── config.py ← Configurações Pydantic v2, substituições por env-var CREDATTACK_*
│ ├── engine.py ← AttackEngine (ThreadPoolExecutor + interface de progresso Rich)
│ ├── lockout.py ← LockoutDetector (janela deslizante, thread-safe)
│ ├── proxy.py ← ProxyRotator (round-robin, health-check, rebaixamento)
│ ├── mutator.py ← PasswordMutator (leet, sazonal, sufixo, keyboard-walk…)
│ ├── result.py ← Dataclasses AttemptResult + SessionReport
│ ├── report.py ← Gerador de relatórios HTML Jinja2
│ └── logger.py ← Logging Rich + gravador de auditoria JSONL
│
├── credattack/protocols/
│ └── *.py ← 18 implementações de ProtocolAttacker
│
├── credattack/data/
│ ├── default_creds.json ← 200+ pares reais de credenciais padrão
│ ├── smart_patterns.json ← 140+ modelos de senhas empresariais
│ └── wordlists/ ← Listas de senhas padrão por serviço
│
└── tests/ ← 50+ testes pytest (unitários + mocks de protocolo)
# Clonar e configurar
git clone https://github.com/amibhai/credential-attacks-toolkit.git
cd credential-attacks-toolkit
python -m venv .venv && source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
# Verificar versão
python credattack.py --version
# Dry-run (nenhuma conexão feita — verifique suas wordlists)
python credattack.py ssh -t 192.168.1.100 -u admin -P wordlists/common_passwords.txt --dry-run
# Ataque de dicionário SSH real
python credattack.py ssh -t 192.168.1.100 -u admin -P /path/to/rockyou.txt
# Password spray (com limitação de taxa, seguro contra bloqueio)
python credattack.py spray -t 192.168.1.100 --protocol ssh -U users.txt -p "Summer2024!" --delay 30
# Modo inteligente — gera padrões a partir de nome de usuário + empresa
python credattack.py smart -t 192.168.1.100 --protocol ssh -u john.doe --company ACME
# Testar padrões de serviços
python credattack.py defaults -t 192.168.1.100 --protocol mysql
# Campanha multi-alvo
python credattack.py multi --targets hosts.txt --protocol ssh -U users.txt -P passes.txt
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install --upgrade pip
pip install -r requirements.txt
make install # dependências principais
make install-dev # + pytest-cov, ruff, mypy
pip install -e . # apenas dependências principais
pip install -e .[full] # + SMB/RDP/MySQL/MSSQL/Redis/MongoDB/WinRM/LDAP
pip install -e .[dev] # + pytest/ruff/mypy
credattack --version # script de console, equivalente a `python credattack.py`
docker build -t credattack -f docker/Dockerfile .
docker run --rm credattack --help
# Montar suas wordlists e coletar a saída
docker run --rm \
-v $(pwd)/wordlists:/app/wordlists:ro \
-v $(pwd)/output:/app/output \
credattack ssh -t 192.168.1.100 -u admin -P wordlists/common_passwords.txt
python credattack.py [OPTIONS] COMMAND [ARGS]...
Options:
-V, --version Mostra a versão e sai.
--help Mostra a ajuda.