SSH Brute-Force mit Java. Gar nicht so schwierig.
Wir lesen eine Passwort- und eine Userdatei ein und machen ein connect zu einem SSH-Server mit jeder Kombination bis wir eine gültige Verbindung gefunden haben. Hier die Architektur inkl. JUnit-Testklassen: …
Hier ein kurzes Video, von einem aktiven Lauf. Es muss Java auf dem Raspberry Pi installiert sein.
Das ganze Javaprojekt kann von GitLab geladen werden.
Wie kann es nun auf einem Pi installiert werden?
1. Download der neuesten Version von https://gitlab.com/IT-Berater/twhackssl/-/pipelines
Das twhackssh.zip auf dem Pi kopieren und das Zip auspacken z.b. mit
unzip twhackssh.zip
dann in das target Verzeichnis wechseln mit
cd target
in dem Verzeichnis liegt das selbststartende Programm de.wenzlaff.twhackssh-0.0.1-SNAPSHOT-jar-with-dependencies.jar das nur mit dem Parameter -s und dem Ziel-Server aufgerufen werden muss.
java -jar de.wenzlaff.twhackssh-0.0.1-SNAPSHOT-jar-with-dependencies.jar -s pi-home
pi-home durch die Zieladresse des SSH-Servers der überprüft werden soll ersetzen z.B. durch die IP 168.1.2.3
Ein Lauf, siehe im Video oben.
Übrigens sieht man auch sehr gut in diesem Projekt, die Verwendung von picocli. Alles mit Annotationen. Cool. Also nur in allen Projekten in der pom.xml ergänzen:
1 2 3 4 5 |
<dependency> <groupId>info.picocli</groupId> <artifactId>picocli</artifactId> <version>4.6.1</version> </dependency> |
Das ist ein wirklich cooler Framework, besser als das von Commons CLI von Apache. Ich verwende eigentlich nur noch das und habe fast alle Projekt schon umgestellt. Hier die Hilfe, die auch automatisch die default Werte ausgiebt:
Wer das Projekt ergänzen will, kann gerne merge_requests stellen oder Tickets einstellen.
Möglich währe z.B.:
-neuer Parameter für Multithreading
-Optimierungen
-mehrere Host gleichzeitig
-automatischer Password-Generator
-mehr Optionen
-…
Wie immer, Feedback erwünscht.