
Este repositório aborda alguns métodos de execução de código e evasão de AV para Macros em documentos do Office.
Em preparação para uma transmissão/vídeo sobre evasão de AV em VBS, eu estava fazendo algumas pesquisas sobre métodos de execução de código e técnicas de evasão para Macros do Office.
A lista foi ficando cada vez maior e não encontrei um local centralizado para templates ofensivos de VBA - então este repositório pode ser usado para isso. Está muito longe de estar completo. Se você conhece alguma outra técnica legal ou template útil, sinta-se à vontade para contribuir e criar um pull request!
A maioria dos templates neste repositório já foram publicados em algum lugar. Apenas copiei e colei a maioria dos templates de sites ms-docs, postagens de blog ou de outras ferramentas.
| Arquivo | Descrição |
|---|---|
| ShellApplication_ShellExecute.vba | Executa um comando do SO através do objeto ShellApplication e do método ShellExecute |
| ShellApplication_ShellExecute_privileged.vba | Executa um comando do SO privilegiado através do objeto ShellApplication e do método ShellExecute - prompt UAC |
| Shellcode_CreateThread.vba | Executa shellcode no processo atual via Win32 CreateThread |
| Shellcode_EnumChildWindowsCallback.vba | Executa shellcode no processo atual via EnumChildWindows |
| Win32_CreateProcess.vba | Cria um novo processo para execução de código via função Win32 CreateProcess |
| Win32_ShellExecute.vba | Cria um novo processo para execução de código via função Win32 ShellExecute |
| WMI_Process_Create.vba | Cria um novo processo via WMI para execução de código |
| WMI_Process_Create2.vba | Outro exemplo de execução de código via WMI |
| WscriptShell_Exec.vba | Executa um comando do SO através do objeto WscriptShell e do método Exec |
| WscriptShell_run.vba | Executa um comando do SO através do objeto WscriptShell e do método Run |
| VBA-RunPE | Técnica RunPE do @itm4n em VBA |
| GadgetToJScript | Script C# do med0x2e para gerar gadgets serializados .NET que podem disparar o carregamento/execução de assemblies .NET quando desserializados usando BinaryFormatter a partir de scripts baseados em JS/VBS/VBA. |
| PPID_Spoof.vba | Cópia do spoofing-office-macro do christophetd |
| AMSIBypass_AmsiScanBuffer_ordinal.vba | Bypass de AMSI do rmdavy para aplicar patch no AmsiScanBuffer usando valores ordinais para um bypass de assinatura |
| AMSIBypass_AmsiScanBuffer_Classic.vba | Patch clássico do AmsiScanBuffer do rasta-mouse |
| AMSIBypass_Heap.vba | Cópia do repositório HeapsOfFun do rmdavy |
| AMSIbypasses.vba | Blog de bypass de AMSI do outflanknl |
| COMHijack_DLL_Load.vba | Carrega DLL via sequestro de COM |
| COM_Process_create.vba | Cria processo via objeto COM |
| Download_Autostart.vba | Baixa um arquivo de um servidor remoto e o coloca na pasta de Inicialização |
| Download_Autostart_WinAPI.vba | Baixa um arquivo de um servidor remoto via URLDownloadtoFileA e o coloca na pasta de Inicialização |
| Dropper_Autostart.vba | Coloca um arquivo batch na pasta de Inicialização |
| Registry_Persist_wmi.vba | Cria chave de registro de Inicialização para persistência via WMI |
| Registry_Persist_wscript.vba | Cria chave de registro de Inicialização para persistência via objeto wscript |
| ScheduledTask_Create.vba | Cria e inicia uma tarefa agendada para execução de código/persistência |
| XMLDOM_Load_XSL_Process_create.vba | Carrega XSL de um servidor remoto para executar código |
| regsvr32_sct_DownloadExecute.vba | Executa regsvr32 para baixar um arquivo SCT de um servidor remoto para execução de código |
| BlockETW.vba | Aplica patch no EtwEventWrite na ntdll.dll para bloquear a coleta de dados do ETW |
| BlockETW_COMPLUS_ETWEnabled_ENV.vba | Bloqueia a coleta de dados do ETW definindo a variável de ambiente COMPLUS_ETWEnabled como 0, crédito para @xpn |
| ShellWindows_Process_create.vba | Criação de processo do ShellWindows para obter o explorer.exe como processo pai |
| AES.vba | Um exemplo de uso de criptografia/descriptografia AES em VBA de Aqui |
| Dropper_Executable_Autostart.vba | Obtém bytes de um executável a partir do VBA e os coloca na Inicialização - sem download neste caso |
| MarauderDrop.vba | Coloca uma DLL .NET registrada via COM na pasta temp, importa a função e executa código - neste caso carrega um binário C# remoto de um servidor web na memória e o executa - crédito para @Jean_Maes_1994 pelo MaraudersMap |