Jump to content

Printspooler - Neue Sicherheitslücke


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Wenn ich dieses Gepfriemel mit dem Registry Kram sehe, frag ich mich, ob bei MS das Wissen von GPP/GPO usw. inzwischen verloren gegangen ist. "Früher"™ hätten sie entweder gleich ein adm/admx mitgeliefert oder zumindest bereitgestellt. :/

 

; ADM Template Creation/Modifying Date: 07.07.2021 09:42:56
; ADM Template Author: NorbertFe
; ADM Template created by gpaddit
; MCSEBoard.de

Class Machine 
	CATEGORY "Drucker" 

		POLICY "CVE-2021-34527 'PrintNightmare'" 
			#IF VERSION  >=  4
				SUPPORTED !!CVE-2021-34527 
			#ENDIF

			EXPLAIN !!Descr_CVE-2021-34527 
			KEYNAME "Software\Policies\Microsoft\Windows NT\Printers\PointAndPrint" 

			PART "Restrict Driver Installation to Administrators" Checkbox 
				VALUENAME "RestrictDriverInstallationToAdministrators" 
				VALUEON NUMERIC 1 

				VALUEOFF NUMERIC 0 

			END PART 

		END POLICY ;CVE-2021-34527 'PrintNightmare' 

	END CATEGORY ;Drucker 


[STRINGS]

CVE-2021-34527="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-34527"
Descr_CVE-2021-34527="https://support.microsoft.com/de-de/topic/kb5005010-restricting-installation-of-new-printer-drivers-after-applying-the-july-6-2021-updates-31b91c02-05bc-4ada-a7ea-183b129578a7\n\nSecurity updates released on and after July 6, 2021 contain protections for a remote code execution exploit in the Windows Print Spooler service known as 'PrintNightmare', documented in CVE-2021-34527. After installing these and later Windows updates, non-administrators are only allowed to install signed print drivers to a print server. By default, administrators can install both signed and unsigned printer drivers to a print server. Signed drivers are trusted by the installed root certificates in the system's Trusted Root Certification Authorities.\n\nWe recommend that you urgently install the July 2021 Out-of-band updates on all supported Windows client and server operating systems, starting with devices that currently host the print spooler service. In addition, optionally configure the RestrictDriverInstallationToAdministrators registry value to prevent non-administrators from installing printer drivers on a print server.\n\nNote:  After installing the July 2021 Out-of-band update, all users are either administrators or non-administrators, delegates will no longer be honored.\n\nPrior to installing the July 6, 2021, and newer Windows Updates containing protections for CVE-2021-34527, the printer operators' security group could install both signed and unsigned printer drivers on a printer server. After installing such updates, delegated admin groups like printer operators can only install signed printer drivers. Administrator credentials will be required to install unsigned printer drivers on a printer server going forward.\n\n\nWhy clients are allowed to install printer drivers from CVE-2021-34527 patched printer servers\nIn a scenario where a client is connecting to a Print server to download print drivers (Shared network Printer scenario), the changes we made as part of our fix do not come into play on the client.\n\nFor an unsigned driver, the user will see a warning and a request to elevate if the user is not admin.\n\nFor a signed driver, the driver will install successfully irrespective of admin or not.\n\nThis means a signed driver will be successfully installed on the client machine without honoring RestrictDriverInstallationToAdministrators registry key.\n\nExplanation\n\nThis behavior is by design. The attack vector and protections in CVE-2021-34527 reside in the code path that installs a printer driver to a Server. The workflow used to install a printer driver from a trusted print server on a client computer uses a different path. In summary, protections in CVE-2021-34527 including the RestrictDriverInstallationToAdministrators registry key do not impact this scenario."

 

Ich stell mich grad an: Wo genau is der Download für dieses OOB Update zu finden? Per WSUS kommts noch nicht und importieren kann man es auch noch nicht. Auf der obigen Seite gibts auch keinen Downloadlink und bei weiterführenden Seiten sind nur die alten Downloads verlinkt. :/ Hílfe :)

bearbeitet von NorbertFe
  • Danke 2
  • Traurig 1
Link zu diesem Kommentar
vor 42 Minuten schrieb NorbertFe:

Ich stell mich grad an: Wo genau is der Download für dieses OOB Update zu finden?

Auf der verlinkten Seite (https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-34527) unter "Security Updates". Dort von "CVSS" zu "Updates" umschalten. Das Release Date ist überall auf dem 1. Juli, aber die verlinkten Updates sind aktuell.

 

Hier die Links für 2019:

https://support.microsoft.com/de-de/topic/july-6-2021-kb5004947-os-build-17763-2029-out-of-band-71994811-ff08-4abe-8986-8bd3a4201c5d

https://www.catalog.update.microsoft.com/Search.aspx?q=KB5004947

Link zu diesem Kommentar

Ich hatte Langeweile (und wollte was testen). Vielleicht kann es ja jemand brauchen. :)

 

# Wird keine OrganizationalUnit angegeben, wird nur das GPO erstellt und nicht gelinkt
# ADMX / ADML muss bei NorbertFe ausgeliehen werden aus 
# https://www.mcseboard.de/topic/220286-printspooler-neue-sicherheitsl%C3%BCcke/?do=findComment&comment=1421870
# Die ADMX / ADML müssen im Scriptpfad liegen

param(
    [parameter(Mandatory=$true)]
    [string]
    [ValidateSet("Domain", "AllDomainsInForest")]
    $Scope,

    [parameter(Mandatory=$true)]
    [string]
    $GPOName,

    [parameter(Mandatory=$false)]
    [string[]]
    $OrganizationalUnit
)

if([string]::IsNullOrEmpty($PSScriptRoot)){
    $ScriptPath = Split-Path -Path $psISE.CurrentFile.FullPath
} else{
    $ScriptPath = $PSScriptRoot
}

if($Scope -eq "Domain"){
    $Domains = Get-ADDomain -Current LocalComputer
} else{
    $ADForest = Get-ADForest -Current LocalComputer
    $Domains = $ADForest.Domains
}

foreach($Domain in $Domains){
    Write-Output $("`tPrüfe Domain `"{0}`"..." -f $Domain)
    $curDomain = Get-ADDomain -Identity $Domain
    $curPolDefPath = -join ("\\", $curDomain.DNSRoot, "\SYSVOL\", $curDomain.DNSRoot, "\Policies\PolicyDefinitions")
    $locPolDefPath = Join-Path -Path $env:windir -ChildPath "PolicyDefinitions"
    if(Test-Path -Path $curPolDefPath -PathType Container){
        # Central Store
        Write-Output "`t`tPolicyDefinitions im Central Store gefunden -> Kopiere ADMX/ADML..."
        Copy-Item -Path (Join-Path -Path $ScriptPath -ChildPath "PrintNightmare.admx") `
            -Destination $curPolDefPath `
            -Force
        if(Test-Path -Path (Join-Path -Path $curPolDefPath -ChildPath "en-us") -PathType Container){
            Copy-Item -Path (Join-Path -Path $ScriptPath -ChildPath "PrintNightmare.adml") `
                -Destination (Join-Path -Path $curPolDefPath -ChildPath "en-us") `
                -Force
        }
        if(Test-Path -Path (Join-Path -Path $curPolDefPath -ChildPath "de-de") -PathType Container){
            Copy-Item -Path (Join-Path -Path $ScriptPath -ChildPath "PrintNightmare.adml") `
                -Destination (Join-Path -Path $curPolDefPath -ChildPath "de-de") `
                -Force
        }
    } else{
        # Local Store
        Write-Output "`t`tPolicyDefinitions im Local Store gefunden... -> Kopiere ADMX/ADML..."
        Copy-Item -Path (Join-Path -Path $ScriptPath -ChildPath "PrintNightmare.admx") `
            -Destination $locPolDefPath `
            -Force
        if(Test-Path -Path (Join-Path -Path $locPolDefPath -ChildPath "en-us") -PathType Container){
            Copy-Item -Path (Join-Path -Path $ScriptPath -ChildPath "PrintNightmare.adml") `
                -Destination (Join-Path -Path $locPolDefPath -ChildPath "en-us") `
                -Force
        }
        if(Test-Path -Path (Join-Path -Path $locPolDefPath -ChildPath "de-de") -PathType Container){
            Copy-Item -Path (Join-Path -Path $ScriptPath -ChildPath "PrintNightmare.adml") `
                -Destination (Join-Path -Path $locPolDefPath -ChildPath "de-de") `
                -Force
        }
    }
    Write-Output $("`t`tSuche Gruppenrichtlinien Objekt `"{0}`"..." -f $GPOName)
    $curGPO = Get-GPO -Domain $curDomain.DNSRoot `
        -All | Where-Object { $_.DisplayName -eq $GPOName }
    if($null -eq $curGPO){
        Write-Output $("`t`tGruppenrichtlinien Objekt `"{0}`" nicht gefunden. Erstelle neues GPO..." -f $GPOName)
        $curGPO = New-GPO -Name $GPOName `
            -Domain $curDomain.DNSRoot `
            -Comment "Fix PrintNightmare"

        if($null -ne $OrganizationalUnit){
            foreach($OU in $OrganizationalUnit){
                Get-ADOrganizationalUnit -SearchBase $curDomain.DistinguishedName `
                    -Filter 'Name -eq $OU' |
                        ForEach-Object {
                            Write-Output $("`t`t`tVerlinke `"{0}`" an `"{1}`"" -f $GPOName, $_.DistinguishedName)
                            New-GPLink -Guid $curGPO.Id `
                                -Domain $curDomain.DNSRoot `
                                -Target $_.DistinguishedName |
                                    Out-Null
                        }
            }
        } else{
            Write-Output $("`t`tKeine Organisationseinheit angegeben! Gruppenrichtlinienobjekt `"{0}`" muss händisch verknüpft werden..." -f $GPOName)
        }
    } else{
        Write-Output $("`t`tGruppenrichtlinien Objekt `"{0}`" gefunden..." -f $GPOName)
    }

    Write-Output $("`t`tSetze `"RestrictDriverInstallationToAdministrators`" in `"{0}`" auf `"1`"..." -f $GPOName)
    Set-GPRegistryValue -Guid $curGPO.Id `
        -Key "HKLM\Software\Policies\Microsoft\Windows NT\Printers\PointAndPrint" `
        -ValueName "RestrictDriverInstallationToAdministrators" `
        -Type DWord `
        -Value 1 |
            Out-Null
    Write-Output $("`tDomain `"{0}`" abgeschlossen..." -f $Domain)
}

 

bearbeitet von testperson
  • Like 1
  • Danke 4
Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...