Als Penetrationtester versuche ich, in Unternehmen in deren Auftrag einzudringen. Dabei verwende ich dieselben Werkzeuge und Methoden die auch Hacker einsetzen. In diesem Artikel beschreibe ich kurz, aus welchen Gründen ich beim Eindringen am häufigsten Erfolg hatte, und wie man sich besser Schützen kann.
Platz 1 belegt veraltete Software: Schlicht und einfach nicht auf dem aktuellen Stand befindliche Software macht es oft sehr einfach in Systeme einzudringen. Einer der ersten Schritte, die ich bei einem Penetration Test durchführe, ist die Identifikation der verwendeten Software-Komponenten und der Abgleich mit der CVE-Datenbank. In der Common Vulnerability Enumeration Datenbank ( https://cve.mitre.org) werden bekannte Schwachstellen von Softwarekomponenten gespeichert. In dieser Datenbank suche ich gezielt nach den gefundenen Softwarekomponenten - gibt es einen öffentlich verfügbaren Exploit, ist die Sache bereits fast gelaufen. Oft finde ich Schwachstellen nicht in den "Haupt-Systemen", sondern in den im nächsten Punkt behandelten "vergessenen Systemen".
Durch regelmäßige Updates, am besten in Form eines Update-Prozesses, kann diesem Problem entgegengewirkt werden.
Um einen korrekten Update-Prozess einzuführen, müssen Sie zunächst wissen, welche IT-Komponenten überhaupt in Ihrem Unternehmen verwendet werden. Legen Sie nach einer kurzen Risikobeurteilung einen Update-Plan fest: Systeme mit höherem Risiko (z.B. externe Systeme oder solche mit Kontakt zu sensiblen Kundendaten) sollten häufiger aktualisiert werden. Automatisierte und zentralisierte Verwaltungen sind eine große Hilfe, müssen aber korrekt konfiguriert werden. Vergessen Sie nicht auf Software, die sich außerhalb von zentralisierten Management Einrichtungen befindet (z.B. zusätzlich Software auf Linux-Servern, die nicht durch die Paketverwaltung aktuell gehalten wird).
Auf Platz 2 haben es die vergessenen Systeme geschafft: Damit meine ich Systeme und Dateien die überhaupt nicht da sein dürften. So konnte ich in ein großes Unternehmen erfolgreich eindringen, weil vergessen wurde, eine Web-GUI zur Datenbankbearbeitung zu entfernen. Dieses Tool war nur für die Zeit der Website-Erstellung gedacht, wurde aber mit in die Produktion übernommen. Ich fand dieses Tool mit einem Directory-Bruteforcer und konnte die Datenbank des CMS Systems herunterladen. In der Datenbank befanden sich die Passwörter in verschlüsselter Form. Mit einem System zum Brechen solcher Hashes konnte ich das sehr schwache Administrator-Passwort in wenigen Minuten im Klartext herausfinden.
Vergessene Systeme sind deshalb besonders problematisch, da oft keine Aufzeichnung über deren Existenz vorhanden sind. So wird vergessen, Sie zu entfernen, auf dem aktuellen Stand zu halten oder sie abzusichern. Oft handelt es sich dabei um Werkzeuge, die nur zur Entwicklung oder Migration benötigt wurden und dann nicht mehr entfernt wurden.
Ebenso häufig finde ich Systeme oder Komponenten, die das Unternehmen nur "kurz testen" wollte, die nach dem Test aber vergessen wurden. So konnte ich einen alten SIP Server ausfindig machen, der so schlecht konfiguriert war, dass ich ihn ohne spezielles Werkzeug dazu bringen konnte, mich in das IT-System des Unternehmens zu lassen.
Erst auf Platz 3 haben es die schwachen Passwörter geschafft: Passwörter wie "12345" oder "website2016" sind auch im Jahr 2017 immer noch in Mode. Der Grund warum ich sie erst auf Platz 3 reihe ist, dass ich zunächst eine Stelle zum Andocken benötige, um schwache Passwörter auszunutzen. Damit meine ich ein extern - oder intern, je nachdem von wo aus ich den Test starte - verfügbares Login-Interface oder einen Service, der es mir erlaubt Passwörter durchzutesten. Gut für mich als Penetration Tester oder Hacker (und damit schlecht für die Sicherheit) sind dabei:
Kommen wir zum Schutz vor Brute-Force Angriffen: Die verfügbaren Login-Mechnismen schützen Ihre Benutzer oft nicht vor Brute-Forcing. So kann ich mit den richtigen Werkzeugen abertausende Kombinationen pro Sekunde durchprobieren und die Chance, dass ich es schaffe eine gültige Benutzername + Passwort Kombination zu finden ist sehr hoch.
Für mich als Penetration Tester sind System-Logins grundsätzlich weitaus interessanter als Kunden-Logins, da ich mit einem Systemzugang meistens gleich die Kundendaten abgreifen kann.
Platz 4 - eigentlich Ex Aequo mit Platz 3 - ist die fehlende Mitarbeiter Sensibilität ("Awareness"). Beim Social Engineering versuche ich ohne direkte technische Angriffe Mitarbeiter dazu zu bewegen, mir Zugang oder Zugriff zu sensitiven Daten oder Unternehmensräumlichkeiten zu geben.
Beispiele für sehr erfolgreiche Methoden:
Sehr oft finde ich selbst entwickelte Software, die dazu gedacht ist, eine bestimmte Anforderung zu erfüllen, die zum Entwicklungszeitpunkt nicht von der Standard-Software abgedeckt wurde. Diese Software besitzt oft nicht einmal essentielle Schutzfunktionen und lässt sich mit den entsprechenden Werkzeugen innerhalb weniger Minuten knacken. Auch werden eigene Software-Lösungen oft nicht regelmäßig geprüft und gewartet. So bleiben Schwachstellen unentdeckt oder werden auch bei ihrer Entdeckung nicht behoben. Temporäre Lösungen haben leider die Eigenschaft sehr oft nicht temporär zu bleiben und dann die gesamte Unternehmens-IT zu gefährden.
Ein weiterer Grund für Schwachstellen ist schlecht konfigurierte Software. Viele Software Komponenten kommen standardmäßig mit einer suboptimalen Sicherheitskonfiguration, die Angreifern Tür und Tor öffnet oder es zumindest leichter macht, Informationen zu erhalten.
Fast immer wenn ich erfolgreich in ein System eindringe, handelt es sich um ein Zusammenspiel der hier genannten Punkte. Bevor man daran denkt, teure zusätzliche Sicherheitssoftware anzuschaffen, müssen die Basis-Punkte dieser Liste erfüllt werden. Spezielle Security-Software kann einen enormen Gewinn darstellen - ist aber nahezu nutzlos wenn die hier genannten Punkte nicht bearbeitet wurden. Wenn Sie die hier genannten Ratschläge befolgen, haben Sie mit einigen einfachen Maßnahmen bereits einen enormen Sicherheitsgewinn. Um Ihre IT hinsichtlich Schwachstellen professionell untersuchen zu lassen, kontaktieren Sie uns einfach: Kontaktmöglichkeiten