{"id":16924,"date":"2021-05-24T20:20:35","date_gmt":"2021-05-24T18:20:35","guid":{"rendered":"http:\/\/blog.wenzlaff.de\/?p=16924"},"modified":"2021-05-28T06:00:38","modified_gmt":"2021-05-28T04:00:38","slug":"twhackssh","status":"publish","type":"post","link":"http:\/\/blog.wenzlaff.de\/?p=16924","title":{"rendered":"SSH Brute-Force mit Java, picocli und TWHackSSH"},"content":{"rendered":"<p><a href=\"http:\/\/blog.wenzlaff.de\/?p=16896\" rel=\"noopener\" target=\"_blank\">SSH Brute-Force<\/a> mit Java. Gar nicht so schwierig.<br \/>\n<a href=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2021\/05\/wenzlaff.de-2021-05-25-um-17.25.15.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2021\/05\/wenzlaff.de-2021-05-25-um-17.25.15.png\" alt=\"\" width=\"1142\" height=\"480\" class=\"aligncenter size-full wp-image-16933\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2021\/05\/wenzlaff.de-2021-05-25-um-17.25.15.png 1142w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2021\/05\/wenzlaff.de-2021-05-25-um-17.25.15-300x126.png 300w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2021\/05\/wenzlaff.de-2021-05-25-um-17.25.15-1024x430.png 1024w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2021\/05\/wenzlaff.de-2021-05-25-um-17.25.15-768x323.png 768w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/a><br \/>\nWir lesen eine Passwort- und eine Userdatei ein und machen ein connect zu einem SSH-Server mit jeder Kombination bis wir eine g\u00fcltige Verbindung gefunden haben. Hier die Architektur inkl. JUnit-Testklassen: &#8230;<!--more--><\/p>\n<p><a href=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2021\/05\/architektur.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2021\/05\/architektur.png\" alt=\"\" width=\"956\" height=\"617\" class=\"aligncenter size-full wp-image-16925\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2021\/05\/architektur.png 956w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2021\/05\/architektur-300x194.png 300w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2021\/05\/architektur-768x496.png 768w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/a><\/p>\n<p>Hier ein kurzes Video, von einem aktiven Lauf. Es muss Java auf dem Raspberry Pi installiert sein.<\/p>\n<p><script id=\"asciicast-415887\" src=\"https:\/\/asciinema.org\/a\/415887.js\" async><\/script><\/p>\n<p>Das ganze Javaprojekt kann von <a href=\"https:\/\/gitlab.com\/IT-Berater\/twhackssl\" rel=\"noopener\" target=\"_blank\">GitLab<\/a> geladen werden.<\/p>\n<p>Wie kann es nun auf einem Pi installiert werden?<\/p>\n<p>1. Download der neuesten Version von <a href=\"https:\/\/gitlab.com\/IT-Berater\/twhackssl\/-\/pipelines\" rel=\"noopener\" target=\"_blank\">https:\/\/gitlab.com\/IT-Berater\/twhackssl\/-\/pipelines<\/a><\/p>\n<p><a href=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2021\/05\/wenzlaff.de-2021-05-24-um-19.23.23.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2021\/05\/wenzlaff.de-2021-05-24-um-19.23.23.png\" alt=\"\" width=\"3224\" height=\"730\" class=\"aligncenter size-full wp-image-16926\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2021\/05\/wenzlaff.de-2021-05-24-um-19.23.23.png 3224w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2021\/05\/wenzlaff.de-2021-05-24-um-19.23.23-300x68.png 300w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2021\/05\/wenzlaff.de-2021-05-24-um-19.23.23-1024x232.png 1024w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2021\/05\/wenzlaff.de-2021-05-24-um-19.23.23-768x174.png 768w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2021\/05\/wenzlaff.de-2021-05-24-um-19.23.23-1536x348.png 1536w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2021\/05\/wenzlaff.de-2021-05-24-um-19.23.23-2048x464.png 2048w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/a><\/p>\n<p>Das <strong>twhackssh.zip<\/strong> auf dem Pi kopieren und das Zip auspacken z.b. mit<\/p>\n<p><strong>unzip twhackssh.zip<\/strong><\/p>\n<p>dann in das target Verzeichnis wechseln mit<br \/>\n<strong><br \/>\ncd target<\/strong><\/p>\n<p>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.<\/p>\n<p><strong>java -jar de.wenzlaff.twhackssh-0.0.1-SNAPSHOT-jar-with-dependencies.jar -s pi-home<\/strong><\/p>\n<p>pi-home durch die Zieladresse des SSH-Servers der \u00fcberpr\u00fcft werden soll ersetzen z.B. durch die IP 168.1.2.3<\/p>\n<p>Ein Lauf, siehe im Video oben.<\/p>\n<p>\u00dcbrigens 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\u00e4nzen:<\/p>\n<pre class=\"lang:default decode:true \" >\r\n&lt;dependency&gt;\r\n\t&lt;groupId&gt;info.picocli&lt;\/groupId&gt;\r\n\t&lt;artifactId&gt;picocli&lt;\/artifactId&gt;\r\n\t&lt;version&gt;4.6.1&lt;\/version&gt;\r\n&lt;\/dependency&gt;<\/pre>\n<p>Das ist ein wirklich cooler Framework, besser als das von <a href=\"http:\/\/blog.wenzlaff.de\/?p=12952\" rel=\"noopener\" target=\"_blank\">Commons CLI von Apache<\/a>. Ich verwende eigentlich nur noch das und habe fast alle Projekt schon umgestellt. Hier die Hilfe, die auch automatisch die default Werte ausgiebt:<\/p>\n<p><a href=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2021\/05\/wenzlaff.de-2021-05-24-um-19.34.57.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2021\/05\/wenzlaff.de-2021-05-24-um-19.34.57.png\" alt=\"\" width=\"2282\" height=\"1054\" class=\"aligncenter size-full wp-image-16929\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2021\/05\/wenzlaff.de-2021-05-24-um-19.34.57.png 2282w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2021\/05\/wenzlaff.de-2021-05-24-um-19.34.57-300x139.png 300w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2021\/05\/wenzlaff.de-2021-05-24-um-19.34.57-1024x473.png 1024w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2021\/05\/wenzlaff.de-2021-05-24-um-19.34.57-768x355.png 768w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2021\/05\/wenzlaff.de-2021-05-24-um-19.34.57-1536x709.png 1536w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2021\/05\/wenzlaff.de-2021-05-24-um-19.34.57-2048x946.png 2048w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/a><\/p>\n<p>Wer das Projekt erg\u00e4nzen will, kann gerne <a href=\"https:\/\/gitlab.com\/IT-Berater\/twhackssl\/-\/merge_requests\" rel=\"noopener\" target=\"_blank\">merge_requests<\/a> stellen oder <a href=\"https:\/\/gitlab.com\/IT-Berater\/twhackssl\/-\/issues\" rel=\"noopener\" target=\"_blank\">Tickets einstellen<\/a>.<\/p>\n<p>M\u00f6glich w\u00e4hre z.B.:<\/p>\n<p>-neuer Parameter f\u00fcr Multithreading<br \/>\n-Optimierungen<br \/>\n-mehrere Host gleichzeitig<br \/>\n-automatischer Password-Generator<br \/>\n-mehr Optionen<br \/>\n-&#8230; <\/p>\n<p>Wie immer, Feedback erw\u00fcnscht.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>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\u00fcltige Verbindung gefunden haben. Hier die Architektur inkl. JUnit-Testklassen: &#8230;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,3897,808,79,1023,7],"tags":[946,2178,4902,4900,4901],"class_list":["post-16924","post","type-post","status-publish","format-standard","hentry","category-java","category-java-programmierung","category-linux-2","category-programmierung","category-raspberry-pi","category-tools","tag-cmd","tag-java","tag-picocli","tag-ssh-brute-force","tag-twhackssh"],"_links":{"self":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/16924","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=16924"}],"version-history":[{"count":0,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/16924\/revisions"}],"wp:attachment":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=16924"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=16924"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=16924"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}