Beenden des Spooler-Dienstes auf allen Windows-Servern

Durch den kürzlich bekannt gewordenen "PrintNightmare"-Exploit bei Microsoft Windows-Betriebssystemen ist es möglich, über den Spooler-Dienst Schadcode zu injizieren und diesen mit Systemrechten ausführen zu lassen. Um dies zu verhindern, sollte der Spooler-Dienst zumindest auf Servern beendet und deaktiviert werden, die keine Druckaufträge ausführen. Für alle Printserver kann alternativ der Zugriff auf ACLs eingeschränkt werden. Links dazu finden sich am Ende dieses Artikels.
Zudem hat Microsoft am 07.07.2021 ein Out-Of-Band Update veröffentlicht, welches die Sicherheitslücke schließen soll. Alle Informationen dazu finden Sie hier.

Mit ConnectWise Automate gibt es mehrere Optionen, wie Sie den Dienst auf schnellstem Wege beenden können.
Das effizienteste Vorgehen ist die Deaktivierung und das Beenden über die vorgefertigten Dataviews. Diese finden Sie im Windows Control Center unter Automation → Dataviews. Im Ordner "Services" befindet sich die Dataview "Services List", mit der Sie eine vollständige Auflistung aller Dienste Ihrer Agents erhalten.


Diese Dataview können Sie nun entsprechend auf den Spooler-Dienst durchsuchen und einen Filter für Windows-Server hinterlegen. Führen Sie dafür zuerst einen Rechtsklick auf die Überschriften-Spalte aus und wählen Sie über Field Chooser → Operating System durch Klicken aus.


Nun können Sie in der Filterleiste über "Agent Operating System" nach Server-Systemen filtern, indem Sie "%Server%" eintippen und nach dem Spooler-Dienst suchen, indem Sie "Spooler" in das Suchfeld eintippen und anschließend mit "Search" betätigen.

Sind die Systeme nun auf Server-Systeme gefiltert, können Sie mit der Shift- oder der STRG-Taste alle gewünschten Systeme auswählen und den Spooler-Dienst über einen Rechtsklick → Services → Stop Service sowie Services → Disable Service beenden und deaktivieren.

Um sicherzugehen, dass der Dienst tatsächlich überall beendet ist, können Sie anschließend noch einen Remote Monitor auf allen Server-Systemen konfigurieren. Dies lässt sich am besten über die Gruppe Agent Types → Windows Servers bewerkstelligen. Hierfür öffnen Sie die Gruppe mit einem Doppelklick auf den Gruppennamen oder per Rechtsklick → Open. Öffnen Sie nun das Menü Computers → Remote Monitors der Gruppenkonfiguration.


Über "Add" können Sie nun einen neuen Monitor erstellen. Um einen Dienst-Monitor zu konfigurieren, wählen Sie im Monitor Wizard "Monitor Services and Processes" aus.


Wählen Sie im nächsten Fenster aus dem Dropdown-Menü nun "Services" und unter "Service Name"  den Spooler-Dienst. Zusätzlich muss der Haken bei "Alert When Not Running" entfernt werden.


Wählen Sie bei "Frequency" eine für Sie passende Wiederholungsrate für den Monitor. Als Alert-Template sollten Sie nun ein Template hinterlegen, welches Sie entsprechend über E-Mail, Alert oder Ticket benachrichtigt. Wählen Sie den Alert Style "Once".

Optional können ein Skript erstellen, das durch das Alert-Template ausgeführt wird und den Dienst automatisch beendet und deaktiviert. Ein solches Skript kann wie folgt aussehen:


Die Variable @fieldname@ wird durch den Monitor befüllt, wodurch dieses Skript nur aus einem Alert Template heraus genutzt werden kann. Für manuelle Anwendung muss statt @fieldname@ der tatsächliche Dienstname eingetragen werden.

Erstellen Sie in den folgenden Schritten noch eine Alert Message und weisen Sie dem Monitor einen Namen zu. Anschließend wird dieser auf der Gruppe erstellt und auf allen Mitgliedern der Gruppe ausgerollt.

Sollte ein Patch mit einem Fix veröffentlicht werden, können Sie diesen über den Patch Manager schnell auf allen Geräten ausrollen. Öffnen Sie dafür den Patch Manager und wechseln Sie in das Patches-Menü.
Suchen Sie dann mithilfe der Suchleiste (Oben rechts) nach der entsprechenden KB-Nummer des Patches und wählen Sie diesen an. Im unteren Fenster "Device Deployments" können Sie nun alle Agents auswählen, auf welchen Sie den Patch installieren wollen und können diesen dann über die "Patch Install"-Funktion ausrollen.  


Durch Einschränkung der ACLs im Verzeichnis C:\Windows\System32\spool\drivers und seinen Unterverzeichnissen kann verhindert werden, dass bösartige DLLs vom Druckspooler-Dienst ausgeführt werden. Dieser Artikel stellt hierfür ein Powershell-Script bereit, das via Automate-Script auf allen Servern mit der Rolle "Windows Print Server" ausgeführt werden kann.