#!/bin/bash # Verzeichnisse definieren handshake_dir="/root/handshakes/" output_dir="$handshake_dir/output" cracked_dir="$handshake_dir/cracked" not_cracked_dir="$handshake_dir/not_cracked" wordlist="/usr/share/wordlists/hashes_2017.txt" # Korrekter Pfad zur Wortlisten-Datei # Erstelle Ausgabe- und Ergebnisordner, falls nicht vorhanden mkdir -p "$output_dir" "$cracked_dir" "$not_cracked_dir" # Datei für Ergebnisse erstellen/leeren, falls vorhanden > "$output_dir/results.txt" > "$output_dir/cracked.txt" # Funktion zum Bearbeiten eines einzelnen Handshakes process_handshake() { local handshake=$1 local handshake_filename=$(basename "$handshake") local network_name="${handshake_filename%.22000}" echo "Verarbeite Handshake: $handshake_filename" # Handshake knacken echo "Starte hashcat für $handshake_filename..." hashcat -m 22000 -a 0 -o "$output_dir/cracked.txt" "$handshake" "$wordlist" --status # Überprüfen, ob das Passwort geknackt wurde if grep -q "$network_name" "$output_dir/cracked.txt"; then # Passwort erfolgreich geknackt cracked_password=$(grep "$network_name" "$output_dir/cracked.txt" | cut -d: -f2) echo "Netzwerk: $network_name, Passwort: $cracked_password" >> "$output_dir/results.txt" mv "$handshake" "$cracked_dir/" echo "Passwort für $network_name gefunden und Handshake in 'cracked' verschoben" else # Passwort nicht gefunden echo "Passwort für $network_name nicht gefunden" mv "$handshake" "$not_cracked_dir/" fi } # Funktion zum Durchgehen aller Handshakes bruteforce_handshake() { # Überprüfen, ob Handshakes vorhanden sind if ! ls "$handshake_dir"/*.22000 &> /dev/null; then echo "Keine Handshake-Dateien (*.22000) im Verzeichnis $handshake_dir gefunden!" return 1 fi # Durch alle Handshakes gehen for handshake in "$handshake_dir"/*.22000; do if [ ! -f "$handshake" ]; then echo "Fehler: $handshake ist keine Datei oder existiert nicht." continue fi handshake_filename=$(basename "$handshake") # Überprüfen, ob der Handshake bereits in einem der Zielverzeichnisse existiert if [ -f "$cracked_dir/$handshake_filename" ]; then echo "Handshake $handshake_filename wurde bereits geknackt, überspringen..." continue elif [ -f "$not_cracked_dir/$handshake_filename" ]; then echo "Handshake $handshake_filename wurde bereits als nicht geknackt markiert, überspringen..." continue else # Handshake bearbeiten process_handshake "$handshake" fi done } # Main echo "Starte Handshake-Bearbeitung..." bruteforce_handshake # Handshakes knacken echo "Handshake-Bearbeitung abgeschlossen."