Glossar
AMSI (Antimalware Scan Interface)
Windows-Schnittstelle, über die Virenschutz Skriptinhalte wie PowerShell zur Laufzeit prüft; Angreifer schalten sie im Prozess aus.
Das Antimalware Scan Interface (AMSI) ist eine Windows-Schnittstelle, über die Windows Defender und andere Virenschutzprodukte den Inhalt von Skripten während der Ausführung prüfen können, statt nur Dateien auf dem Datenträger. PowerShell 5 unter Windows 10 übergibt Skriptblöcke vor der Ausführung an AMSI, sodass Code, der Base64-kodiert, komprimiert oder aus Fragmenten zusammengesetzt wurde, in seiner endgültigen, lesbaren Form geprüft wird. Damit läuft die meiste einfache Obfuskation ins Leere.
Warum es für Untersuchungen wichtig ist
Da AMSI in denselben Prozess wie das Skript geladen wird (über amsi.dll), kann das Skript versuchen, es für sich selbst abzuschalten. Bekannte Techniken setzen das private Feld amsiInitFailed, sodass die Sitzung annimmt, AMSI sei nicht gestartet, und die Prüfung überspringt, oder sie patchen AmsiScanBuffer im Speicher, sodass jede Prüfung ein unauffälliges Ergebnis liefert. Eine AMSI-Umgehung ist selten Selbstzweck: Sie ist der Schritt unmittelbar vor einer Nutzlast, von der der Angreifer erwartet, dass der Virenschutz sie erkennen würde.
Text, der auf AmsiUtils, amsiInitFailed, AmsiScanBuffer, AmsiOpenSession oder amsi.dll verweist, ist ein starker Hinweis, und die Umgehungszeile selbst wird oft aufgezeichnet, weil sie wie jeder andere Skriptblock kompiliert werden muss, bevor sie wirken kann.
Beispiel
Eine klassische einzeilige Umgehung, wie sie in einem 4104-Ereignis oder in einer Verlaufsdatei auftauchen kann:
[Ref].Assembly.GetType('System.Management.Automation.AmsiUtils').GetField('amsiInitFailed','NonPublic,Static').SetValue($null,$true)
Angreifer verbergen diese Namen meist hinter Verkettung, [char]-Codes oder Base64. Deshalb durchsucht der Parser jede Deobfuskationsschicht, die er dekodieren kann, nicht nur den Rohtext, und erzeugt überall dort, wo einer dieser Namen vorkommt, einen Befund zur AMSI-Umgehung mit hoher Schwere.
Verwandte Begriffe
- PowerShell-Downgrade-Angriff, ein weiterer Weg, ohne AMSI zu arbeiten
- Skriptblockprotokollierung, die die Umgehung selbst oft aufzeichnet
- Kodierter Befehl und Download-Cradle, die häufig auf eine Umgehung folgen
Prüfen Sie Ihre eigenen Beweismittel im PowerShell Parser auf Manipulationen an AMSI, und lesen Sie unter kodierte Befehle und Obfuskation dekodieren, wie die Schichten aufgelöst werden.