Ran Harel

Update 6. Juli 2021: Microsoft hat einen Patch für CVE 2021-34527 veröffentlicht, der hier verfügbar ist.

Eine weitere Woche, eine weitere kritische Sicherheitslücke. Die neueste kritische Sicherheitslücke trägt den Namen "PrintNightmare", eine Anspielung auf zwei Sicherheitslücken im Windows Print Spooler-Dienst - CVE 2021-1675 und CVE 2021-34527, die zwischen Juni und Juli 2021 veröffentlicht wurden.

CVE 2021-1675 ist eine gepatchte Sicherheitslücke, die Remotecodeausführung und Privilegienerweiterung auf Servern und Computern ermöglicht, auf denen der Print Spooler läuft. CVE 2021-34527 ermöglicht ebenfalls Remotecodeausführung und Privilegienerweiterung auf demselben Dienst mit etwas anderen Mitteln. (Update vom 6. Juli 2021: Microsoft hat einen Patch für CVE-2021-34527 veröffentlicht.) Zum jetzigen Zeitpunkt ist der genaue Zusammenhang zwischen den beiden Sicherheitslücken unklar und ob der Patch unvollständig war oder ob eine andere Angriffsmethode entdeckt wurde.

Bevor ich weitermache, lassen Sie uns mit dem Fazit beginnen - falls Sie es nicht schon getan haben, Deaktivieren Sie jeden Windows Print Spooler-Dienst, der auf einem Domänencontroller läuft. (Semperis' Directory Services Protector (DSP) enthält Indikatoren, die kontinuierlich nach Angriffen und Anzeichen für eine Gefährdung suchen, einschließlich aktivierter Druckspooler auf Domänencontrollern.)

Semperis Directory Services Protector scannt AD kontinuierlich und warnt bei Anzeichen für eine Gefährdung und Kompromittierung, einschließlich eines Indikators für die Suche nach Domänencontrollern, auf denen der aktive Druckspooler-Dienst läuft.

Der Druckspooler ist ein Windows-Dienst, der standardmäßig auf allen Windows-Clients und -Servern aktiviert ist. Der Dienst verwaltet Druckaufträge, indem er Druckertreiber lädt, zu druckende Dateien empfängt, sie in eine Warteschlange stellt, sie plant und so weiter.

Der Print Spooler-Dienst wird benötigt, wenn ein Computer physisch mit einem Drucker verbunden ist, der Druckdienste für weitere Computer im Netzwerk bereitstellt. Es ist zwar möglich, Treiber und Software von Drittanbietern zu verwenden (z.B. die von den Druckerherstellern angebotenen), aber viele Unternehmen verlassen sich auf den Standarddienst Print Spooler.

Auf Domänencontrollern werden Druckspooler hauptsächlich für das Pruning von Druckernverwendet , d.h. zum Entfernen vonDruckern, die in Active Directory veröffentlicht wurden und im Netzwerk nicht mehr verfügbar sind. Das Pruning von Druckern ist vor allem in größeren Umgebungen mit vielen Druckern wichtig, da es die für Domänenbenutzer verfügbare Druckerliste "bereinigt". Damit dieser Ansatz funktioniert, muss jedoch eine entsprechende Gruppenrichtlinie vorhanden sein.

Aus der Sicherheitsperspektive sind der Windows Print Spooler und Drucker im Allgemeinen schon seit vielen Jahren ein lohnendes Ziel für Angreifer. Der Stuxnet-Wurm, der 2010 gegen iranische Atomanlagen eingesetzt wurde, nutzte eine Schwachstelle in diesem Dienst aus, um Privilegien zu erweitern und Malware über das Netzwerk zu verbreiten. Dieselbe Schwachstelle im Print Spooler tauchte 2020 wieder auf, als Forscher neue Möglichkeiten entdeckten, sie auszunutzen. In Kombination mit der Tatsache, dass Drucker bekanntermaßen leicht zu hacken sind, ist es vielleicht an der Zeit, dass wir wirklich papierlos werden?

PrintNightmare Zero-Day Fehler

Die Schwachstelle im Print Spooler vom Juni 2021 begann mit Microsofts Patch Tuesday vom Juni 2021, der einen Patch für CVE 2021-1675 enthielt. Microsoft stufte diese Schwachstelle als Schwachstelle zur Privilegienerweiterung ein, deren Ausnutzung damals als "weniger wahrscheinlich" eingestuft wurde - mit einem CVSS-Wert von 6.8 (mittleres Risiko). Microsoft aktualisierte diese CVE am 21. Juni, um Remote Code Execution einzubeziehen und erhöhte den CVSS-Score auf 7.8 (hohes Risiko). Ein paar Tage später tauchte PoC-Exploit-Code auf GitHub auf. Der Code wurde schnell offline genommen, wurde aber bereits mehrfach geforkt.

Am 30. Juni stellte sich heraus, dass der Patch nicht ausreichte und die vollständig gepatchten Systeme immer noch anfällig für die Ausführung von Remotecode und die Ausweitung der Rechte auf SYSTEM waren. Der ursprüngliche Exploit-Code wurde modifiziert, so dass der Patch nur noch bedingt wirksam war.

Am 1. Juli schuf Microsoft eine neue Sicherheitslücke, CVE 2021-34527. (6. Juli 2021 - Microsoft veröffentlichte einen Patch.)

Druck-Spooler Aufschlüsselung der Schwachstellen

Die Sicherheitslücke bei der entfernten Codeausführung im Print Spooler nutzt den Funktionsaufruf RpcAddPrinterDriver im Print Spooler-Dienst aus, der es Clients ermöglicht, beliebige DLL-Dateien als Druckertreiber hinzuzufügen und sie als SYSTEM zu laden (den Kontext des Spooler-Dienstes).

Die Funktion wurde entwickelt, um Benutzern die Aktualisierung von Druckern aus der Ferne zu ermöglichen - zum Beispiel dem IT-Mitarbeiter, der aus der Ferne Ihren neuen Bürodrucker installiert. Ein logischer Fehler in dieser Funktion ermöglicht es jedoch jedem Benutzer, seine eigene unsignierte DLL in den Prozess einzuschleusen und so die Authentifizierung oder Validierung der Datei zu umgehen.

PrintNightmare entschärfen

Update 7. Juli 2021 - Microsoft hat einen Patch für CVE 2021-34527 veröffentlicht. Es wird weiterhin empfohlen, den Print Spooler zu deaktivieren, wenn er nicht benötigt wird. Sie können den Print Spooler-Dienst für alle Ihre DCs (oder jeden anderen Computer) deaktivieren, indem Sie entweder die Gruppenrichtlinien-Einstellung unter ComputerkonfigurationWindows-EinstellungenSicherheitseinstellungenSystemdienste oder, noch besser, die GP-Einstellungen unter ComputerkonfigurationEinstellungenSystemsteuerungEinstellungenDienste verwenden. Eine zusätzliche, inoffizielle Abhilfe besteht darin, den Zugriff auf den Treiberordner zu beschränken, aus dem der Dienst geladen wird. Dies müsste auf jedem Server durchgeführt werden und wurde meines Wissens noch nicht vollständig getestet, die Verwendung erfolgt also auf eigene Gefahr.

Schutz von Domänencontrollern

Domänencontroller sollten niemals als Druckserver verwendet werden. Der einzige legitime Grund, den ich kenne, um Print Spooler auf einem DC laufen zu lassen, ist das oben erwähnte Pruning von Druckern. Zusätzlich zu den zahlreichen Schwachstellen in Windows Print Spooler gibt es einen Angriffsvektor gegen diesen Dienst, der als "Drucker-Bug" bekannt ist und es einem Angreifer, der eine Ressource mit uneingeschränkter Kerberos-Delegation kompromittieren kann, ermöglicht, auch den DC mit SYSTEM-Rechten zu kompromittieren. Eine gute Erklärung für diesen Angriff finden Sie hier.

Kontinuierliche Überwachung auf Sicherheitslücken wie PrintNightmare

Wir sehen wöchentlich Schwachstellen in der häufig genutzten IT-Infrastruktur. Die kurzen Zykluszeiten von der Aufdeckung bis zur Bewaffnung erfordern einen schnellen Ansatz zur Schadensbegrenzung, der eine kontinuierliche Überwachung der Umgebung in Kombination mit der Festlegung von Prioritäten und der Bereitstellung von Informationen zur Abhilfe beinhaltet.

Das Produkt von Semperis Directory Services Protector (DSP) enthält Indikatoren, die kontinuierlich nach Schwachstellen und Anzeichen für eine Gefährdung in hybriden Identitätsumgebungen suchen (einschließlich der Erkennung von aktivierten Druckspoolern auf Domänencontrollern) und Prioritäten, Metriken und Anleitungen für Abhilfemaßnahmen liefern.

Weitere Ressourcen

Möchten Sie mehr darüber erfahren, wie Sie PrintNightmare, PetitPotam und anderen neuen Angriffen auf Active Directory begegnen können? Schalten Sie ein zu Verstärken Sie Ihre Active Directory-Verteidigung: Lessons Learned from Recent Attacks Like PrintNightmareein kostenloses On-Demand-Web-Seminar, das von Sean Deuby, Semperis Director of Services, geleitet wird.