skip to Main Content

Aus dem Tagebuch eines Red Teams

Bitte, bitte NICHT updaten!

1500 Zeilen Exploit-Code vor uns. Und die Uhr tickt. Es fühlt sich an wie ein Wettlauf gegen die Zeit und das Patch-Management des Kunden.

Im Rahmen unseres Red-Team-Projekts haben wir bereits Zugriff auf ein System. Nun ist ein wünschenswerter nächster Schritt, auf diesem Windows-System Admin-Berechtigungen zu erlangen, um beispielsweise Passwort-Hashes von anderen Domain-Benutzern, die auf demselben System angemeldet sind, auszulesen. Diese würden uns dann eventuell Zugriffsmöglichkeiten für weitere Systeme eröffnen und – wer weiß – vielleicht bereits zur Erfüllung unserer Ziele im Projekt führen.

Eine Möglichkeit für eine solche sogenannten „Privilege Escalation“ ist denkbar nah:
Vor einigen Tagen hatte Microsoft ein neues Update veröffentlicht, mit dem eine Schwachstelle mit dem Titel „Win32k Elevation of Privilege Vulnerability“ geschlossen wurde (CVE-2021-40449). Alle Vorbedingungen zur Ausnutzung der Schwachstelle sind auf unserem System erfüllt und es gibt sogar öffentlich verfügbaren Exploit-Code, d. h. Code, mit dem die Schwachstelle ausgenutzt werden kann. Solcher Code ist nicht immer öffentlich verfügbar, sodass wir hier unsere Chance wittern und sich Optimismus gepaart mit Nervenkitzel in uns ausbreitet.
Denn: Auch wenn Exploit-Code öffentlich verfügbar ist, so muss dieser zum einen erst einmal ausführlich auf seine Legitimität geprüft werden und zum anderen auf unsere speziellen Umstände und Bedürfnisse angepasst werden. Dem entgegen steht die Zeit: Wie lange haben wir, bis die Administratoren beim Kunden Updates einspielen und unsere Pläne zunichtemachen?

Mit vereinten Kräften teilen wir die Themen auf, die zur Vorbereitung des Exploits erledigt werden müssen – dies fängt bei dem Aufsetzen einer möglichst Ziel-System nahen Testumgebung an, in der wir den Code testen und analysieren können, und hört mit der Fragestellung „Wie transferieren wir den Code am Virenscanner vorbei auf das System?“ auf. In der vorliegenden Situation müssen wir etwas tiefer in Trickkiste greifen, da wir ausschließlich Dateien im Bild-Format auf das System transferieren können.

Während wir eine nach der anderen Herausforderung angehen, tickt die Uhr weiter. Wir sind in enger Abstimmung mit dem White-Team beim Kunden. So nennt sich der enge Kreis derjenigen, die über die Durchführung des Red-Team-Projekts auf Kundenseite Bescheid wissen. Aspekte wie „Wie hoch ist das Risiko, dass das System unerwarteterweise beim Ausführen des Codes abstürzt und somit andere Benutzer in ihrer Arbeit beeinträchtigt werden?“ werden diskutiert und gemeinsam ein Zeitpunkt festgelegt, wann wir den Exploit-Code ausführen werden.

Die Vorbereitungen laufen über zwei volle Tage auf Hochtouren. Wird sich der Aufwand auszahlen? Wird der Code problemlos durchlaufen und uns im Projekt weiter voranbringen?

Dann ist Zeitpunkt X gekommen, die innerliche Anspannung steigt. Alles ist im Detail vorbereitet und ein Befehl in einer schwarzen Kommandozeile wartet nur noch auf die Bestätigung durch die „Enter“-Taste. Und schließlich, voilà, der Exploit-Code läuft wie erhofft! Mit den ergatterten Admin-Berechtigungen lesen wir den sogenannten lsass-Prozess aus, in dem Windows die Passwort-Hashes von am selben System angemeldeten Benutzern speichert, legen diese in einer Datei ab und transferieren die Datei zurück auf unsere Pentest-Laptops. Tatsächlich befindet sich, wie erhofft, auch der Passwort-Hash eines Domain-Admin-Benutzers unter den erbeuteten Hashes! Mit diesem im Gepäck geht die Reise dann weiter, denn hierüber haben wir nun die privilegiertesten Berechtigungen, die man sich in einer Active-Directory-Umgebung wünschen kann.

Red Team der it.sec

Back To Top