Sind die Passwörter Eurer Kollegen auch geleakt?

Hallo liebe Community,

in den letzten Wochen gab es wieder zahlreiche Berichte über neue Funde gehackter Accounts im (Dark-)Net. Beispiel:

Eigentlich ist das ein alter Hut. Schon seit einigen Jahren gibt es vom Hasso-Plattner-Insitut den Identity-Leak-Checker, auf dem man testen kann, ob Accounts in Verbindung mit einer eigenen E-Mail-Adresse irgendwo an dubiosen Seiten auftauchen (https://sec.hpi.de/ilc/) . Auch der Sicherheitsforscher Troy Hunt stellt auf seiner Webseite https://haveibeenpwned.com die Möglichkeit zu Verfügung, die eigene E-Mail-Adresse oder verwendete Passwörter abzuklopfen. Ich dachte mir … soweit so gut, was meine Passwörter betrifft. Aber was ist mit den Passwörtern der Kollegen. Da wir als Schulen zunehmend Dienste ins Netz stellen, die via LDAP gegen bestehende Lehreraccounts authentifizieren, finde ich das ein ziemlich heikles Thema.

Also habe ich mir das „OK“ meiner Schulleitung besorgt und ein kleines Skript geschrieben, das alle NTLM-Hashes der Lehrer-Accounts gegen die Pwned-Password-Lists von Troy Hunt prüft. Das Ergebnis: Genau 10% aller Lehrer-Konten waren geleakt. Ich habe das Thema auf der GLK angesprochen, die betroffenen Kollegen diskret informiert und eine Frist von 7 Tagen eingeräumt, in denen die Passwörter geändert werden müssen. Das haben dann auch alle umgehend gemacht. Die Reaktion aller Kollegen war äußerst positiv.

Ich möchte Euch das Skript für den eigenen Gebrauch überlassen. Ihr könnt also selbst mal schauen inwieweit Ihr betroffen seid, oder halt auch nicht. Beachtet bitte, dass das Skript nicht für die LMN7 geeignet ist. Dort brauche ich noch eine Idee, wie ich an die NTLM-Hashes komme.

Voraussetzungen:

  • Skript im Anhang dieses Beitrags (pwned-pw-check.sh) auf dem LMN-Server ablegen
  • Eine der beiden NTLM-Sammlungen von https://haveibeenpwned.com/Passwords herunterladen und im gleichen Verzeichnis ablegen (ca. 9G).
  • Passwortliste auspacken (dann ca. 19G).
  • Skript auf der Konsole als root ausführen:
    ./pwned-pw-check.sh
    oder Ergebnis in eine Log-Datei schreiben wenn Ihr das Skript im Hintergrund ausführt
    ./pwned-pw-check.sh >> pwnedpws.log &

Ich würde mich jetzt über Folgendes freuen:

  • … grundsätzliches Feedback
  • … gibt es Fehler / kann ich was verbessern
  • … eine Idee wie ich auf der LMN7 an die NTLM-Hashes der User komme

Wenn ich alles beisammen habe, überarbeite ich das Skript gerne und stelle es bei Bedarf hier oder auf Github zum Download an (je nachdem ob es ein Einmal-Ding ist, oder weiter gepflegt wird).

Noch eine wichtige Sache am Ende: Ihr sollte Euch bei Einsatz auf jeden Fall die Rückendeckung der Schulleitung holen!

Viele Grüße Tobi
pwned-pw-check.zip (1,1 KB)

4 „Gefällt mir“

Hallo Tobias,

das geht auch ganz einfach hier:

https://haveibeenpwned.com/DomainSearch

Wobei ich nicht weiß, ob da dieselben Daten hinterlegt sind.

Beste Grüße

Jörg

1 „Gefällt mir“

Hallo Jörg,

Nein, das ist was anderes: Das Skript von Tobias testet tatsächlich den NTLM Hash gegen Troy Hunts Hashwerte und kann so das im Schulnetz verwendete Passwort der Benutzer beurteilen.

Die von dir verlinkte Domainsuche findet nur raus, ob Menschen mit Mailadressen der schulischen Maildomain in den Hacks auftauchen, damit wird keine Aussage über das Passwort getroffen.

Da immer noch sehr viele Menschen überall dasselbe Passwort verwenden, ist der Test von Tobias sehr viel mehr Wert.

Ich habe das für meine Kollegen nachdem ich das getestet hatte im Portfolio erklärt. Wer das weiterverwenden mag darf das machen. Die Reaktion war meist interessierte Dankbarkeit und bei manchen auch die Erkenntnis, warum ein Passwort nicht genug ist.

VG

Frank

portfolio-prozesse-netz_und_medien-itblog-artikel-20190331_sicherheitscheck_lehrerpasswoerter.odt (234,6 KB)
portfolio-prozesse-netz_und_medien-itblog-artikel-20190331_sicherheitscheck_lehrerpasswoerter.pdf (94,4 KB)

3 „Gefällt mir“

Hallo @toheine,

ich habe das Script mit ca. 18% Treffer ausgeführt.
Vielen Dank für die Vorarbeit.
Die Schulleitung ist mit im Boot und befürwortet eine Aufklärung des Kollegiums.
Es ist geplant die Auswertung (ohne Namen) in der GLK vorzustellen.

Viele Grüße Manfred

Danke für die Blumen. Da hat sich die Idee schon gelohnt :wink:

1 „Gefällt mir“

Hallo @toheine,

vielen Dank für deine Arbeit. Super!
Gerade ausprobiert und 16% Treffer. Werde ich ebenfalls wie fleschhut informieren.

Viele Grüße Dominik

Hallo Frank,

mein Vorschlag bezog sich nur auf den ersten Teil, als Alternative zu der HPI-Seite. Und wenn man da einen Treffer hat, dann ist garantiert ein Account kompromittiert.

Wenn man die Passwörter selbst testet, dann weiß man “nur”, dass dieses Passwort irgendwo auf der Welt verbrannt ist.

Beides ist aus meiner Sicht sinnvoll und ist eine Ergänzung, keine Alternative.

Vor vielen Jahren habe ich übrigens mal John the Ripper über Nacht laufen lassen - auch mit einer Trefferquote von um die 20%. Die geknackten Passwörter habe ich dann (ohne Accountzuordnung) im Lehrerzimmer ausgehängt, das war ein großer Spaß (und geht heute natürlich gar nicht mehr).

Beste Grüße

Jörg

Hallo Jörg,

Was meinst Du mit „geht gar nicht mehr“? Im Sinne von Eingriff in die Privatsphäre eines besch… Passworts, oder technisch? Technisch ist das kein Problem. Mit Auftrag von Schülern und Kollegen teste ich hin und wieder PWs mit John.

Viele Grüße

Tobi

Hallo Tobias,

ich vermute er meint DSGVO & Co.

Viele Grüße
Steffen

Hi Tobi,
welche Version von John benutzt Du dafür ? Die Standardversion (ubuntu Paket) scheint kein SSHA zu können.

Gruß
Sascha

Theoretisch müsste doch folgendes erlaubt sein:

  • nur hashes aus der Datenbank ziehen (ohne Benutzername)
  • reihenfolge randomisieren und generische namen davor (user1,user2 etc)
  • knacken lassen und zählen wie viele pwd’s unsicher sind

Durch die fehlende persönliche Zuordnung dürften dadurch keine Persönlichkeitsrechte verletzt sein, oder was mein Ihr ?

Gruß
Sascha

Hallo Sascha,

john 1.8.0 aus dem Pacman-Repo (Arch-Linux). Ist aber auch egal, da ich ja die ntlm-Hashes ziehe.

Viele Grüße

Tobi

Das sehe ich eigentlich auch so. Daher kam auch meine Rückfrage an Jörg. Inbesondere wenn man einen Auftrag von der SL bekommt, sollte das doch vertretbar sein. Ich lasse mich aber auch vom begründeten Gegenteil überzeugen.

Ich habe mein Posting oben geloescht, da man sicherlich darueber streiten kann, ob Hashes personalisierte Daten sind (denke schon), bei Klartextpasswoertern verstoesst das zweifellos gegen jegliche Datenschutzgesetze, Privat- bzw. Intimsphaere usw. usf.
Selbst wenn die Schulleitung dazu ihr OK gibt muesst ihr das verantworten. Lasst Euch das schriftlich geben (gibt Euch niemand, ich wette).
Wenn ihr das anonymisiert sitzt ihr trotzdem am Druecker, haettet also theoretisch Zugriff auf die realen Passwoerter, welche niemanden etwas angehen - selbst wenn sie noch so doof sind.

Gruss Harry

Hallo,

Aber nicht unbedingt ein Schulaccount, denn das beutet ja nur, das irgendwann irgendwo mal eine Mailadresse der schulischen Maildomain in den Hacks aufgetaucht ist, weiß der Geier wo die Leute die überall verwendet haben. Mailadressen müssen die Menschen IHMO selber testen, ich habe davon keinerlei Gewinn als Organisation „Schule“.

Das Testen der Passwörter trägt hingegen unmittelbar zur Sicherheit bei, 80% der gefundenen Passwörter bei mir waren „schwach“ und eher nicht geleakt. Damit kann ich mir den John sparen und arbeite datenschutzfreundlicher, weil ich nicht mit Klartextpasswörtern hantiere.

VG

Frank

Falls jemand mal NTLM-Hashes cracken will, da diese nicht gesalzen sind kann man diese prima vorberechnen und da sind wir ruckzuck bei personenbezogenen Daten:
https://hashkiller.co.uk/Cracker/NTLM

Hallo zusammen,

nachdem das Skript von einigen Admins getestet wurde hat @ironiemix das ganze nochmal in sauberes Skript gepackt und auf github veröffentlicht. Ich habe es heute morgen in meinem zweiten Netz getestet und auch dort wieder Treffer erzielt. Ich würde daher jetzt allen Nutzern empfehlen das neue Skript zu nutzen:

Man muss sich im Prinzip um nichts kümmern. Skript herunterladen, mit den gewünschten Optionen ausführen und evtl. kleine Anpassungen vornehmen, die das Skript konkret vorschlägt. Log-Dateien und Troy-Hunts-Text-File liegen dann im Ordner /var/pwned.

Einen Riesen-Dank an Frank. Da seine Arbeit so solide ist, werde ich mein eigenes Quick-And-Dirty-Skript nicht weiter pflegen. Allerdings würde ich noch gerne eine LMN7-Tauglichkeit einbauen wollen. Wenn also jemand weiß wie wir in der LMN7 an die NTLMs kommen, dann nehm ich die Info gerne auf. Wäre doch schön wenn man das neue Skript weiter entwickelt und das Schulnetz regelmäßig prüft.

Viele Grüße

Tobi

3 „Gefällt mir“

Ich werde das zeitnah untersuchen und hier posten. Finde ich eine gute Sache.

LG, Rüdiger

Ich bin mir nicht sicher, ob das bei lmn7 gehen wird. Um ein Passwort zu klonen, muss man folgende Attribute zum Ziel-user kopieren:
unicodePwd UND supplementalCredentials

Diese kann man als root abfragen mit:

ldbsearch --url /var/lib/samba/private/sam.ldb "sAMAccountName=<login>" unicodePwd supplementalCredentials

Ohne die supplementalCredentials weiter zu klonen kann man sich nicht auf dem ziel Account nicht mit dem geklonten Passwort einloggen, ich nehme an das das das Salz ist. Siehe auch:

Bei der Migration gibt es kein Salz von der 6.x LMN weiterzugeben. Das ntlm-Passort reicht. Wahrscheinlich entsteht das Salz bei der ersten Passwort-Änderung.

LG, Rüdiger

1 „Gefällt mir“

Wir haben 16 %
Vielen Dank für das Skript!

Eine Sache ist mir als Anregung aufgefallen:
Das hat etwas lange gedauert.
Wenn man die Hashes alphabetisch sortiert, dann sollte die Überprüfung viele schneller gehen.

VGV