Windows Remote Management
WinRM steht für Windows Remote Management und ist im Grunde das Tool, mit dem du von deinem Rechner aus andere Windows-Maschinen fernsteuern kannst. Stell dir vor, du sitzt an deinem Laptop und musst auf 20 Servern was konfigurieren – ohne WinRM müsstest du dich überall einzeln per RDP einloggen. Mit WinRM machst du das alles von deiner PowerShell aus.
Das Ding basiert auf einem Standard namens WS-Management, aber das ist eigentlich egal. Wichtig ist: Es läuft über HTTP oder HTTPS und du kannst damit PowerShell-Befehle auf anderen Rechnern ausführen.
Warum sollte man WinRM mit https einsetzen und nicht mit http?
Ganz einfach: Ohne HTTPS schickst du alles im Klartext durchs Netzwerk. Das bedeutet, jeder der mit Wireshark oder einem anderen Sniffer im gleichen Netzwerk sitzt, kann mitlesen was du machst.
Bei HTTP (Port 5985) sieht ein Angreifer:
- Die PowerShell-Befehle die du ausführst
- Die Ergebnisse die zurückkommen
- Potentiell sensible Daten (Passwörter in Skripten, Konfigurationsdaten, etc.)
Klar, die Authentifizierung selbst ist auch bei HTTP verschlüsselt (Kerberos/NTLM), aber der ganze Rest nicht. Das ist wie wenn du dich sicher am Gebäude anmeldest, aber dann alle vertraulichen Dokumente offen rumträgst.
Mit HTTPS (Port 5986) ist die komplette Kommunikation verschlüsselt. Aber – und das ist der Haken – du brauchst dafür Zertifikate. Entweder:
- Richtige Zertifikate von einer CA (am besten)
- Self-signed Zertifikate (nerviger zu verwalten)
In der Praxis sehe ich oft, dass Leute in internen Netzen sagen “ist doch alles hinter der Firewall, passt schon”. Aber denk mal an:
- Insider-Bedrohungen
- Kompromittierte Rechner im Netzwerk
- Compliance-Anforderungen (manche Audits verlangen verschlüsselte Verwaltungszugänge)
Die Einrichtung von HTTPS ist zugegebenermaßen mehr Aufwand.
Meine Faustregel:
- Testumgebung oder Labor wo nur du drin bist? HTTP reicht
- Produktivumgebung oder irgendwas mit echten Daten? HTTPS, keine Diskussion
Besonders wenn du mit Basic Authentication arbeitest (z.B. bei Linux-zu-Windows Verbindungen), ist HTTPS Pflicht. Da werden sonst Username und Passwort nur Base64-kodiert übertragen – das kann jeder Depp dekodieren.
WinRM-TLS Verbindungstest Tool
Mit meinem WinRM-TLS Verbindungstest Tool prüfst du, ob die Verbindung per https erfolgreich sein wird oder nicht.
Ein nicht erfolgreicher Verbindungstest sieht dann so aus.
Das Ergebnis ist ebenso exportierbar wie transparent.
Wer mag kann meinen Blog auch gerne mit einer Spende über PayPal unterstützen. Umso mehr dieser Blog unterstützt wird, umso mehr Powershell Tools kann ich freigeben. Danke