
Vollständige Suite für Credential-Angriffe für autorisierte Sicherheitstests — SSH, FTP, Web-Login, Brute-Force, Wörterbuchangriffe
⚠️ RECHTSHINWEIS — NUR für autorisierte Sicherheitstests.
Die Verwendung dieses Tools gegen Systeme, die Sie nicht besitzen oder für die Sie keine ausdrückliche schriftliche Genehmigung zum Testen haben, ist nach dem Computer Fraud and Abuse Act (USA), dem Computer Misuse Act (UK) und entsprechenden Gesetzen weltweit illegal. Siehe SECURITY.md.
CredAttack ist eine modulare, produktionsreife Suite für Credential-Tests für autorisierte Penetrationstest-Einsätze. Sie deckt den gesamten Lebenszyklus von Credential-Angriffen ab:
| Phase | CredAttack-Fähigkeit |
|---|---|
| Aufklärung | Standard-Anmeldedaten-DB (200+ Paare), intelligente benutzernamebasierte Mustererzeugung |
| Angriff | 17 Protokoll-Angreifer, 6 Angriffsmodi, Multi-Target-Kampagnen |
| Umgehung | Lockout-Erkennung, konfigurierbares Rate-Limiting, Jitter, Proxy-Rotation |
| Berichterstattung | JSONL-Audit-Log, Jinja2-HTML-Bericht, Banner + Datei-Dump für gefundene Anmeldedaten |
| Modus | Befehl | Beschreibung |
|---|---|---|
| Wörterbuch | ssh, ftp, smb, … | Wortliste gegen einen Benutzer |
| Spray | spray | Ein Passwort über eine Benutzerliste (lockout-sicher) |
| Kombination | combo | Jeder Benutzer × jedes Passwort |
| Smart | smart | Benutzer-/Firmenbasierte Mustererzeugung |
| Standardwerte | defaults | 200+ bekannte Dienst-Standardwerte ausprobieren |
| Multi-Target | multi | Gleicher Angriff über eine Liste von Hosts |
| Vollständige Pipeline | full | Alle Protokolle, ein Bericht |
| # | Protokoll | Modul | Standard-Port | Hinweise |
|---|---|---|---|---|
| 1 | SSH | ssh.py | 22 | paramiko, Schlüssel-/Passwort-Authentifizierung |
| 2 | FTP | ftp.py | 21 | Aktiver & passiver Modus |
| 3 | HTTP-Formular | http_form.py | 80/443 | Automatische CSRF-Token-Erkennung |
| 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 | APOP-Unterstützung |
| 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 | AUTH-Befehl |
| 14 | MongoDB | mongodb.py | 27017 | pymongo |
| 15 | WinRM | winrm.py | 5985 | NTLM, pywinrm |
| 16 | LDAP | ldap_proto.py | 389 | ldap3, rootDSE-Auto-Erkennung |
| 17 | Telnet | telnet.py | 23 | Raw TCP |
| 18 | VNC | vnc.py | 5900 | Raw-DES-Challenge-Response |
credattack.py ← dünner Shim: `python credattack.py ...` aus einem Checkout
│
├── credattack/cli.py ← CLI (Typer) — 8 Unterbefehle für Angriffsmodi; auch das
│ `credattack`-Konsolenskript bei pip-Installation
├── credattack/core/
│ ├── config.py ← Pydantic-v2-Einstellungen, CREDATTACK_*-Env-Var-Overrides
│ ├── engine.py ← AttackEngine (ThreadPoolExecutor + Rich-Fortschritts-UI)
│ ├── lockout.py ← LockoutDetector (gleitendes Fenster, threadsicher)
│ ├── proxy.py ← ProxyRotator (Round-Robin, Health-Check, Herabstufung)
│ ├── mutator.py ← PasswordMutator (Leetspeak, saisonal, Suffix, Tastaturlauf…)
│ ├── result.py ← AttemptResult- + SessionReport-Dataclasses
│ ├── report.py ← Jinja2-HTML-Berichtsgenerator
│ └── logger.py ← Rich-Logging + JSONL-Audit-Writer
│
├── credattack/protocols/
│ └── *.py ← 18 ProtocolAttacker-Implementierungen
│
├── credattack/data/
│ ├── default_creds.json ← 200+ echte Standard-Anmeldedaten-Paare
│ ├── smart_patterns.json ← 140+ Enterprise-Passwortvorlagen
│ └── wordlists/ ← Standard-Passwortlisten pro Dienst
│
└── tests/ ← 50+ pytest-Tests (Unit + Protokoll-Mocks)
# Klonen und einrichten
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
# Version prüfen
python credattack.py --version
# Trockenlauf (keine Verbindungen — Wortlisten verifizieren)
python credattack.py ssh -t 192.168.1.100 -u admin -P wordlists/common_passwords.txt --dry-run
# Echter SSH-Wörterbuchangriff
python credattack.py ssh -t 192.168.1.100 -u admin -P /path/to/rockyou.txt
# Passwort-Spray (ratenbegrenzt, lockout-sicher)
python credattack.py spray -t 192.168.1.100 --protocol ssh -U users.txt -p "Summer2024!" --delay 30
# Smart-Modus — Muster aus Benutzername + Firma erzeugen
python credattack.py smart -t 192.168.1.100 --protocol ssh -u john.doe --company ACME
# Dienst-Standardwerte ausprobieren
python credattack.py defaults -t 192.168.1.100 --protocol mysql
# Multi-Target-Kampagne
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 # Kern-Abhängigkeiten
make install-dev # + pytest-cov, ruff, mypy
pip install -e . # nur Kern-Abhängigkeiten
pip install -e .[full] # + SMB/RDP/MySQL/MSSQL/Redis/MongoDB/WinRM/LDAP
pip install -e .[dev] # + pytest/ruff/mypy
credattack --version # Konsolenskript, entspricht `python credattack.py`
docker build -t credattack -f docker/Dockerfile .
docker run --rm credattack --help
# Wortlisten einbinden und Ausgabe sammeln
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 Version anzeigen und beenden.
--help Hilfe anzeigen.