Skip to content

Glossar

PowerShell-Downgrade-Angriff

Das Starten von PowerShell Version 2, um der Skriptblockprotokollierung und AMSI zu entgehen, die es erst ab Version 5 gibt.

Ein PowerShell-Downgrade-Angriff startet PowerShell mit -Version 2, sodass die Sitzung statt auf Version 5 auf der alten Engine von PowerShell 2.0 läuft. Die 2.0-Engine ist älter als die in Version 5 hinzugefügten Sicherheitsfunktionen: Sie hat keine Skriptblockprotokollierung, keine Modulprotokollierung und keine AMSI-Integration. Sind das Windows-Feature PowerShell 2.0 und die .NET-Framework-2.0/3.5-Laufzeit, von der es abhängt, vorhanden, erhält ein Angreifer eine vollständige Skriptumgebung, die weitaus weniger Spuren hinterlässt und zur Laufzeit nicht vom Virenschutz geprüft wird.

Warum es für Untersuchungen wichtig ist

Ein Downgrade ist eine bewusste Entscheidung, der Sichtbarkeit zu entgehen, daher ist sein Vorhandensein bedeutsam, auch wenn Sie nicht sehen können, was danach ausgeführt wurde. Er erklärt außerdem Lücken: Ein System mit aktivierter Skriptblockprotokollierung, aber ohne 4104-Ereignisse für eine verdächtige Sitzung, lief möglicherweise mit der v2-Engine. Die gute Nachricht: Das klassische Protokoll Windows PowerShell wird auch von der v2-Engine geschrieben, sodass der Versuch selbst sichtbar bleibt.

Verteidiger verhindern den Angriff, indem sie das optionale Feature Windows PowerShell 2.0 entfernen; dann findet -Version 2 keine Engine mehr, die es laden könnte.

Beispiel

Die Befehlszeile, wie sie im Feld HostApplication eines Ereignisses 400 des klassischen Protokolls aufgezeichnet wird:

HostApplication=powershell.exe -Version 2 -NoProfile -Command whoami
EngineVersion=2.0

Die beiden Felder erzählen dieselbe Geschichte aus zwei Blickwinkeln: Der Schalter zeigt die Anforderung, und EngineVersion=2.0 zeigt die Engine, die tatsächlich gestartet wurde. Der Parser erzeugt einen Downgrade-Befund mit hoher Schwere für einen Schalter -Version 2 (oder -v 2) in einer PowerShell-Befehlszeile sowie für jedes Ereignis 400 oder 403, dessen Engine-Version 2.x ist.

Verwandte Begriffe

Prüfen Sie die Engine-Versionen in Ereignis 400 im PowerShell Parser, lesen Sie den Leitfaden zu den PowerShell-Ereignisprotokollen, und sehen Sie sich Lee Holmes über Downgrade-Angriffe an.