Zum Hauptinhalt springen

Mein SSH-Cracker

Dieses Repository enthält den Quellcode meiner eigenen Umsetzung des hydra-Werkzeugs, eines Netzwerk-Logon-Crackers für Brute-Force gegen verschiedene Protokolle. Diese leichtgewichtige Umsetzung konzentriert sich auf SSH-Brute-Force und Wörterbuchangriffe.

Nur für Testzwecke

Dieses Werkzeug ist ausschließlich für Ausbildung und autorisierte Penetrationstests gedacht. Es gegen Systeme einzusetzen, für die du keine ausdrückliche Testerlaubnis hast, ist strafbar und unethisch.

Inhalt

Funktionen

Diese Umsetzung deckt folgende Funktionen ab:

  • SSH-Brute-Force: probiert SSH-Passwörter über alle Kombinationen innerhalb einer gegebenen Länge und eines Zeichensatzes.
  • Wörterbuchangriff: nutzt eine vorgegebene Wortliste.
  • Konfigurierbar: minimale und maximale Passwortlänge sowie Zeichensätze sind einstellbar.
  • Logging: liefert unstrukturierte, ausführliche Protokolle aller Versuche und Ergebnisse.

Loslegen

So kommst du mit dem hydra-Werkzeug los:

  1. Repository klonen:
git clone https://github.com/pascalnehlsen/hydra.git
cd hydra
  1. Virtuelle Umgebung anlegen:
python -m venv myenv
  • myenv ist der Name der Umgebung. Du kannst ihn beliebig wählen.
  1. Virtuelle Umgebung aktivieren:

Eine virtuelle Umgebung schafft isolierte Python-Umgebungen pro Projekt, sodass Abhängigkeiten und Paketversionen sich nicht in die Quere kommen.

  • Windows (Eingabeaufforderung oder PowerShell):
myenv\Scripts\activate
  • macOS/Linux:
source myenv/bin/activate
  • Windows (Git Bash oder MINGW64):
source myenv/Scripts/activate

Nach dem Aktivieren siehst du den Namen der Umgebung (etwa (myenv)) im Prompt, du arbeitest also nun darin.

  1. Abhängigkeiten installieren: Stelle sicher, dass paramiko installiert ist. Über die requirements.txt:
pip install -r requirements.txt

Beispiele

Brute-Force

Für einen Brute-Force ohne Wortliste:

python hydra.py \
-u <username> \
-s <server> \
-p <port> \
--min <min_length> \
--max <max_length> \
-c <charset>

Beispiel:

python hydra.py \
-u root \
-s localhost \
-p 2222 \
--min 1 \
--max 4 \
-c abc123

Wörterbuchangriff

Für einen Wörterbuchangriff mit Wortliste:

python hydra.py \
-u <username> \
-s <server> \
-p <port> \
-w <path_to_wordlist>
  • path_to_wordlist (-w): Pfad zur Wortliste (für den Wörterbuchangriff nötig)

Beispiel:

python hydra.py \
-u root \
-s localhost\
-p 2222 \
-w ./password.txt

Alle Hydra-Optionen

OptionKurzformBeschreibungStandardwertPflicht
--username-uBenutzername für den SSH-Loginrootx
--server-sServer-IP oder DNS-x
--port-pPort für die SSH-Verbindung22
--wordlist-wPfad zur Wortliste für den Wörterbuchangriff-
--character-cZeichensatz für den Brute-Forcealphanumerisch
--minimum--minMinimale Passwortlänge beim Brute-Force1
--maximum--maxMaximale Passwortlänge beim Brute-Force4

Logging

Die Logs gehen nach hydra.log im Quellcode-Ordner. Liegt dort schon eine hydra.log, werden die neuen Einträge angehängt. In dieser Datei findest du die Details zu Verbindungsversuchen und Ergebnissen.


Repository: https://github.com/PascalNehlsen/dso-python-tasks/tree/main/module-5/hydra