Bei PrintNightmare (CVE-2021-34527) handelt es sich um einen kritischen Zero-Day Windows-Bug mit dem Remote Code Execution möglich ist. Der Bug betrifft alle Windows-Geräte, einschließlich Endpoints und Server.
Zum 07. Juli 2021 wurden durch Microsoft mehrere Patches für OS Builds 19041.1083, 19042.1083 und 19043.1083, sowie eine wichtige Sicherheits-Guideline bereitgestellt. Betroffene Unternehmen sollten die Patches bei der ersten Gelegenheit einspielen
Sophos Schutzmaßnahmen
Beginnend ab 02. Juli 2021 hat SophosLabs IPS-Signaturen für Sophos Endpoint und Sophos Firewall Produkte veröffentlicht, die sich auf Remote Add Printer Driver Calls beziehen, wie sie in den verfügbaren Proof of Concepts beschrieben werden:
- Sophos XG Firewall und Sophos SG UTM: 57876 und 57877 (verfügbar seit 02.07.2021 und 03.07.2021)
- Sophos Intercept X und Sophos Endpoint Protection: 2305776 (verfügbar seit 06.07.2021)
Am 03.07.2021 wurde Static File Detection für die bereits bekannten Proof-of-Concept Executables:
- cpp Version: Exp/20211675-A
- c# Version: Exp/20211675-B
- PowerShell Version: Exp/20211675-C
- Python Version: Exp/20211675-D
Was Sie tun können
Betroffene Unternehmen sollten die verfügbaren Patches von Microsoft so frühzeitig wie möglich einspielen. Sofern dies nicht möglich ist, empfiehlt Sophos Ihnen folgendes:
Option 1:
Schalten Sie den Print Spooler aus, wo immer möglich und limitieren Sie den Zugriff auf Print Spooler Dienste so strikt wie möglich auf allen Maschinen auf denen das Deaktivieren nicht möglich ist.
Option 2:
Deaktivieren Sie eingehendes Remote Printing per Gruppenrichtlinie
Prüfen Sie ihre Anfälligkeit mit Sophos EDR und Sophos XDR
Kunden können Live Discover nutzen, um festzustellen, ob sie von der Sicherheitslücke betroffen sind und ob die Patches bereits eingespielt sind.
1. Wie Sie Geräte identifizieren, auf denen der Print Spooler läuft
Nutzen sie Live Discover, um die nachfolgende Anfrage durchzuführen, um festzustellen auf welchen Windows-Geräten der Print Spooler Dienst aktiv ist. Ist der Dienst aktiviert, ist der Computer potenziell anfällig für ungepatchte Sicherheitslücken, wie PrintNightmare.
SELECT display_name, status, start_type, user_account, CASE WHEN status = 'RUNNING' THEN ' Exposed to unpatched vulnerabilities inc. PrintNightmare' WHEN status = 'STOPPED' THEN ' NOT exposed to unpatched vulnerabilities inc. PrintNightmare' END AS SpoolerCheck, CASE WHEN start_type = 'AUTO_START' THEN 'Set Spooler to DISABLED or DEMAND_START' END AS ServiceCheck FROM services WHERE path = 'C:\Windows\System32\spoolsv.exe';
2. Suchen Sie Fehler beim Laden von Modulen
Nutzen Sie Live Discover, um die nachfolgende Anfrage durchzuführen, um Fehler beim Laden von Modulen zu finden. Die Ergebnisse müssen manuell von Ihrem Administrator gegengeprüft werden.
SELECT datetime, eventid, 'PrintService' AS Source, JSON_EXTRACT(data, '$.UserData.Context') AS context, JSON_EXTRACT(data, '$.UserData.ErrorCode') AS ErrorCode, JSON_EXTRACT(data, '$.UserData.LoadPluginFailed') AS LoadPluginFailed, JSON_EXTRACT(data, '$.UserData.PluginDllName') AS PluginDllName FROM sophos_windows_events WHERE source = 'Microsoft-Windows-PrintService/Admin' AND eventid = 808 AND (LOWER(ErrorCode) = '0x45a' OR LOWER(ErrorCode) = '0x7e');
3. Finden Sie heraus, ob der Patch ausgerollt wurde
Für die neueste Anfrage, nutzen Sie den Sophos Support Threat Hunting Community Post
Prüfung mittels Windows SC (Service Control) Befehl
Um zu sehen, ob der Spooler-Dienst auf Ihrem Computer läuft, können Sie einen Windows SC (Service Control) Befehl von der Konsole absetzen:
C:\Users\duck>sc query spooler SERVICE_NAME: spooler TYPE : 110 WIN32_OWN_PROCESS (interactive) STATE : 4 RUNNING (STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN) WIN32_EXIT_CODE : 0 (0x0) SERVICE_EXIT_CODE : 0 (0x0) CHECKPOINT : 0x0 WAIT_HINT : 0x0
Sie können verhindern, dass der Spooler von selbst startet, selbst nach einem Geräteneustart, indem Sie folgenden Befehl ausführen:
C:\Users\duck>sc config spooler start= disabled
Beachten Sie, dass kein Leerzeichen zwischen „start“ und „=“ stehen darf, aber zwischen „=“ und „disabled“ eines gesetzt werden muss. Sie müssen die Kommandokonsole (CMD.EXE) als Administrator starten, um Services zu konfigurieren.
Nach einem Neustart sollten Sie folgendes sehen:
C:\Users\duck>>sc query spooler SERVICE_NAME: spooler TYPE : 110 WIN32_OWN_PROCESS (interactive) STATE : 1 STOPPED WIN32_EXIT_CODE : 1077 (0x435) SERVICE_EXIT_CODE : 0 (0x0) CHECKPOINT : 0x0 WAIT_HINT : 0x0