Zurück zu den Updates
UpdatedSep 2, 2026

credential-attacks-toolkit — Updated!

Vollständige Suite für Credential-Angriffe für autorisierte Sicherheitstests — SSH, FTP, Web-Login, Brute-Force, Wörterbuchangriffe

Teilen

CredAttack — Toolkit für Credential-Angriffe

Release Python Protocols Tests License

⚠️ 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.


Inhaltsverzeichnis


Was ist CredAttack?

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:

PhaseCredAttack-Fähigkeit
AufklärungStandard-Anmeldedaten-DB (200+ Paare), intelligente benutzernamebasierte Mustererzeugung
Angriff17 Protokoll-Angreifer, 6 Angriffsmodi, Multi-Target-Kampagnen
UmgehungLockout-Erkennung, konfigurierbares Rate-Limiting, Jitter, Proxy-Rotation
BerichterstattungJSONL-Audit-Log, Jinja2-HTML-Bericht, Banner + Datei-Dump für gefundene Anmeldedaten

Angriffsmodi

ModusBefehlBeschreibung
Wörterbuchssh, ftp, smb, …Wortliste gegen einen Benutzer
SpraysprayEin Passwort über eine Benutzerliste (lockout-sicher)
KombinationcomboJeder Benutzer × jedes Passwort
SmartsmartBenutzer-/Firmenbasierte Mustererzeugung
Standardwertedefaults200+ bekannte Dienst-Standardwerte ausprobieren
Multi-TargetmultiGleicher Angriff über eine Liste von Hosts
Vollständige PipelinefullAlle Protokolle, ein Bericht

Unterstützte Protokolle

#ProtokollModulStandard-PortHinweise
1SSHssh.py22paramiko, Schlüssel-/Passwort-Authentifizierung
2FTPftp.py21Aktiver & passiver Modus
3HTTP-Formularhttp_form.py80/443Automatische CSRF-Token-Erkennung
4HTTP Basichttp_basic.py80RFC 7617
5HTTP Digesthttp_digest.py80RFC 7616
6SMBsmb.py445impacket, NTLM
7RDPrdp.py3389impacket NLA
8SMTPsmtp.py587STARTTLS
9POP3pop3.py110APOP-Unterstützung
10IMAPimap.py143STARTTLS
11MySQLmysql.py3306mysql-connector-python
12MSSQLmssql.py1433pymssql
13Redisredis_proto.py6379AUTH-Befehl
14MongoDBmongodb.py27017pymongo
15WinRMwinrm.py5985NTLM, pywinrm
16LDAPldap_proto.py389ldap3, rootDSE-Auto-Erkennung
17Telnettelnet.py23Raw TCP
18VNCvnc.py5900Raw-DES-Challenge-Response

Architektur

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)

Schnellstart

# 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

Installation

Option A — pip + virtualenv (empfohlen)

python -m venv .venv
source .venv/bin/activate        # Windows: .venv\Scripts\activate
pip install --upgrade pip
pip install -r requirements.txt

Option B — Makefile-Verknüpfungen

make install      # Kern-Abhängigkeiten
make install-dev  # + pytest-cov, ruff, mypy

Option C — pip-Installation (editierbar oder aus einem Wheel)

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`

Option D — Docker

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

CLI-Referenz

Globale Optionen

python credattack.py [OPTIONS] COMMAND [ARGS]...

Options:
  -V, --version    Version anzeigen und beenden.
  --help           Hilfe anzeigen.

Gemeinsame Flags (verfügbar bei allen Protokoll-Befehlen)

FlagKurzformStandardBeschreibung
--target-tZiel-Host / IP
--port0 (Proto-Standard)TCP-Port überschreiben
--username-uEinzelner Benutzername
--user-file-UDatei mit zeilenweise getrennten Benutzernamen
--pass-file-PDatei mit zeilenweise getrennten Passwörtern
--password-p2Einzelnes Passwort
--threads-n10Parallele Worker
--timeout-T5.0Timeout pro Versuch (s)
--delay-d0.0Feste Verzögerung zwischen Versuchen (s)
--jitter0.0Maximaler zufälliger Jitter (s)
--stop-on-firstTruePro Benutzer nach erstem Treffer stoppen
--proxy-fileNoneHTTP/SOCKS5-Proxy-Liste
--output-dir-o./outputErgebnisverzeichnis
--verbosity-v1Protokollierungsstufe (0-3)
--dry-runFalsePaare zählen ohne Verbindung

Unterbefehle

# Protokollspezifisch (jeder ist einem dedizierten Angreifer zugeordnet)
python credattack.py ssh|ftp|smb|rdp|smtp|pop3|imap|mysql|mssql|redis|mongodb|winrm|ldap|telnet|vnc \
  -t HOST -u USER -P passes.txt

# HTTP (Formular / Basic / Digest)
python credattack.py http -t http://target/login --mode form \
  --form-user-field username --form-pass-field password --success-string "Dashboard"

# Spray — ein Passwort, viele Benutzer, lange Verzögerung
python credattack.py spray -t HOST --protocol ssh -U users.txt -p "Password1" --delay 30

# Kombination — kartesisches Produkt Benutzer × Passwörter
python credattack.py combo -t HOST --protocol smb -U users.txt -P passes.txt

# Smart — OSINT-basierte Erzeugung
python credattack.py smart -t HOST --protocol ssh -u firstname.lastname --company TargetCorp

# Standardwerte — Hersteller-Standard-Anmeldedaten ausprobieren
python credattack.py defaults -t HOST --protocol mysql

# Multi — gleicher Angriff über mehrere Hosts
python credattack.py multi --targets hosts.txt --protocol ssh -U users.txt -P passes.txt

# Full — alle Protokolle in Sequenz
python credattack.py full -t HOST -U users.txt -P passes.txt

Passwort-Mutations-Engine

PasswordMutator in credattack/core/mutator.py unterstützt kombinierbare Strategien:

StrategieMethodeBeispiel-Ausgabe
Leetspeakleet_speak(word)p@ssw0rd, p455w0rd
Großschreibungcapitalise_variants(word)PASSWORD, Password, pAsSwOrD
Suffixsuffix_append(word)password123, password@2025
Präfixprefix_append(word)!password, mypassword
Tastaturlaufkeyboard_walk(word)qassword (a→q)
Benutzermusterusername_patterns(user, company)john123, Doe1!, ACME2024!
Saisonal (v1.1)seasonal_patterns(company)Summer2024!, Winter25
Sonderzeichen-Umhüllung (v1.1)special_char_wrap(word)!@Password, Password!@
Kombinierencombine(word, strategies)verknüpft beliebige der obigen
Smart (All-in-One)smart_generate(user, company)deduplizierter, begrenzter Stream
from credattack.core.mutator import PasswordMutator

m = PasswordMutator(max_mutations=5000)

# Alle Strategien kombiniert
for pw in m.smart_generate("john.doe", company="ACME"):
    print(pw)

# Nur saisonale Muster
for pw in m.seasonal_patterns(company="Contoso"):
    print(pw)

Datenbank für Standard-Anmeldedaten

credattack/data/default_creds.json enthält 200+ echte Standard-Anmeldedaten-Paare über:

Cisco · F5 · Juniper · Palo Alto · VMware · Jenkins · GitLab · Tomcat · WordPress · MySQL · MSSQL · Redis · MongoDB · PostgreSQL · Elasticsearch · RabbitMQ · Splunk · Nagios · Zabbix · pfSense · MikroTik · Huawei · HP iLO · Dell iDRAC · IPMI

# Alle Standardwerte für einen Dienst anzeigen
python credattack.py defaults -t HOST --protocol mysql --dry-run

# Gegen Ziel ausführen
python credattack.py defaults -t 10.0.0.1 --protocol ssh

Proxy-Rotation

Eine Proxy-Datei übergeben (ein Proxy pro Zeile, Format host:port):

# proxies.txt
192.168.1.10:1080
192.168.1.11:1080
socks5://10.0.0.5:9050
python credattack.py ssh -t TARGET -u admin -P passes.txt --proxy-file proxies.txt

Der ProxyRotator führt beim Start Health-Checks durch und stuft Proxys herab, die einen Fehlerraten-Schwellenwert überschreiten. Tote Proxys werden automatisch ausgeschlossen.


HTML-Berichte

Nach jedem Nicht-Trockenlauf-Angriff wird automatisch ein HTML-Bericht in ./output/ erzeugt:

  • Statistik-Karten: Gesamtversuche, Erfolgsrate, Dauer, Versuche/Sekunde
  • Tabelle gefundener Anmeldedaten: Host · Protokoll · Benutzername · Passwort (in Zwischenablage kopierbar)
  • Dunkles Theme-Jinja2-Vorlage
# Nach einem Lauf öffnen
start output/report_*.html      # Windows
open  output/report_*.html      # macOS

Konfiguration & Umgebungsvariablen

Alle Einstellungen in credattack/core/config.py können über CREDATTACK_*-Umgebungsvariablen überschrieben werden:

export CREDATTACK_THREADS=20
export CREDATTACK_TIMEOUT=3.0
export CREDATTACK_DELAY=1.0
export CREDATTACK_JITTER=0.5
export CREDATTACK_LOCKOUT_THRESHOLD=3
export CREDATTACK_VERBOSITY=2

Oder auf CLI-Ebene mit den Standard-Flags (--threads, --timeout, usw.).


Docker

# Image erstellen
docker build -t credattack -f docker/Dockerfile .

# Mit Docker Compose ausführen
cd docker
docker compose run credattack ssh -t 192.168.1.100 -u admin -P /app/wordlists/common_passwords.txt

# Konfiguration über Umgebung setzen
docker run --rm \
  -e CREDATTACK_THREADS=20 \
  -e CREDATTACK_TIMEOUT=3 \
  -v $(pwd)/output:/app/output \
  credattack defaults -t 10.0.0.1 --protocol mysql

Tests

# Alle Tests ausführen
pytest -q

# Mit Abdeckung
pytest --cov=credattack --cov-report=term-missing -q

# Makefile-Verknüpfung
make test-cov

Aktuelle Suite: 50+ Tests, die Folgendes abdecken:

BereichTests
Lockout-Erkennung (gleitendes Fenster, Thread-Sicherheit)test_lockout.py
Passwort-Mutator-Strategientest_mutator.py
Neue Mutator-Strategien (saisonal, Sonderzeichen)test_mutator_extended.py
Proxy-Rotator (Health-Check, Herabstufung)test_proxy.py
Result- & SessionReport-Dataclassestest_result.py
SSH-Protokoll-Mocktest_protocols_ssh.py
FTP-Protokoll-Mocktest_protocols_ftp.py
HTTP-Basic- & Digest-Mockstest_protocols_http.py

Wortlisten

⚠️ Die gebündelten wordlists/-Dateien sind minimale Smoke-Test-Stubs. Für echte Bewertungen eigene Listen bereitstellen.

Empfohlene Quellen

WortlisteGrößeAm besten geeignet für
rockyou.txt~14 MAllgemeines Wörterbuch
SecLists/Passwords/VerschiedenProtokollspezifisch
kaonashi.txt~64 MErweiterte Abdeckung
OSINT-basiertVariabelGezielte Angriffe
# Beliebige externe Wortliste verwenden
python credattack.py ssh -t TARGET -u admin -P /opt/wordlists/rockyou.txt

Projektstruktur

credential-attacks-toolkit/
├── credattack.py               # Dünner Shim -> credattack.cli:app (Quellcode-Checkout-Nutzung)
├── pyproject.toml              # PEP 517/518-Build- & Tool-Konfiguration
├── requirements.txt            # Laufzeit-Abhängigkeiten
├── Makefile                    # Entwickler-Verknüpfungen
├── VERSION                     # Einzige Quelle der Versionswahrheit
├── CHANGELOG.md
├── SECURITY.md
├── .github/
│   └── workflows/ci.yml        # GitHub Actions: Lint + Test-Matrix + mypy
├── docker/
│   ├── Dockerfile
│   └── docker-compose.yml
├── credattack/
│   ├── cli.py                  # CLI (Typer) — gepackt, unterstützt das Konsolenskript
│   ├── core/
│   │   ├── config.py           # Pydantic-v2-Einstellungen
│   │   ├── engine.py           # AttackEngine (ThreadPoolExecutor)
│   │   ├── lockout.py          # LockoutDetector (gleitendes Fenster)
│   │   ├── proxy.py            # ProxyRotator
│   │   ├── mutator.py          # PasswordMutator
│   │   ├── result.py           # AttemptResult, SessionReport
│   │   ├── report.py           # HTML-Berichtsgenerator
│   │   └── logger.py           # Rich-Logger + JSONL-Writer
│   ├── protocols/              # 18 ProtocolAttacker-Implementierungen
│   │   └── base.py             # Abstrakter ProtocolAttacker
│   └── data/
│       ├── default_creds.json  # 200+ Hersteller-Standardwerte
│       ├── smart_patterns.json # 140+ Enterprise-Vorlagen
│       └── wordlists/          # Startlisten pro Dienst
├── attacks/                    # Eigenständige Einzeldatei-Tools (stammen aus der Zeit vor credattack/;
│   └── *.py                    # für Skripte behalten, die noch nicht portiert wurden: JWT-Cracking,
│                                # WAF-Erkennung, zeitbasierte Benutzer-Enumeration)
├── utils/
│   └── credential_utils.py     # Gemeinsame Helfer für die attacks/-Skripte
├── tests/
│   ├── conftest.py             # Gemeinsame Fixtures
│   ├── test_lockout.py
│   ├── test_mutator.py
│   ├── test_mutator_extended.py
│   ├── test_proxy.py
│   ├── test_result.py
│   ├── test_protocols_ssh.py
│   ├── test_protocols_ftp.py
│   └── test_protocols_http.py
├── wordlists/                  # Minimale Smoke-Test-Stubs
└── output/                     # Erzeugte Logs & Berichte (git-ignoriert)

Angriffs-Erfolgsraten (Richtwerte)

PassworttypWörterbuchSmart-ModusSpray (häufig)
4 Zeichen~90 %~95 %~60 %
6 Zeichen~65 %~75 %~25 %
8 Zeichen gemischt~15 %~25 %~5 %
10+ Zeichen komplex<5 %<5 %<1 %

Mitwirken

Siehe CONTRIBUTING.md.
Bitte öffnen Sie vor dem Einreichen großer Pull-Requests ein Issue.
Alle Beiträge müssen der Richtlinie zur ethischen Nutzung in SECURITY.md entsprechen.


Verantwortungsvoll nutzen. Ethisch testen. Legal bleiben.

Kategorien