Zum Inhalt springen

Services, Wiki-Artikel, Blog-Beiträge und Glossar-Einträge durchsuchen

↑↓NavigierenEnterÖffnenESCSchließen
Angriffsmethoden Glossar

Brute-Force-Angriff

Methode um Passwörter oder Verschlüsselungskeys durch systematisches Ausprobieren aller Kombinationen zu knacken. Online-Brute-Force testet Login-Formulare, Offline-Brute-Force knackt gestohlene Hashes. Mitigation: MFA, Account-Lockout, Rate-Limiting, lange Passwörter.

Brute-Force beschreibt den Versuch, ein Passwort, eine PIN oder einen Verschlüsselungsschlüssel durch systematisches Durchprobieren aller möglichen Kombinationen zu ermitteln. Kein Wissen über den Inhalt nötig - nur Rechenleistung und Zeit.

Arten von Brute-Force-Angriffen

Online vs. Offline Brute Force

Online Brute Force:
  → Angriff gegen laufendes System (Login-Formular, RDP, SSH)
  → Begrenzt durch Netzwerklantenz, Account-Lockout, Rate-Limiting
  → Typisch: max. 1.000-10.000 Versuche/Stunde
  → Erkennbar durch Log-Einträge

Offline Brute Force:
  → Gestohlene Passwort-Hashes lokal knacken
  → Keine Verbindung zum Zielsystem nötig
  → Geschwindigkeit: Milliarden Versuche/Sekunde
  → Hashcat auf GPU: 100 Mrd MD5-Hashes/Sekunde!
  → Nicht erkennbar bis Ergebnis genutzt wird

Dictionary Attack

Statt alle Kombinationen: Wörterbuchdateien nutzen
→ RockYou2024: 10 Mrd. reale Passwörter aus Datenlecks
→ Viel effizienter als vollständiger Brute-Force

Beispiel:
  bcrypt (rounds=12) mit Passwort "Sommer2023":
  Reiner Brute-Force: ~Billionen Jahre
  Dictionary + Mutationen (Sommer2023!): Minuten bis Stunden

Rainbow Tables

Vorberechnete Hashtabellen für schnelles Lookup:

Problem mit Rainbow Tables:
  → MD5("password") = immer 5f4dcc3b5aa765d61d8327deb882cf99
  → Tabelle: Hash → Passwort
  → Sehr schnell

Gegenmaßnahme: Salt
  → Zufälliger Salt + Passwort → Hash
  → MD5(salt + "password") = einzigartig
  → Rainbow Tables nutzlos
  → BCRYPT, PBKDF2, Argon2 haben Salt eingebaut

Geschwindigkeiten moderner Hardware

GPU-basiertes Passwort-Knacken (Hashcat, RTX 4090):

MD5 (unsicher!):
  164 Milliarden Hashes/Sekunde
  8-Zeichen Passwort mit Zahlen+Klein+Groß: < 1 Stunde

SHA1 (unsicher):
  60 Milliarden Hashes/Sekunde

bcrypt (rounds=12) (sicher):
  ~12.000 Hashes/Sekunde
  8-Zeichen komplexes Passwort: Milliarden Jahre

Argon2id (sicher):
  ~1.000 Hashes/Sekunde
  Noch sicherer als bcrypt

Passwortlänge vs. Sicherheit

Zeit zum Knacken mit RTX 4090 (MD5, Brute Force):
  6 Zeichen lowercase:     < 1 Sekunde
  8 Zeichen lowercase:     ~22 Minuten
  8 Zeichen + Zahlen:      ~3 Stunden
  10 Zeichen alles:        ~800 Jahre
  16 Zeichen alles:        ~Billionen Jahre

Mit bcrypt rounds=12:
  Alles wird um Faktor 10.000.000 sicherer
  → 8 Zeichen alles mit bcrypt: ~6.000 Jahre
  → 12+ Zeichen: astronomisch sicher

Schutzmaßnahmen

Für Applikationsentwickler

# Sicheres Password Hashing mit bcrypt:
import bcrypt

# Hashen (beim Speichern):
hashed = bcrypt.hashpw(password.encode('utf-8'), bcrypt.gensalt(rounds=12))

# Verifizieren (beim Login):
is_valid = bcrypt.checkpw(password.encode('utf-8'), hashed)

# Noch besser: Argon2id (OWASP-Empfehlung 2024):
from argon2 import PasswordHasher
ph = PasswordHasher(time_cost=3, memory_cost=65536, parallelism=4)
hash = ph.hash(password)
is_valid = ph.verify(hash, password)

Rate-Limiting und Account-Lockout

Online Brute-Force verhindern:

Rate Limiting:
  Max. 5 fehlgeschlagene Logins in 15 Minuten pro IP
  Danach: exponentielles Backoff oder CAPTCHA

Account Lockout (Active Directory):
  GPO: Account Lockout Threshold = 10 Versuche
  GPO: Account Lockout Duration = 30 Minuten
  GPO: Reset Account Lockout Counter = 10 Minuten

Achtung: Account Lockout kann für DoS missbraucht werden
→ Lockout benachrichtigt User, Admin Alert nach X Lockouts

MFA - effektivster Schutz

MFA macht Brute Force irrelevant:
  Angreifer kennt Passwort "Summer2023!" → Login trotzdem fehlgeschlagen
  → Ohne zweiten Faktor kein Zugang

TOTP (Time-based One-Time Password):
  Gültig für 30 Sekunden → Brute Force in dieser Zeit: unmöglich

Brute Force in Penetrationstests

Typische Brute-Force-Ziele beim Pentest:
  → SSH-Zugänge auf Servern
  → RDP auf Windows-Systemen
  → Web-Anwendungen (Login-Formulare)
  → Active Directory (Passwort-Spraying)

Passwort-Spraying (statt Brute Force):
  Statt viele Passwörter für einen Account:
  Ein Passwort gegen viele Accounts (unter Lockout-Schwelle)
  "Winter2024!" gegen alle 500 Accounts → kein Lockout-Trigger

Cookielose Analyse via Matomo (selbst gehostet, kein Tracking-Cookie). Datenschutzerklärung