Fragen zu hydra, Hacking und Passwortlisten

cabriofahrer

Well-Known Member
Ich taste mich gerade an eine für mich neue Thematik heran, wie im Titel benannt. Zunächst schaute ich mir dazu einige Infos und Videos im Netz an. In diesem Zusammenhang ist meist von Kali Linux die Rede, aber es geht letztendlich um die eigentliche Anwendug, hydra, die ja auch unter FreeBSD schnell installiert ist. In den Tutorials wird zum Teil erwähnt, dass hydra schon einige Passwortlisten mitbringt. Das scheint unter FreeBSD schon mal nicht der Fall zu sein:

Code:
$ pkg info -l hydra
hydra-9.6:
    /usr/local/bin/dpl4hydra.sh
    /usr/local/bin/hydra
    /usr/local/bin/hydra-wizard.sh
    /usr/local/bin/pw-inspector
    /usr/local/share/licenses/hydra-9.6/AGPLv3
    /usr/local/share/licenses/hydra-9.6/LICENSE
    /usr/local/share/licenses/hydra-9.6/catalog.mk
    /usr/local/share/man/man1/hydra.1.gz
    /usr/local/share/man/man1/pw-inspector.1.gz
$

Nicht weiter schlimm, im Netz wird man fündig, z.B. hier:


Letztendlich kann man sich ja auch seine eigenen Listen erstellen. Und dazu habe ich jetzt die Fragen: Mein Eindruck ist nämlich, dass hydra kein Passwort finden kann, wenn dieses nicht explizit in der Liste, steht, richtig? Hier mein Modellversuch: Ich habe auf meinem Raspi 3 mit RaspiOS (bookworm) ein Testkonto "test" mit dem Passwort "Test1969" erstellt. Das Passwort wird aber nicht ermittelt, wenn dieses nicht explitit in der Datei "passlist.txt" drin steht. Es reicht nicht, wenn dort "0123456789", "test" und "Test" steht. Also zunächst ohne den Eintrag "Test1969", sondern nur

Code:
$ more hydra/passlist.txt
0123456789
werner
test
Test
1969

Code:
$ hydra -l test -P passlist.txt ssh://192.168.1.71
Hydra v9.6 (c) 2023 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).

Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2026-01-03 19:56:22
[WARNING] Many SSH configurations limit the number of parallel tasks, it is recommended to reduce the tasks: use -t 4
[DATA] max 6 tasks per 1 server, overall 6 tasks, 6 login tries (l:1/p:6), ~1 try per task
[DATA] attacking ssh://192.168.1.71:22/
1 of 1 target completed, 0 valid password found
Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at 2026-01-03 19:56:27

Und jetzt mit

Code:
0123456789
werner                               
test
Test
1969
Test1969

Code:
$ hydra -l test -P passlist.txt ssh://192.168.1.71
Hydra v9.6 (c) 2023 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).

Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2026-01-03 19:57:01
[WARNING] Many SSH configurations limit the number of parallel tasks, it is recommended to reduce the tasks: use -t 4
[DATA] max 6 tasks per 1 server, overall 6 tasks, 6 login tries (l:1/p:6), ~1 try per task
[DATA] attacking ssh://192.168.1.71:22/
[22][ssh] host: 192.168.1.71   login: test   password: Test1969
1 of 1 target successfully completed, 1 valid password found
Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at 2026-01-03 19:57:07

Also scheint es offensichtlich so zu sein, dass das Passwort "Test1969" nur gefunden werden kann, wenn es explizit in der Liste steht und nicht etwa aus den Angaben "0123456789" und "test" gefunden werden kann.
Verzeiht mir meine Unwissenheit zu dem Thema, aber es sieht dann ja wohl so aus, dass ein Hacker einen Account nur hacken kann, wenn er quasi im Vorfeld das Passwort schon kennt, bzw. eine Liste mit möglichen Passwörtern erstellt, die ein Account haben könnte, oder sehe ich das falsch? Aus der Sicht eines potentiellen Angegriffenen eigentlich beruhigend, aus der Sicht eines Hackers eher ernüchternd?
 
Ja und nein?
Wenn du nur mit der Passwortliste (dictionary attack) dran gehst, werden auch nur die ausprobiert, das andere wäre dann eher ein "brute force" Angriff, bei dem du mehr oder weniger wahllos "Passwörter" ("zufällige" Zeichenketten) generierst und die ausprobierst - je länger das zu knackende Passwort ist, um so schwieriger/unwahrscheinlicher führt die Art von Angriff zum Erfolg.

Wo wieder das Thema Mensch ins Spiel kommt:
Wir sind nicht zufällig und viele benutzen das gleiche Passwort mehrfach (auch über verschiedene Menschen hinweg), da reicht es dann, wenn ein Dienst die Passwörter verliert und schon landet es in so einer Liste.
Alternativ sind auch einfach gängige Passwörter, das fängt bei "admin", "password", "foobar" an und könnte bei "1234567890" enden.

Aber das sind ja nicht nur die einzigen Angriffsmöglichkeiten, dann kommen noch so Dinge die Remote/Arbitrary Code Execution, SQL-Injection und so weiter. Heißt also, nur weil dein Passwort sicher ist, bist du nicht aus dem Schneider.
 
Wenn du nur mit der Passwortliste (dictionary attack) dran gehst, werden auch nur die ausprobiert, das andere wäre dann eher ein "brute force" Angriff, bei dem du mehr oder weniger wahllos "Passwörter" ("zufällige" Zeichenketten) generierst und die ausprobierst
Und wie geht das? Also dass zufällige Zeichenketten / Kombinationen und z.B. sämtliche Geburtsjahre von 1900 - 2026 generiert und kombiniert werden können? Also ausgehend vom obigen Beispiel, wird ja offensichtlich nicht "1969" aus 0123456789 erstellt und hinter "werner", "test" und "Test" ausprobiert. Wie ich auch richtig vermutete, kann aus "test" nicht "Test" werden. Wird wohl der Grund sein, warum immer empfohlen wird, bei der Auswahl seines Passwortes einen Grossbuchstaben zu verwenden.
Oder anders gefragt, wenn ich z.B. sämtliche Namen / Nachnamen und Kombinationen mit Geburtsjahren bilden will, z.B. aus Werner, Klaus, John, Müller, Meier...etc, so dass hydra dann z.B. WernerMüller2006 (und andere Jahre), werner-müller2006 (und andere Jahre), das gleiche mit Klaus, John, usw.?
 
Ob und wie Hydra das kann weiß ich jetzt nicht, aber sonst wäre vielleicht "john" bzw. "john the ripper" ein Anhaltspunkt für dich, das ist ein Tool um u.a. Passwortlisten nach Regeln zu erstellen.
Auch bedenke bitte, dass du eine sehr kurze Beispielpasswortliste mit nur wenigen MB hast. Ich zB habe ein Passwordfile mit 13GB und über ner Millarde Passwörtern. Da hab ich schon viel gefunden, glaub mir :) (natürlich immer nur im rechtlich erlaubten Rahmen hust).

edit

Hashcat willst du dir eventuell auch ansehen.
 
Ich zB habe ein Passwordfile mit 13GB und über ner Millarde Passwörtern.
Omg! Als ich eine der Passwortlisten mit etwas mehr als 10 MB von dieser github-Seite ausprobiert habe, wurde in meinem Modellversuch von hydra eine verbleibende Zeit von ca. 24 Stunden veranschlagt. Da brach ich nach einiger Zeit natürlich ab. Wahrscheinlich wäre der mit dieser Liste auch nie auf "Test1969" gekommen. An meinem Hauptrechner mit FreeBSD, von dem ich den "Angriff" aus auf den Raspi 3 startete, bemerkte ich allerdings keine Prozessorbelastung. Also wo ist dann eigentlich der Flaschenhals bei so einer Aktion? Etwa auf dem Zielrechner? Im Netzwerk? Dann möchte ich also auch nicht wissen, wie lange das Ganze dann mit Deiner 13 GB File dauern würde...
Wenn man sich also mit solchen Dingen beschäftigen möchte, ist wohl klar, dass man für irgendwelche Angriffe nicht seinen Hauptrechner nehmen würde, sondern irgendein Teil, welches 24/7 läuft, also z.B. einen Raspi?
 
Nein, einen Raspi willst du dafür sicher nicht :D

Du machst sowas über GPU Unterstützung, oder mit wirklich fetten CPUs. Für den Privatgebraucht kann man sich sowas auch von Amazon in der ec2 Cloud mieten. Aber ja, sowas läuft natürlich auch da mehrere Tage. Das sind auch die Ressourcen die ein Angreifer mindestens zur verfügung hat - also einfach was in der ec2 Cloud mieten.
 
Man muss zwei Angriffsszenarien unterscheiden:
  • Remote übers Netzwerk mit u.a. Hydra
  • Lokal gegen Password-Hashes mit u.a. John the Ripper
Übers Netzwerk kann man natürlich deutlich weniger Passwörter pro Zeiteinheit durchprobieren.

Und dazu habe ich jetzt die Fragen: Mein Eindruck ist nämlich, dass hydra kein Passwort finden kann, wenn dieses nicht explizit in der Liste, steht, richtig?

Mit hydra -x minimum_length:maximum_length:charset kann man auch Passwörter nach Schema F generieren und durchprobieren lassen.

Wird wohl der Grund sein, warum immer empfohlen wird, bei der Auswahl seines Passwortes einen Grossbuchstaben zu verwenden.

Dein Username kann auch Großbuchstaben enthalten. Obige Empfehlung ist uralt und stammt aus einer Zeit, als viele User der Einfachheit halber einfache Passwörter aus lauter Kleinbuchstaben verwendet haben, die man natürlich (auch via Netzwerk) recht flott durchprobieren konnte. Inzwischen kann man praktisch nirgendwo mehr so einfache Passwörter anlegen.

Ansonsten nimmt man heute sehr lange und zufällig generierte Passwörter, die man in einem Passwortmanager wie z.B. KeepassXC speichert sowie grundsätzlich (sofern möglich) Zwei-Faktor-Authentisierung (auch für KeepassXC selbst).

Du machst sowas über GPU Unterstützung, oder mit wirklich fetten CPUs. Für den Privatgebraucht kann man sich sowas auch von Amazon in der ec2 Cloud mieten. Aber ja, sowas läuft natürlich auch da mehrere Tage. Das sind auch die Ressourcen die ein Angreifer mindestens zur verfügung hat - also einfach was in der ec2 Cloud mieten.

Das ist ein gängiges Angriffsszenario. Jemand schafft sich Zugriff auf die Datenbank mit den Password-Hashes eines Dienstes und probiert dann lokal mit roher Gewalt, die dazu passenden Passwörter zu finden.
 
Zurück
Oben