Penetration Testing erklärt von Hackern Das sollten IT-Profis und Verantwortliche wissen Penetration Testing, auch bekannt als „Pentesting“, ist ein elementarer
Du hast vermutlich zahlreiche Passwörter für verschiedene digitale Benutzerkonten. Beim Anlegen neuer Konten musst du meist bestimmte Vorgaben für ein sicheres Passwort erfüllen. In diesem ersten von vier Blogbeiträgen erklären wir dir, wie du dich mit einer guten Password Policy vor Password Cracking schützen kannst.
Passwörter sind die Essenz der heutigen IT und aller verbundener Systeme. Sie definieren in der Basis die Sicherheit der Systeme und sind häufig eine Kontroverse im Unternehmen zwischen IT, Geschäftsführung und Mitarbeitern.
Neben der Default Password Policy gibt es weitere Möglichkeiten wie die Fine Grained Password Policy. Diese bietet einen deutlich granulareren Schutz und verwendet den Standard nur, falls der Benutzer nicht bereits in einer der sogenannten PSO Gruppen ist. Also nur im absoluten Notfall.
Achtung: Die Default Domain Passwort Policy ist auf 14 Zeichen begrenzt, mehr ist nativ nicht möglich.
Die Security Baseline von Microsoft gibt 14 Zeichen als maximalen Wert vor. Wenn 15 Zeichen verlangt werden, wird somit die Richtlinie außer Kraft gesetzt und die Eingabe von 8 Zeichen ist wieder möglich.
Zur Unterstützung eurer Mitarbeiter besteht die Möglichkeit, neben einer Zwei-Faktor-Authentifizierung ebenfalls weitere Mittel wie Chipkarten, Dongels oder Biometrie zu verwenden. Dies ermöglicht es, trotz geringerer Komplexität, die Sicherheit hochzuhalten.
Schwache oder unzureichend komplexe Kennwörter können in zwei Formen vorliegen: Als Klartext und als Hashwert. Natürlich können auch komplexe, lange Kennwörter so übertragen werden. Wir nehmen hier einmal an, dass diese ausreichend gesichert sind bzw. bei der Hash Variante eine Entschlüsselung zu lange dauern würde.
Aufgrund der gesteigerten Rechenleistung und Grafikkarten, welche selbst virtuelle Realitäten ermöglichen, ist ein Standardkennwort mit 8 Zeichen bereits nach Minuten bis Stunden entschlüsselt. Gerade wenn Kennwörter aus „normalen“ Worten mit Zahlen oder der sogenannten Leetspeak entstehen, ist es aufgrund bestehender Password Tabellen ein Leichtes für den Angreifer.
Grundsätzlich ist jedes System zu betrachten.
Server, Clients, Cloud-Dienste, Drucker und Software wie z.B. ein ERP System.
Potenzielle Angreifer suchen sich häufig „Low Privileged User“ als Angriffsbasis, um sich anschließend von dort horizontal oder vertikal im Netz weiter auszubreiten. Hier kann selbst die Kompromittierung eines einfachen Users mit sehr eingeschränkten Berechtigungen durch schwache Kennwörter ausreichend sein.
Als Password Cracking bezeichnet man ein Fachgebiet der Kryptoanalyse, also der Wissenschaft, die sich mit dem Knacken von Passwörtern beschäftigt. Password Cracking wird angewandt, um verschlüsselte Passwörter zu knacken, sie also in ihre unverschlüsselte Ausgangsform zurückzuführen. Hierzu wird sich zahlreicher Techniken, Methoden und Verfahren bedient, die teilweise in dem folgenden Artikel vorgestellt werden.
Häufig werden im Rahmen von Penetrationstests Geräte, Dienste oder ganze Domänen kompromittiert. Die dort gespeicherten Passwörter werden jedoch heutzutage mittels kryptographischer Hashfunktionen verschlüsselt gespeichert. Um an diese Passwörter im Klartext zu kommen, muss die Verschlüsselung geknackt, im Fachjargon „gecrackt“ werden. Werden diese Passwörter „gecrackt“, ist der Zugang zu einer Vielzahl von Diensten möglich: Einzelne Dateifreigaben, Benutzeraccounts oder ganze AD’s lassen sich so leicht angreifen. Denn häufig reicht es aus, nur wenige Schlüsselnutzer zu kompromittieren, um weitreichend Zugang zu bekommen.
In einem Penetrationstest bietet dies die Möglichkeit, mit nur wenig Wissen über das Netzwerk und seine Geräte, schon am Anfang einen großflächigen Zugang zu erlangen. Der Angreifer benötigt nur die Password-Hashes, die im Optimalfall per MitM-Angriff erlang bar sind. Anschließend können diese Password-Hashes mit nahezu unbegrenzter Rechenleistung gecrackt werden. Cloudanbieter, bei denen man für verhältnismäßig wenig Geld Rechenleistung anmieten kann, ermöglichen Angriffe auf Passwörter, die vor wenigen Jahren noch undenkbar gewesen wären.
Passwörter lassen sich auf verschiedene Arten „cracken“, die bekanntesten sind Bruteforce, Wörterbuch, Hybrid sowie Kombinatorangriffe. Alle diese Angriffe zeichnen sich dadurch aus, dass sie jeweils nur eine mögliche Methode sind, um Passwörter zu cracken. Den “besten” Angriff gibt es in der Form nicht, denn Passwörter unterschieden sich immer enorm voneinander und so lassen sich erfolgreiche Angriffe nicht pauschal auf andere Passwörter übertragen. Wichtig ist es hingegen alle Angriffe in ihren Grundformen zu kennen und sie auch kreativ anwenden oder neu interpretieren zu können. Passwort Cracking ist somit ein Thema, in das man leicht einsteigen kann. Um es jedoch zur Meisterschaft zu führen, bedarf es viel Zeit, Wissen und auch Rechenleistung.
Der Bruteforce Angriff basiert auf dem Durchprobieren jeglicher möglichen Kombinationen, was bei steigenden Passwortlängen zu einer immens großen Zahl an möglichen Kombinationen führt. Trotz größerer Rechenleistung, die das Durchprobieren von mehreren hundert Milliarden Passwörtern pro Sekunde ermöglicht, sind Passwörter über 10 Zeichen mittels reinem Bruteforce und aktuell verfügbarer Hardware nicht in akzeptabler Zeit „crackbar“. Jedoch muss hier immer bedacht werden, dass zum einen sich die zur Verfügung stehende Rechenleistung massiv steigert, als auch die Preise für solch leistungsstarke Hardware immer weiter sinkt. Die Entwicklung der Grafikkarten der letzten 10 Jahre zeigt dies sehr gut auf, so braucht man für gleiche Leistung immer weniger Geld bzw. kann mit gleichem Geld mehr Leistung erwerben. Jedoch ist Bruteforce noch lange nicht die einzige Möglichkeit Passwörter zu cracken und kann weiter ergänzt und verbessert werden.
Hashcat ist eine Software zum „cracken“ von Passwörtern bzw. ihren Hashes. Hashcat wird auf der Kommandozeile ausgeführt und bedient. Es läuft auf allen Betriebssystemen und unterstützt CPUs, GPUs und FPGAs, jedoch empfiehlt sich die Nutzung von Linux (Servervariante) mit Nvidia Grafikkarten. Grafikkarte sind im Allgemeinen wesentlich effektiver als Prozessoren und werden daher empfohlen. Als Linux Distribution empfiehlt sich Ubuntu mit den proprietären Nvidia Treibern und CUDA. Hashcat sollte immer selbst kompiliert werden, da so die neuste Version genutzt wird und Kompatibilitätsprobleme vermieden werden.
hashcat -a (attack mode) -m (hash mode) path/to/hashfile path/to/dictionary
Diese Syntax lässt sich noch mit weiteren Optionen erweitern, die im Folgenden erläutert werden.
Hiermit wird der Angriffstyp bestimmt. Es kann zwischen den folgenden Varianten ausgewählt werden.
-a 0 Wörterbuch
-a 1 Kombinator
-a 3 Bruteforce
-a 6 Hybrid + Masken
-a 7 Maske + Hybrid
-a 9 Association
Der Wörterbuch Angriff ist der Standardangriff und ist meistens eine gute Wahl. Die anderen Angriffe sind auf verschiedene Situationen zugeschnitten und entfalten dort ihre Stärken.
Der Hash Mode gibt an, welcher Hash Typ gecrackt werden soll und wird mittels -m (Zahl) angegeben. NTLM z. B. hat die Nummer 1000, während SHA1 die Nummer 100 besitzt. Alle Nummern lassen sich am besten in der Hashcat Wiki nachschlagen.
Mittels Zeichensätzen kann der Bruteforce spezifiziert werden, so können Passwörter in folgenden Formaten abgebildet werden.
?d = Zahlen von 0-9
?s = Sonderzeichen
?l = Kleinbuchstaben
?u = Großbuchstaben
?a = alle Vorherigen
Aus diesen Zeichensätzen lassen sich eigene Masken erstellen, mit denen gezielter nach Passwörtern gesucht werden kann.
Auch lassen sich eigene Zeichensätze definieren, um Fälle besonderen Buchstaben (Chinesisch, Arabisch, Russisch, …) abzubilden. Dies geschieht mit der Option -1 (eigener Zeichensatz). Mittels der Option -i lässt sich angeben, dass der Bruteforce Angriff in ihrer Länge gesteigert wird, also zuerst mit einem Zeichen begonnen wird und sich dies dann weiter erhöht.
Bruteforce auf ein Password bestehend aus einer unbekannten Menge an Zahlen.
hashcat -a 3 -m (hash mode) hashfile.txt -i ?d?d?d?d?d?d?d?d?d
Bruteforce auf ein Password bestehend aus 5 Buchstaben und und 4 unbekanntem Zeichen am Ende.
hashcat -a 3 -m (hash mode) hashfile.txt ?u?l?l?l?l?a?a?a?a
Brutforce auf ein Password mit teilweise bekannten Inhalt.
hashcat -a 3 -m (hash mode) hashfile.txt ?u?l?l?lword
Bruteforce auf ein Password mit eigenem Zeichensatz.
hashcat -a 3 -m (hash mode) hashfile.txt -1 ?d?s ?1?1?1?1?1?1?1?1
Bruteforce auf ein Passwort mit deutschen Umlauten und automatischer Verlängerung.
hashcat -a 3 -m (hash mode) hashfile.txt -1 charsets/German.hcchr -i ?1?1?1?1
Der Schlüssel zum Erfolg ist die Umsetzung einer komplexen Password Policy. Diese kann über die „Default Password Policy“ erfolgen oder über eine „Fine Grained Password Policy“.
Bei der Default Password Policy ohne weitere Hilfsmittel (Biometrie, Karten etc.) sollten mindestens 12 Zeichen inkl. Komplexität gewählt werden. Ebenso empfehlen wir einen regelmäßigen Passwortwechsel, mindestens jährlich. Laut aktueller BSI-Empfehlung kann zwar auf einen regelmäßigen Passwortwechsel verzichtet werden, dies ist allerdings explizit an die Bedingung geknüpft, dass die Kompromittierung von Kennworten zeitnah erkannt wird. Dies ist jedoch erfahrungsgemäß, in der Mehrzahl der vorhandenen Infrastrukturen, ohne SIEM oder ausführliches Monitoring, verbunden mit einer Anbindung an gängige Seiten wie https://haveibeenpwned.com kaum möglich ist.
Zitat:
BSI Dokument „ORP_4_Identitaets_und_Berechtigungsmanagement_Editon_2020“
Empfehlungen für den Regelung des Passwortgebrauchs – siehe ORP.4.A__.
ORP.4.A23 Regelung für Passwort-verarbeitende Anwendungen und IT-Systeme [IT-Betrieb] (B) IT-Systeme oder Anwendungen SOLLTEN NUR mit einem validen Grund zum Wechsel des Passworts auffordern. Reine zeitgesteuerte Wechsel SOLLTEN vermieden werden. Es MÜSSEN Maßnahmen ergriffen werden, um die Kompromittierung von Passwörtern zu erkennen. Ist dies nicht möglich, so SOLLTE geprüft werden, ob die Nachteile eines zeitgesteuerten Passwortwechsels in Kauf genommen werden können und Passwörter in gewissen Abständen gewechselt werden.
Das Kennwort sollte mindestens drei der vier möglichen Komplexitätsanforderungen enthalten. Eine Historie von 24 Kennwörtern ist empfohlen und bei zu häufigen Fehleingaben gesperrt werden.
Hierbei wichtig: Dies gilt nicht für Administratoren. Neben der Größe darf hier kein sogenannter Threshold vorliegen, da sonst eine Denial of Service Möglichkeit besteht.
Werden alle Accounts zur gleichen Zeit angegriffen, wäre bei gleicher Richtlinie für alle auch kein Entsperren mehr möglich und das Unternehmen steht still. Der Threshold ist eine der sinnvollsten Einstellung, um Brutforce Attacken zu unterbinden.
Zusätzlich zur Default Policy kann bei der Fine Grained Password Policy eine deutlich höhere Granularität hergestellt werden. Sie ermöglicht das Gruppieren von Berechtigungen und somit die Anhebung der Komplexität nach Bedarf.
Hierzu müssen mehrere Schritte durchgeführt werden.
Unter der Benutzer- und Computerverwaltung müssen die PSO Gruppen angelegt werden
Die Anlage von drei Gruppen ist hier als Vorschlag zu sehen. Natürlich kann es noch Granularer durch z.B. Power User gestaltet werden.
Unter dem Active Directory Verwaltungscenter muss im Anschluss die Baumansicht gewählt werden und dort der Punkt Domäne -> System -> Password Settings Container
Danach erfolgt die tatsächliche Anlage der PSO Objekte (Password Security Objects) welche beispielsweise wie folgt konfiguriert werden können.
Wichtig: Wie bereits bei der Default Password Policy beschrieben, ist es sehr wichtig, dass Administratoren keine Kontosperrung erhalten, da sonst bei einem Bruteforce-Angriff kein Zugriff mehr möglich ist.
Zuerst die Administrative PSO mit der Zuordnung der entsprechenden Gruppe.
Die Rangfolge entscheidet über die Abarbeitung der Gruppen.
Kennwortlänge sollte hier mindestens 16-stellig sein
Gespeicherte Kennwörter 36
Im Anschluss Management / Power User
Ab dieser Gruppe empfehlen wir die Einführung der Kontosperrrichtlinie auf Freischaltungsebene. Eine zeitbasierte Einstellung ist zwar ebenfalls gängig, aber durch moderne Angriffe aushebelbar aufgrund von Delays beim Versuch der Password Eingabe.
Falls ein User zehn oder 15 falsche Eingaben hat, ist eine Notwendigkeit zur Rücksetzung häufig generell notwendig.
Und zu guter Letzt der Standard Benutzer.
Für alle Gruppen gilt, dass ein versehentliches Löschen ausgeschlossen sein muss. Ebenso empfiehlt sich eine deutliche Beschreibung, wer welcher Passwort Richtlinie unterliegt.
Nach erfolgreicher Erstellung ist die Abarbeitung der Kennwortrichtlinien wie folgt.
1 Domain Default Policy
2 PSO-Gruppe > nach Rangfolge
3 PSO-User > nach Rangfolge
Bei der Rangfolge der PSO greift der niedrigere Wert. Daher kann ein administrativer User als PSO User und PSO Administrator vorhanden sein, muss aber immer die PSO Administrator Richtlinien erfüllen.
Grundsätzlich gilt: Nicht auf einzelne User anwenden, da es schwierig und unübersichtlich in der Verwaltung wird.
Die Default Domain-Policy sollte als FallBack auch konfiguriert sein. Wenn ein Benutzer nicht in einer PSO-Gruppe ist, greift immer noch die Default Domain-Policy.
Unterstützen Sie hier Ihre Mitarbeiter mit allen Mitteln, die Ihnen zur Verfügung stehen, sodass keine leichten Passwörter (Haustier, Partner etc.) gewählt werden. Mindestens für die Administratoren sollte ein Passwortmanager zur Verfügung stehen. Hilfreiche Anweisungen und User Awareness Schulungen sind zeitgemäß und gerne als Unterstützung gesehen.
Darüber hinaus sollte immer eine Zwei-Faktor-Authentifizierung (2FA), wenn möglich, genutzt werden. Dies erhöht den Aufwand für Angreifer ungemein, da es bedeutet, dass ein Mobile Device, eine Mobilfunknummer oder Apps zusätzlich kompromittiert werden müssen.
In modernen AD Umgebungen gibt es mehrere Möglichkeiten gegen schwache Passwörter vorzugehen, neben den altbekannten Passwordpolicies, lässt sich dies auch mittels Blocklisten ergänzen. Somit können schwache Passwörter, die zwar die Passwordpolicies erfüllen, aber dennoch unsicher sind, ausgefiltert werden. Typische Beispiele hierfür wären Kombinationen aus Firmenname, Standort oder Produktnamen und Zahlen und oder Sonderzeichen. Diese Passwörter gefährden durch ihre geringe Komplexität die Sicherheit des gesamten Unternehmens, da häufig nur einzelne Nutzer ausreichen, um die gesamte Domäne zu kompromittieren.
Hierzu bietet Microsoft zwei Möglichkeiten an: In Azure AD Umgebungen werden standardmäßig Microsoft eigene Blocklisten auf alle Passwörter angewendet, um die Verwendung von schwachen Passwörtern zu unterbinden. Diese Listen werden durch Microsoft entwickelt und beinhalten weltweit genutzte schwache Passwörter. Auch lassen sich eigene Listen an gesperrten Passwörtern angeben, um lokale Besonderheiten besser abzubilden. Bei den benutzerdefinierten Blocklisten empfiehlt es sich, die Stammwörter der Passwörter zu verwenden, also anstatt von Firmenname!*’#02 nur Firmenname zu verwenden, da die Permutation durch das AD automatisch durchgeführt wird. Diese beiden Arten der Passwordblocklisten lassen sich nur in Azure AD/ Mixed Deployments umsetzten, bei On-Premise AD ist dies nicht möglich. Auch ist die passende Lizenz ist erforderlich (Azure AD Premium P1)
Das offline cracken mit Hashcat ist nicht möglich, da das in der Regel auf anderen Systemen gemacht wird, Brutforce Angriffe gegen eigene Systeme lassen sich sehr wohl erkennen. Hierzu benötigt es vor allem ein gutes Monitoring von z. B. Fehleingaben, welche auf Bruteforce Attacken hindeuten könnten. Ebenso relevant kann hier bei Cloud-Diensten Intune sein, welches unmögliche Reiseaktivität oder nicht bekannte IP-Adressen erkennt und diese ggf. direkt für eine Verwendung des Passwortes sperrt.
Die grundsätzliche Frage ist: Was kann der Angreifer mit den Daten in seinem Zugriff anfangen und wie ist die interne Handhabung. Für eine strafrechtliche Verfolgung kann das reine Einloggen noch nicht genug Informationen beinhalten. Für die interne Sicherheit wäre ein sofortiges Sperren des Benutzers und ein Blockieren der Angreifer IP Adresse wünschenswert.
Hier geht’s zum nächsten Teil unserer Password-Serie: Hashcat – Password Cracking Teil 2
https://www.prosec-networks.com/blog/passwortmanager-im-unternehmen-einsetzen/
Bei der Befassung mit den Folgenden ISMS-Framework-Controls spielt die Schwachstelle und deren Behebung eine Rolle:
ISO 27001:
A. 9.4.3 Password Management System
BSI Grundschutz:
NET.1.1.A7
PSN-ID:
PS-TN-2020-0055
Penetration Testing erklärt von Hackern Das sollten IT-Profis und Verantwortliche wissen Penetration Testing, auch bekannt als „Pentesting“, ist ein elementarer
In einem kürzlich erschienenen Interview mit dem Online-Magazin Business Punk sprach unser Gründer und CEO Tim Schughart über den SPD-Hack
Hacking als Massengeschäft: In der aktuellen Ausgabe 4/2024 gibt unser CEO Tim Schughart der Rhein-Zeitung Wirtschaft Einblicke in das „Geschäftsmodell“ Cyberkriminalität. Er
Wir verwenden Cookies, und Google reCAPTCHA, das Google Fonts lädt und mit Google-Servern kommuniziert. Durch die weitere Nutzung unserer Website stimmen Sie der Verwendung von Cookies und unserer Datenschutzerklärung zu.