WinRM Onversleuteld Verkeer Geblokkeerd

πŸ’Ό Management Samenvatting

WinRM onversleuteld verkeer moet worden geblokkeerd om te voorkomen dat remote management communicatie in plaintext over het netwerk gaat, waardoor credentials en commands kunnen worden onderschept via man-in-the-middle attacks.

Aanbeveling
IMPLEMENT
Risico zonder
High
Risk Score
8/10
Implementatie
3u (tech: 2u)
Van toepassing op:
βœ“ Windows 10
βœ“ Windows 11
βœ“ Windows Server

WINRM versleuteling CRITICAL: WinRM kan opereren over HTTP (port 5985, onversleuteld) OF HTTPS (port 5986, versleuteld via TLS). ZONDER versleuteling: credentials verzonden in plaintext (of weak encoding), PowerShell commands zichtbaar in netwerkverkeer, Remote sessie data onderschepbaar, Man-in-the-middle attacks mogelijk. ATTACK SCENARIO: Admin gebruikt WinRM over HTTP β†’ Netwerk sniffer captures traffic β†’ credentials stolen β†’ Lateral movement. MODERN REQUIREMENT: Alle remote management MOET versleuteld zijn (HTTPS/TLS), HTTP-based WinRM is legacy en onveilig.

PowerShell Modules Vereist
Primary API: Intune / groep beleid
Connection: Registry
Required Modules:

Implementatie

Blokkeer onversleuteld WinRM traffic: HKLM:\SOFTWARE\beleidsregels\Microsoft\Windows\WinRM\Client\AllowUnencryptedTraffic is 0. EFFECT: WinRM client accepts alleen HTTPS connections (port 5986), HTTP WinRM connections (port 5985) worden geweigerd, Forceert versleuteling voor alle remote management.

Vereisten

  1. Windows 10/11 of Server
  2. WinRM servers moeten HTTPS geconfigureerd hebben (port 5986)
  3. Valid SSL/TLS certificaatn op WinRM servers

Implementatie

Gebruik PowerShell-script allow-unencrypted-traffic-is-set-to-disabled.ps1 (functie Invoke-Remediation) – Blokkeer onversleuteld WinRM verkeer.

Intune: WinRM Client β†’ AllowUnencryptedTraffic is Disabled (0)

monitoring

Gebruik PowerShell-script allow-unencrypted-traffic-is-set-to-disabled.ps1 (functie Invoke-Monitoring) – Verificeer AllowUnencryptedTraffic is 0.

monitor: netwerkverkeer op port 5985 (zou moeten zijn zero), Port 5986 HTTPS traffic (legitimate)

Compliance en Auditing

  1. CIS Windows Benchmark - WinRM versleuteling vereist
  2. BIO 13.01 - Netwerkbeveiliging: Versleuteling in transit
  3. ISO 27001 A.13.1.1 - Netwerkcontroles
  4. NIS2 Artikel 21 - Cryptografische maatregelen

Remediatie

Gebruik PowerShell-script allow-unencrypted-traffic-is-set-to-disabled.ps1 (functie Invoke-Remediation) – Herstellen.

Compliance & Frameworks

Automation

Gebruik het onderstaande PowerShell script om deze security control te monitoren en te implementeren. Het script bevat functies voor zowel monitoring (-Monitoring) als remediation (-Remediation).

PowerShell
<# .SYNOPSIS Intune Security Options: Unencrypted Traffic Disabled .DESCRIPTION CIS - Unencrypted traffic (WinRM) disabled. .NOTES Filename: unencrypted-traffic.ps1|Author: Nederlandse Baseline voor Veilige Cloud|Registry: HKLM:\SOFTWARE\Policies\Microsoft\Windows\WinRM\Client\AllowUnencryptedTraffic|Expected: 0 #> #Requires -Version 5.1 #Requires -RunAsAdministrator [CmdletBinding()]param([switch]$WhatIf, [switch]$Monitoring, [switch]$Remediation, [switch]$Revert) $ErrorActionPreference = 'Stop'; $RegPath = "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WinRM\Client"; $RegName = "AllowUnencryptedTraffic"; $ExpectedValue = 0 function Connect-RequiredServices { $p = New-Object Security.Principal.WindowsPrincipal([Security.Principal.WindowsIdentity]::GetCurrent()); return $p.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator) } function Test-Compliance { $r = [PSCustomObject]@{ScriptName = "unencrypted.ps1"; PolicyName = "Unencrypted Traffic"; IsCompliant = $false; CurrentValue = $null; ExpectedValue = "Disabled"; Details = @() }; function Invoke-Revert { Remove-ItemProperty -Path $RegPath -Name $RegName -ErrorAction SilentlyContinue } try { if (Test-Path $RegPath) { $v = Get-ItemProperty -Path $RegPath -Name $RegName -ErrorAction SilentlyContinue; if ($v -and $v.$RegName -eq $ExpectedValue) { $r.IsCompliant = $true; $r.Details += "Unencrypted disabled" }else { $r.Details += "Unencrypted allowed - RISK" } }else { $r.IsCompliant = $true; $r.Details += "Default" } }catch { $r.Details += "Error: $($_.Exception.Message)" }; return $r } function Invoke-Remediation { if (-not(Test-Path $RegPath)) { New-Item -Path $RegPath -Force | Out-Null }; Set-ItemProperty -Path $RegPath -Name $RegName -Value $ExpectedValue -Type DWord -Force; Write-Host "Unencrypted traffic disabled" -ForegroundColor Green } function Invoke-Monitoring { $r = Test-Compliance; Write-Host "`n$($r.PolicyName): $(if($r.IsCompliant){'COMPLIANT'}else{'NON-COMPLIANT'})" -ForegroundColor $(if ($r.IsCompliant) { 'Green' }else { 'Red' }); return $r } function Invoke-Revert { Remove-ItemProperty -Path $RegPath -Name $RegName -ErrorAction SilentlyContinue } try { if (-not(Connect-RequiredServices)) { exit 1 }; if ($Monitoring) { $r = Invoke-Monitoring; exit $(if ($r.IsCompliant) { 0 }else { 1 }) }elseif ($Remediation) { if (-not $WhatIf) { Invoke-Remediation } }elseif ($Revert) { Invoke-Revert }else { $r = Test-Compliance; exit $(if ($r.IsCompliant) { 0 }else { 1 }) } }catch { Write-Error $_; exit 1 }

Risico zonder implementatie

Risico zonder implementatie
High: Hoog risico op Diefstal van inloggegevens en command interceptie via man-in-the-middle attacks op onversleuteld WinRM verkeer. Moderne omgevingen MOETEN altijd versleuteld remote management gebruiken.

Management Samenvatting

Blokkeer onversleuteld WinRM verkeer (AllowUnencryptedTraffic=0). Forceer HTTPS/TLS voor remote management. Voorkomt Diefstal van inloggegevens. Voldoet aan BIO 13.01, ISO 27001 A.13.1.1, NIS2. Implementatie: 2-3 uur.