Log4j Zugriffe (Exploits) zuverlässig mit IIS ARR (reverse Proxy) filtern

Über eine kritische Sicherheitslücke namens „Log4Shell“ in der weitverbreiteten Java-Logging-Bibliothek „Log4j“ können Angreifer beliebigen Code ausführen lassen.

Seit Kurzem steht ein Quellcode-Update des Log4j Apache-Projekts bereit; Entwickler und Admins sollten dringend aktiv werden.

Ein Angreifer kann die Sicherheitslücke ausnutzen, indem er manipulierte Anfragen an einen verwundbaren Server oder eine angreifbare Anwendung schickt. Das geschieht in der Regel (z.B. Tomcat) via USER_AGENT logging. ein Internet-Nutzer kann also Code hinterlegen, den der Server dann ausführt. Die log4j-Lücke greift aber nicht nur beim USER_AGENT, sondern bei *allem* was im Log landen kann. Je nach Applikation muss man hier also genauer hinschauen, das Vorgehen im IIS URLrewrite ist aber immer das selbe und funktioniert dafür sehr gut.

Den Versuch dazu kann man in ISS via ARR aber schnell filtern. Hier die Anleitung um mittels Reverse Proxy das Exploit abzufangen bevor es interne Systeme erreicht.

Lösung

Am besten auf höchster Ebene (link auf dem Serverknoten) das Modul „URL rewrite“ öffnen. Die dort erstelle Regel greift auf allen Sites.

An dieser Stelle eine leere Regel einfügen, die die folgenden Einstellungen hat:

  • Übereinstimmung mi URL: .*
  • Groß/Kleinschreibung ignorieren: Angehakt
  • Bedingungen
    • Übereistimmung mit allen Elementen > hinzufügen
    • Bedingungseingabe: {HTTP_USER_AGENT}
    • Muster: .*jndi:ldap*
  • Aktion (hier ist etwas kreative Freiheit möglich)
    • URL Umleiten: http://endless.horse/
    • Dauerhaft (301)

Tastenkombinationen und Zugriffstasten wieder unterstreichen

Microsoft hat in Windows 11 die unterstrichenen Tastenkürzen für die Menüauswahl standartmäßig abgeschaltet. Das erschwert die Tastaturbedienung und macht diese schnelle Methode für direkte Zugriff für neue Admins leider praktisch unsichtbar.

Vorher – Nachher: Der Schnellzugriff fehlt

Lösung

Zum Glück ist die Anzeige der Unterstreichung nur eine Einstellungssache:

Windows Einstellungen -> Barrierefreiheit -> Tastatur -> „Tastenkombinationen Unterstreichen“

Alternativ: Klassische Systemsteuerung > Alle Systemsteuerungselemente > „Center für erleichterte Bedienung“ > „Bedienung der Tastatur erleichtern“ > „Tastenkombinationen und Zugriffstatsten unterstreichen“

WSUS Performance timeout abschalten, Datenbank-Reindexierung starten, Löschen und manuelles bearbeiten

Der WSUS unter Windows Server 2012/2012R2 und 2016 zeigt ab und zu gewisse Performance-Schwächen. Das äußert sich beispielsweise in dem berüchtigten „Serverknoten zurücksetzen“ Fehler oder dem „Fehler bei der Verbindung zur WSUS-Datenbank“ Anzeige.

Lösung

Der WSUS-Server ist tatsächlich ein Performance-Fresser. die Update-Datenbank ist riesig. Nicht immer ist hier die WID (Windows-Interne Datenbank) die richtie Lösung. Wartungsscripts und Neuindexierungsjob gibt es hier leider nicht.

Tipp 1 – WSUS-Datenbank defragmentieren und neuindexieren

  1. WSUSDBMaintenance Scripts herunterladen (nicht auf die Version achten – läuft auch unter WSUS 4)
  2. Microsoft® Command Line Utilities 11 for SQL Server herunterladen und installieren (oder alternativ das SMSS verwenden)
  3. Die Scripts ausführen:
    sqlcmd -E -S np:\\.\pipe\MICROSOFT##WID\tsql\query -i WsusDBMaintenance.sql

Tipp 2 – Cleanup-Agent laufen lassen

Der WSUS „Assistent für die Serverbereinigung“ kann die Datenbank deutlich entschlacken (und für mehr Platz sorgen). Läuft der Assistent nicht durch, hilft oft dieser Artikel.

Tipp 3 – Mehr Leistung

Ein WSUS mit vier Kernen und 8Gb RAM kann etwa 5000 Clients gut und schnell bedienen. viele WSUS-Maschinen haben aber deutlich weniger Ressourcen; eine leichte Aufstockung kann hier wunder bewirken.

Tipp 4 – Abgelaufene oder ersetzte Updates löschen

Der Fehler in diesem Artikel kann auch die Ursache für Verbindungstimeouts des Konsolenclients sein.

Dieses SQL-Script löscht die Updates direkt in der Datenbank, ohne einen externen Binärassistenten. Alle diese Updates auf einmal, ohne manuelles suchen.

DECLARE @var1 INT 
DECLARE @msg nvarchar(100) 
CREATE TABLE #results (Col1 INT) INSERT INTO #results(Col1) 
EXEC spGetObsoleteUpdatesToCleanup 
DECLARE WC Cursor FOR SELECT Col1 FROM #results 
OPEN WC 
FETCH NEXT FROM WC INTO @var1 WHILE (@@FETCH_STATUS > -1) 
BEGIN SET @msg = 'Deleting ' + CONVERT(varchar(10), @var1) RAISERROR(@msg,0,1) WITH NOWAIT 
EXEC spDeleteUpdate @localUpdateID=@var1 
FETCH NEXT FROM WC INTO @var1 
END 
CLOSE WC 
DEALLOCATE WC 
DROP TABLE #results

Tipp 5 – SQL-Server Timeout für die WID/SUSDB hochsetzen/abschalten

Die meisten Konsolenaktionen laufen fehlerfrei durch, wenn man das SQL-Timout für querys entweder sehr hoch ansetzt, oder gleich ganz abschaltet. Achtung: Wenn man das Timeout abschaltet, laufen auch „tote“ Anfragen durch, bis sie fertig sind. Default sind 600 Sekunden.

USE SUSDB;  
GO  
EXEC sp_configure 'remote query timeout', 0 ;  
GO  
RECONFIGURE ;  
GO

Tipp 6 – IIS Prozess-Pool Timeout für die WSUS-Prozesse erhöhen

Ein sehr nerviger Fehler taucht im WSUS ab Windowss Server 2016 auf: „WSUS Verbindungsfehler – Serverknoten zurücksetzen

IIS (Internetinformationsdienste) Konsole öffnen > Anwendungspools > WsusPool > „Erweiterten Einstellungen“ des Anwendungspools öffnen -> „Limit für den privaten Speicher“ auf „0“ setzen und Server neustarten. Der Reboot ist notwendig, ein Nuestart der IIS alleine reicht nicht.

KB4056892 und Intel-CPU unter Windows 10: Ereignis „Es ist ein korrigierter Hardwarefehler aufgetreten“ WHEA Logger ID 17

Manchmal tritt der Fehler 17 des WHAE-Loggers (Windows Hardware Error Architecture) auf. Diese Meldung besagt in der Regel nur lapidar:

Es ist ein korrigierter Hardwarefehler aufgetreten

Dies ganze Fehlermeldung lautet in etwa so:

Komponente: PCI Express Root Port
Fehlerquelle: Advanced Error Reporting (PCI Express)
Primär Bus:Gerät:Funktion: ...
Sekundär Bus:Gerät:Funktion: ...
Primärer Gerätename: PCI\VEN_ ...
Sekundärer Gerätename:

Das tritt häufiger bei älteren Maschinen mit einer Intel CPU der 4. Generation (Intel® Core™ i*‑4xxx) auf. In den meisten Fällen hat es was mit „interessanten“ BIOS-Updates gegen die Spectre-Lücke zu tun, manchmal ist es auch ein Treiber-Effekt.

Auf jeden Fall sollte BEVOR man das hier ausprobiert, das aktuellste BIOS für die Maschine installiert sein.

Bei einigen Maschinen hat es uns geholfen, den „PCI Express Native Control“ Modus abzuschalten. Wenn Windows die PCIe Native Control startet, erzwingt es einige PCIe Features, die nicht immer (korrekt) in der Hardware implementiert sind. Wenn das der Fall ist, kann Windows den „Standard-PCI-to-PCI-Bridge“ Treiber nicht mehr starten und der Fehler tritt auf.

PCI Express Native Control Feature in Windows abschalten („Legacy Mode“)

Einfach eine CMD Shell „Als Administrator“ starten und den Modus konfigurieren.

bcdedit /set {current} pciexpress forcedisable

Ein paar Sachen funktionieren dann manchmal nicht mehr, wie Hot Plug (an intregrierten SAS-Ports) oder integrierte (nicht-intel) Netzwerkkarten. Die brauchen normalerweise den Native Mode für Ihre Features.

Zurücksetzen (= Einschalten)

bcdedit /deletevalue {current} pciexpress

Oder auch:

bcdedit /set {current} pciexpress default

Windows Server 2019 RDS ändert Standarddrucker beim an/abmelden

Bei mehreren Servern sehen wir das Phänomen, das der Standarddrucker von Benutzern „verstellt“ wird. Der Benutzer wählt korrekt einen Standarddrucker aus, der funktioniert auch für die ganze Sitzung richtig und beim nächsten Anmelden ist plötzlich wieder ein lokal installierter Drucker (PDF24 oder Ähnliches) der Standarddrucker.

Das passiert (scheinbar) immer wenn:

  • eine RDP-Verbindung getrennt wird
  • eine RDP Verbindung nicht ganz sauber abgemeldet wurde (Abmelden + Schließen)
  • der RDSH mit angemeldeten Benutzer neu gestartet wird

Lösung

Auf allen (!) Servern diesen Registry-Key setzen:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Providers\Client Side Rendering Print Provider]

"RemovePrintersAtLogoff"=dword:00000000

Das geht natürlich auch mit einer GPO. Wenn der Key gesetzt ist haben wir die Maschinen neu gestartet und der Effekt war verschwunden.