CrackHash CrackHash ist eine Sammlung von Shell-Skripten, die darauf abzielen, Handshake-Dateien zu konvertieren, hochzuladen und deren Passwörter zu knacken. Diese Tools wurden für Penetrationstests und die Analyse von WLAN-Netzwerken entwickelt und bieten eine automatisierte Lösung zur Verarbeitung von Handshakes. Funktionen: Automatische Konvertierung: Wandelt PCAP-Dateien in das HC22000-Format um, das von Tools wie Hashcat verwendet wird. WebDAV-Upload: Lädt die konvertierten Handshakes automatisch auf einen WebDAV-Server hoch, um sie sicher zu speichern. Passwort-Cracking: Nutzt Hashcat, um Handshakes zu entschlüsseln und zu überprüfen, ob das Passwort eines Netzwerks geknackt wurde. Ordnung und Verwaltung: Handshakes werden nach dem Cracken in entsprechende Verzeichnisse verschoben – entweder in das cracked oder not_cracked Verzeichnis, je nach Erfolg. Verzeichnisstruktur: /handshakes/: Enthält die zu verarbeitenden Handshakes. /output/: Speichert Ergebnisse des Cracking-Prozesses. /cracked/: Erfolgreich geknackte Handshakes. /not_cracked/: Handshakes, bei denen das Passwort nicht geknackt werden konnte. Voraussetzungen: WebDAV: Ein WebDAV-Server muss eingerichtet und konfiguriert sein, um die Handshakes hochzuladen. Hashcat: Ein installiertes Hashcat-Tool zum Cracken der Handshakes. Wortliste: Eine geeignete Wortliste (z. B. hashes_2017.txt) für das Cracking. Nutzung: Konfiguriere das WebDAV für das Skript auf deinem Gerät. Führe das Skript aus, um Handshakes zu konvertieren und hochzuladen. Auf dem Server kannst du Handshakes durch das Cracking-Skript verarbeiten, um das Passwort zu finden. CrackHash hilft Pen-Testern und Forschern, Handshakes effizient zu verarbeiten, hochzuladen und zu entschlüsseln.
78 lines
2.6 KiB
Bash
78 lines
2.6 KiB
Bash
#!/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."
|