Kurzfassung: msiexec.exe ist der Windows-Installer - signiert, alltäglich und selten blockiert. Genau das macht ihn als Tarnung attraktiv: Angreifer laden ihr Paket per msiexec von einer URL oder aus einem Benutzerpfad und führen so Code aus, der wie eine normale Installation aussieht. Für den Verteidiger wird der Missbrauch an wenigen Merkmalen sichtbar - eine URL in der Befehlszeile, ein Paket aus dem Benutzerpfad oder ein ungewöhnlicher Elternprozess. Drei sigma-cli-validierte Sigma-Regeln, dazu Härtung und der Test im Lab. Serie "Angriff erkennen".
Nach dem Erstzugang will der Angreifer unauffällig bleiben, und dafür nutzt er gern Programme, die ohnehin zu Windows gehören - das Prinzip hinter Living off the Land. msiexec.exe ist dafür ideal: Es ist signiert, läuft täglich auf jedem Rechner und wird von kaum einer Anwendungssteuerung blockiert. Statt eine eigene Datei zu starten, lässt der Angreifer msiexec ein präpariertes MSI-Paket installieren - von einer URL oder aus einem Benutzerpfad. Der Code läuft dann im Kontext eines vertrauenswürdigen Installers. Dieser Beitrag nimmt die Erkennung in den Blick und bleibt auf der Verteidigerseite.
Einordnung in ATT&CK: System Binary Proxy Execution: Msiexec (T1218.007), eine Untertechnik von System Binary Proxy Execution. MITRE führt sie in der Taktik Defense Evasion; in dieser Serie steht sie in der Spalte Stealth, weil der Missbrauch darauf zielt, Code hinter einem signierten Helfer zu verbergen. Verwandt sind die anderen signierten Proxy-Programme wie rundll32, regsvr32 und mshta.
Was der Angreifer tut
Der Missbrauch von msiexec läuft - auf der Ebene des Prinzips, nicht als Anleitung - in wenigen Mustern ab:
- Ein Paket vorbereiten. Der Angreifer verpackt seine Nutzlast in ein MSI oder nutzt eine MSI-Datei, die beim Installieren eine eigene Aktion ausführt.
- Von einer URL laden. Mit msiexec und einer http- oder https-URL wird das Paket direkt aus dem Netz geladen und installiert, ganz ohne vorherigen sichtbaren Download.
- Aus einem Benutzerpfad starten. Alternativ liegt das MSI bereits im Benutzer- oder Temp-Verzeichnis, und msiexec installiert es von dort.
- Getarnt ausführen. Der Code läuft im Kontext von msiexec - einem signierten, erwarteten Prozess - und fällt dadurch weniger auf.
Für die Erkennung ist entscheidend: Der Missbrauch zeigt sich an wenigen Merkmalen der Befehlszeile und am Elternprozess. Genau daran setzen die Regeln an.
Welche Logquellen die Technik zeigt
- Prozess-Telemetrie zuerst. Event 4688 und Sysmon Event 1 zeigen msiexec mit der vollständigen Befehlszeile - URL, Pfad und Schalter im Klartext - sowie den Elternprozess. Die wichtigste Quelle.
- Netzwerk und Proxy. Lädt msiexec von einer URL, erscheint die Verbindung in Proxy- und DNS-Logs; ein msiexec-Prozess, der ins Netz geht, ist für sich schon auffällig.
- Installer-Protokolle. Das Windows-Installer-Protokoll (MsiInstaller im Anwendungslog) verzeichnet Installationen und hilft, legitime von untergeschobenen Paketen zu trennen.
- Werkzeug-Kontext. msiexec ist ein mitgeliefertes Windows-Programm; Grundlagen zum Missbrauch solcher Helfer unter Living off the Land.
Das Muster im Log
Drei Signale tragen. Das erste ist msiexec mit einer http- oder https-URL in der Befehlszeile - das direkte Nachladen eines Pakets aus dem Netz gibt es im Alltag fast nie. Das zweite ist msiexec, das ein Paket aus einem Benutzer- oder Temp-Pfad installiert; reguläre Installationen laufen meist aus geschützten Pfaden. Das dritte ist msiexec mit einem ungewöhnlichen Elternprozess - ein Office-Programm, ein Browser oder ein Skript-Interpreter, die msiexec sonst nicht starten. Legitime Treffer stammen aus Software-Verteilung und Herstellern, die sich per entferntem MSI aktualisieren. Auffällig wird es, wenn URL, Pfad oder Elternprozess nicht ins bekannte Bild passen. Der Blick auf Quelle, Pfad und Eltern trennt den Alltag vom Angriff.
Drei Sigma-Regeln
Die Regeln sind mit sigma-cli geprüft und nehmen die drei Signale: msiexec mit einer URL, msiexec aus einem Benutzerpfad und msiexec mit einem ungewöhnlichen Elternprozess. Alle drei werten die Prozess-Telemetrie aus.
1. Msiexec installiert ein MSI-Paket von einer URL (T1218.007). msiexec.exe mit einer http- oder https-URL in der Befehlszeile. Die Regel steht auf level: high.
title: Msiexec installiert ein MSI-Paket von einer URL
id: 4c8a2d17-5b93-4e62-a0f8-1d6c3b7e9a24
status: experimental
description: |
Erkennt, dass msiexec.exe ein Installationspaket direkt von einer URL nachlaedt und installiert.
msiexec ist ein signierter Windows-Helfer; Angreifer rufen damit ein entferntes MSI ab, um Code
getarnt als regulaere Installation auszufuehren (System Binary Proxy Execution ueber Msiexec). Ein
msiexec-Aufruf mit http- oder https-URL ist im Normalbetrieb sehr ungewoehnlich.
references:
- https://attack.mitre.org/techniques/T1218/007/
author: blue-team.net
tags:
- attack.stealth
- attack.t1218.007
logsource:
product: windows
category: process_creation
detection:
sel_msi:
Image|endswith: '\msiexec.exe'
sel_url:
CommandLine|contains:
- 'http://'
- 'https://'
condition: sel_msi and sel_url
falsepositives:
- Einzelne Software aktualisiert sich ueber ein entferntes MSI - bekannte Hersteller und URLs als Baseline ausnehmen
level: high
2. Msiexec installiert aus Benutzer- oder Temp-Pfad (T1218.007). msiexec.exe mit einem Paketpfad in Users, AppData, Temp, Downloads oder ProgramData. Die Regel steht auf level: medium, weil manche Installer sich dorthin entpacken.
title: Msiexec installiert aus Benutzer- oder Temp-Pfad
id: 7d1f9a25-8c46-4b73-9e02-3a7d5c2b6e18
status: experimental
description: |
Erkennt, dass msiexec.exe ein Paket aus einem benutzerschreibbaren Verzeichnis installiert - Users,
AppData, Temp, Downloads oder ProgramData. Angreifer legen ihr MSI in einem solchen Pfad ab und
starten es ueber den signierten Installer (System Binary Proxy Execution ueber Msiexec). Regulaere
Installationen laufen meist aus geschuetzten System- oder Herstellerpfaden.
references:
- https://attack.mitre.org/techniques/T1218/007/
author: blue-team.net
tags:
- attack.stealth
- attack.t1218.007
logsource:
product: windows
category: process_creation
detection:
sel_msi:
Image|endswith: '\msiexec.exe'
sel_path:
CommandLine|contains:
- '\Users\'
- '\AppData\'
- '\Temp\'
- '\Downloads\'
- '\ProgramData\'
condition: sel_msi and sel_path
falsepositives:
- Manche Installer entpacken sich nach Temp und rufen msiexec von dort - bekannte Faelle nach Paket und Herausgeber als Baseline ausnehmen
level: medium
3. Msiexec als ungewöhnlicher Kindprozess gestartet (T1218.007). msiexec.exe mit einem Office-Programm, Browser oder Skript-Interpreter als Elternprozess. Ebenfalls level: high.
title: Msiexec als ungewoehnlicher Kindprozess gestartet
id: 9b2d6c38-1e75-4a84-8f03-5d4c7b2e8a19
status: experimental
description: |
Erkennt, dass msiexec.exe von einem Office-Programm, Mail-Client, Browser oder Skript-Interpreter
gestartet wird. Nach einem Erstzugang ruft der ausgeloeste Code gern msiexec auf, um die Nutzlast
getarnt als Installation nachzuladen (System Binary Proxy Execution ueber Msiexec). Ein solcher
Elternprozess von msiexec ist ein starkes Signal.
references:
- https://attack.mitre.org/techniques/T1218/007/
author: blue-team.net
tags:
- attack.stealth
- attack.t1218.007
logsource:
product: windows
category: process_creation
detection:
sel_parent:
ParentImage|endswith:
- '\winword.exe'
- '\excel.exe'
- '\powerpnt.exe'
- '\outlook.exe'
- '\powershell.exe'
- '\pwsh.exe'
- '\wscript.exe'
- '\cscript.exe'
- '\mshta.exe'
- '\chrome.exe'
- '\msedge.exe'
sel_msi:
Image|endswith: '\msiexec.exe'
condition: sel_parent and sel_msi
falsepositives:
- Einzelne Anwendungen starten msiexec aus einem Updater-Prozess - bekannte Elternprozesse als Baseline ausnehmen
level: high
Härtung: der Angriff, der ins Leere läuft
- Installationen steuern. Per Richtlinie nur signierte Pakete aus freigegebenen Quellen zulassen und das Installieren durch normale Nutzer einschränken. Die wirksamste Maßnahme gegen diesen Weg.
- Entfernte MSI blockieren. Das Nachladen von Paketen aus dem Netz am Web-Proxy unterbinden, sodass msiexec keine URL installieren kann.
- Anwendungssteuerung mit Regeln für Installer. Mit WDAC oder AppLocker msiexec zwar erlauben, aber die ausgeführten Pakete auf bekannte Herausgeber und Pfade begrenzen.
- Gezielt überwachen. msiexec mit URL, aus Benutzerpfaden und mit ungewöhnlichem Elternprozess als feste Erkennungen führen.
Der Test
Die Erkennung lässt sich im Lab gefahrlos prüfen, auf einem isolierten System mit aktivem Sysmon - mit einem harmlosen Test-MSI, ohne echte Nutzlast:
- Für Regel 1 msiexec mit einer Test-URL auf ein harmloses MSI aufrufen und prüfen, dass Event 4688 die URL in der Befehlszeile zeigt.
- Für Regel 2 ein harmloses MSI in einen Temp- oder Downloads-Pfad legen, von dort per msiexec installieren und den Treffer kontrollieren.
- Für Regel 3 msiexec testweise aus einem Office- oder Skript-ähnlichen Prozess starten und prüfen, dass die Eltern-Kind-Beziehung erkannt wird.
- Breiter wird der Test mit den Fällen zu T1218.007 aus Atomic Red Team.
Fehlalarme und Tuning
- Software-Verteilung. Verteilwerkzeuge installieren Pakete im großen Stil über msiexec. Bekannte Verteilserver und Elternprozesse als Baseline ausnehmen, bevor die Regeln scharf geschaltet werden.
- Selbst-Updater. Manche Hersteller aktualisieren sich per entferntem MSI oder entpacken sich nach Temp. Diese bekannten URLs, Pakete und Pfade gezielt ausnehmen.
- URL wiegt am schwersten. Ein msiexec mit http-URL ist deutlich verdächtiger als eine Installation aus einem Herstellerpfad - danach priorisieren.
- Kette schlägt Einzelzeile. msiexec aus einem Office-Prozess, das von einer URL lädt, ist weit aussagekräftiger als ein Treffer allein - die Korrelation schärft die Bewertung.
Fazit
Der Missbrauch von msiexec ist ein Lehrstück für Tarnung über vertrauenswürdige Programme: Ein signierter Installer lädt ein Paket, und der Code läuft, als wäre es eine ganz normale Installation. Die verlässlichen Signale sind eine URL in der Befehlszeile, ein Paket aus dem Benutzerpfad und ein ungewöhnlicher Elternprozess. Die wirksamste Härtung ist, Installationen auf freigegebene Quellen zu begrenzen und entfernte MSI zu blockieren. Wie Code sich als harmlos ausgibt, zeigt das Masquerading; wie die Nutzlast überhaupt auf den Rechner kommt, der Ingress Tool Transfer. Weitere Techniken dieser Taktik führt das Lexikon nach Taktik unter Stealth.