GitHub - tmcmil/OffensiveVBA: This repo covers some code execution and AV Evasion methods for Macros in Office documents

ShellApplication_ShellExecute.vba Execute an OS command via ShellApplication object and ShellExecute method ShellApplication_ShellExecute_privileged.vba Execute an privileged OS command via ShellApplication object and ShellExecute method - UAC prompt Shellcode_CreateThread.vba Execute shellcode in the current process via Win32 CreateThread Shellcode_EnumChildWindowsCallback.vba Execute shellcode in the current process via EnumChildWindows Win32_CreateProcess.vba Create a new process for code execution via Win32 CreateProcess function Win32_ShellExecute.vba Create a new process for code execution via Win32 ShellExecute function WMI_Process_Create.vba Create a new process via WMI for code execution WMI_Process_Create2.vba Another WMI code execution example WscriptShell_Exec.vba Execute an OS command via WscriptShell object and Exec method WscriptShell_run.vba Execute an OS command via WscriptShell object and Run method VBA-RunPE @itm4n's RunPE technique in VBA GadgetToJScript med0x2e's C# script for generating .NET serialized gadgets that can trigger .NET assembly load/execution when deserialized using BinaryFormatter from JS/VBS/VBA based scripts. PPID_Spoof.vba christophetd's spoofing-office-macro copy AMSIBypass_AmsiScanBuffer_ordinal.vba rmdavy's AMSI Bypass to patch AmsiScanBuffer using ordinal values for a signature bypass AMSIBypass_AmsiScanBuffer_Classic.vba rasta-mouse's classic AmsiScanBuffer patch AMSIBypass_Heap.vba rmdavy's HeapsOfFun repo copy AMSIbypasses.vba outflanknl's AMSI bypass blog COMHijack_DLL_Load.vba Load DLL via COM Hijacking COM_Process_create.vba Create process via COM object Download_Autostart.vba Download a file from a remote webserver and put it into the StartUp folder Download_Autostart_WinAPI.vba Download a file from a remote webserver via URLDownloadtoFileA and put it into the StartUp folder Dropper_Autostart.vba Drop batch file into the StartUp folder Registry_Persist_wmi.vba Create StartUp registry key for persistence via WMI Registry_Persist_wscript.vba Create StartUp registry key for persistence via wscript object ScheduledTask_Create.vba Create and start sheduled task for code execution/persistence XMLDOM_Load_XSL_Process_create.vba Load XSL from a remote webserver to execute code regsvr32_sct_DownloadExecute.vba Execute regsvr32 to download a remote webservers SCT file for code execution BlockETW.vba Patch EtwEventWrite in ntdll.dll to block ETW data collection BlockETW_COMPLUS_ETWEnabled_ENV.vba Block ETW data collection by setting the environment variable COMPLUS_ETWEnabled to 0, credit to @xpn ShellWindows_Process_create.vba ShellWindows Process create to get explorer.exe as parent process AES.vba An example to use AES encryption/decryption in VBA from Here Dropper_Executable_Autostart.vba Get executable bytes from VBA and drop into Autostart - no download in this case MarauderDrop.vba Drop a COM registered .NET DLL into temp, import the function and execute code - in this case loads a remote C# binary from a webserver to memory and executes it - credit to @Jean_Maes_1994 for MaraudersMap Dropper_Workfolders_lolbas_Execute.vba Drop an embedded executable into the TEMP directory and execute it using C:\windows\system32\Workfolders.exe as LOLBAS - credit to @YoSignals SandBoxEvasion Some SandBox Evasion templates Evasion Dropper Autostart.vba Drops a file to the Startup directory bypassing file write monitoring via renamed folder operation Evasion MsiInstallProduct.vba Installs a remote MSI package using WindowsInstaller ActiveXObject avoiding spawning suspicious office child process, the msi installation will be executed as a child of the MSIEXEC /V service StealNetNTLMv2.vba Steal NetNTLMv2 Hash via share connection - credit to https://book.hacktricks.xyz/windows/ntlm/places-to-steal-ntlm-creds Parse-Outlook.vba Parses Outlook for sensitive keywords and file extensions, and exfils them via email - credit to JohnWoodman Reverse-Shell.vba Reverse shell written entirely in VBA using Windows API calls - credit to JohnWoodman