Aus LinuxUser 07/2009

Schwache Passwörter ermitteln und sichere wählen

© sxc.hu

Tag der offenen Tür

Nicht selten verwenden Anwender viel Zeit für das Absichern ihres Rechners und übersehen dabei die größte aller Sicherheitslücken: Schwache Passwörter.

Rechtlicher Hinweis

Die in diesem Artikel beschriebenen Programme dürfen Sie ausschließlich dazu verwenden, um die Sicherheit des eigenen Systems zu prüfen um eventuelle Schwachstellen zu ermitteln. Der Einsatz außerhalb dieses Rahmens verbietet der „Hackerparagraf“ (§ 202c BGB).

Ob Mail-Konto, Ebay-Account oder das System-Login: Passwörter sind in der IT-Welt allgegenwärtig und in vielen Fällen unverzichtbar. Doch selbst erfahrene Anwender wählen nur zu oft einfache Passwörter, die es Angreifern ermöglichen, sie durch simples Erraten zu knacken. Ganz vorne in der Rangliste stehen die eigenen Namen und die der Familienangehörigen oder Haustiere, oft auch in Kombination mit Teilen des Geburtsdatums. Welche Konsequenzen ein solch leichtsinniges Handeln nach sich ziehen kann, wissen eine Heerschar von Ebay-und Amazon-Kunden zu berichten, über deren Konten Fremde bestellt oder geboten haben. Abhilfe schafft in erster Linie die Sensibilisierung und Information über dieses Thema.

Passwörter unter Linux

Die meisten modernen Linux-Systeme speichern nicht die Passwörter selbst, sondern die Hashes, also die Quersummen davon, in der Datei /etc/shadow. Je nach verwendeter Distribution kommt MD5, Blowfish oder SHA-256/512 zum Einsatz, um diese zu erzeugen. Welchen Algorithmus Ihr System verwendet, verraten die ersten Zeichen zwischen den $ im Passwort: So zeigt beispielsweise $2a$ an, dass Blowfish verwendet wurde, $1$ steht für MD5, $5$ für SHA-256 und $6$ für SHA-512. Zudem versehen moderne Linux-Systeme die Passwörter mit einem so genannten Salt. Dabei handelt es sich vereinfacht dargestellt um einen zufällig gewählten Wert, der vor dem Erstellen des Hashes an das Klartextpasswort angehängt wird.

Der MD5-Hash des Passworts test ergibt immer den Wert d8e8fca2dc0f896fd7cb4cb0031ba249. Durch das Salt entsteht hingegen immer ein neuer Hash, der Angriffe deutlich erschwert. Das bedeutet im Rückschluss: Würde das System die Passwörter nicht „salzen“, könnten entsprechende Programme die Werte mit in Wörterbüchern hinterlegten Strings vergleichen. So muss ein Angreifer Passwort für Passwort auf dem System ausprobieren, was die Verarbeitungszeit wesentlich verlängert. Aber auch das Salt schützt Passwörter nur bedingt davor, dechiffriert zu werden. Darauf spezialisierte Programme prüfen mit verschiedenen Methoden verschiedene Passwörter und ermitteln zu kurze oder zu leichte in Sekundenschnelle.

Allerdings besitzt im laufenden System nur der Benutzer root direkten Zugriff auf die Passwortdatei /etc/shadow. Hat der Angreifer aber lokalen Zugriff auf den Rechner, ist es für ihn in der Regel ein Leichtes, an diese Datei zu gelangen.

Risiko lokaler Zugriff

Die meisten Linux-Systeme stehen lokalen Zugriffen mehr oder weniger schutzlos gegenüber. Oftmals reicht es aus, die Distributionen im Recovery-Mode zu starten, um sämtliche Zugriffsbeschränkungen darauf auszuhebeln. Drücken Sie etwa beim Booten von Ubuntu [Esc], gelangen Sie ins Bootmenü. Wählen Sie darin den zweiten Eintrag Ubuntu (recovery mode), so startet die Distribution im Rettungsmodus. Wählen Sie im erscheinenden Recovery Menu den Eintrag root, öffnet sich eine Root-Shell mit vollem Zugriff auf das System. Sollten Sie das Root-Passwort eines Systems vergessen haben, eignet sich dieser Zugang auch, um es zurückzusetzen: Öffnen Sie mit einem beliebigen Texteditor die Datei /etc/shadow und navigieren Sie zum Eintrag des gewünschten Benutzers. Löschen Sie dann die Zeichenkette nach dem ersten und vor dem zweiten Doppelpunkt. Der nächste Login erfolgt ohne Passwortabfrage.

Den Zugriff auf lokale Dateien erlaubt auch Grub dank der integrierten Shell, die Sie mit [C] am Boot-Prompt öffnen. Tippen Sie beispielsweise cat /etc/shadow (Abbildung 1), erscheint der Inhalt der Passwortdatei wie in einem normalen Terminal. Der Angreifer muss entsprechend nur noch den gewünschten Passwort-String abschreiben, um ihn danach mit Passwortcrackern zu bearbeiten.

Abbildung 1: Die in Grub integrierte Shell ermöglicht schon vor dem Booten den Zugriff auf lokale Dateien.
Abbildung 1: Die in Grub integrierte Shell ermöglicht schon vor dem Booten den Zugriff auf lokale Dateien.

Um das zu verhindern, bietet Grub einen Passwortschutz. Der tritt jedoch nicht beim Booten des Systems in Erscheinung, sondern erfordert lediglich eine Authentifizierung beim Ändern der Bootoptionen oder Öffnen der Grub-Shell. Um ihn einzurichten geben Sie in der Konsole grub-md5-crypt und danach das gewünschte Passwort ein. Daraufhin erscheint der generierte Passwort-Hash. Öffnen Sie jetzt die Grub-Konfigurationsdatei /boot/grub/menu.lst und ergänzen Sie die globale Sektion um den Eintrag password --md5 "verschlüsseltes Passwort", beispielsweise password --md5 $1$cGuo0/$4zZYZ0jzrOFt.hAzBkinr0.

Dieser Schutz lässt sich jedoch relativ leicht umgehen, indem Sie eine Live-Distribution wie Knoppix oder Slax auf dem Rechner starten. Hier hilft der wesentlich effizientere Schutz, das System mit DM-Crypt zu verschlüsseln. Dieses nicht ganz trivialen Themas nimmt sich der Artikel „Geheime Niederschrift“ unserer Schwesterzeitschrift Linux-Magazin in Ausgabe 08/2005 an [1]. Eine einfachere Methode besteht darin, das BIOS mit einem Passwort zu versehen und Wechseldatenträger als Bootmedien zu deaktivieren.

Gestatten: John

Das am häufigsten genutzte Programm, um Passwörter auf ihre Sicherheit zu überprüfen, nennt sich „John the Ripper“ [2]. Es eignet sich sowohl für Brute-Force- als auch Wörterbuchattacken, mit denen Sie relativ zügig schwache Passwörter ermitteln. Die kostenfreie Variante steht auf der Projektseite zum Download bereit. Sie unterstützt derzeit aber keine Multi-Core-Prozessoren und arbeitet entsprechend immer nur auf einem Kern.

Um beispielsweise die Login-Passwörter Ihres lokalen Linux-Systems zu überprüfen, genügt der Aufruf john /etc/shadow als Benutzer Root. Als Ziel eignet sich jede beliebige Textdatei, die Password-Hashes enthält. Ohne Angaben startet John zuerst den Single-Crack-Modus, danach verwendet er Wordlisten, und am Schluss folgt der inkrementelle Modus. Bei dieser klassischen Brute-Force-Methode probiert das Programm alle möglichen Zahlen- und Zeichenkombinationen durch, während es im Single-Crack-Modus Abwandlungen des Benutzernamens testet (Abbildung 2).

Mit die effektivste Methode, unsichere Passwörter zu identifizieren, stellen so genannte Wörterbuchattacken dar. Bei solchen Wörterbücher handelt es sich im Regelfall um Textdateien, die hunderttausende verschiedene Wörter und Wortkombinationen enthalten, die das Programm mit den gespeicherten Passwörtern vergleicht. Viele davon stehen im Internet zum freien Download bereit, eine kleine Auswahl bietet die John-the-Ripper-Website Openwall selbst an [3]. Mit dem Aufruf john /etc/shadow -wordlist:/Pfad/zur/Wortliste weisen Sie das Tool an, die Passwortdatei mit der angegebenen Wortliste zu überprüfen.

LinuxUser 07/2009 KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS
Deutschland

Hinterlasse einen Kommentar

2 Kommentare auf "Schwache Passwörter ermitteln und sichere wählen"

  E-Mail Benachrichtigung  
Neuste Älteste Beste Bewertung
Benachrichtige mich zu:

Toller Beitrag, allerdings fehlt beim sechsten Link das „t“ von „.net“.
Gruss
keymaker 😉

Danke, korrigiert.