
Questo repository copre alcuni metodi di esecuzione del codice e di evasione dell'antivirus per le macro nei documenti di Office.
In preparazione per uno Stream/Video sull'evasione di AV per VBS, stavo facendo ricerche sui metodi di esecuzione del codice per macro Office e sulle tecniche di evasione.
La lista è diventata sempre più lunga e non ho trovato un posto centrale per i template ofensivi per VBA - quindi questo repo può essere usato a tale scopo. È molto lontano dall'essere completo. Se conosci altre tecniche interessanti o template utili, sentiti libero di contribuire e creare una pull request!
La maggior parte dei template in questo repo sono già stati pubblicati altrove. Ho semplicemente copiato e incollato la maggior parte dei template da siti ms-docs, post di blog o da altri strumenti.
| File | Descrizione |
|---|---|
| ShellApplication_ShellExecute.vba | Esegue un comando del sistema operativo tramite l'oggetto ShellApplication e il metodo ShellExecute |
| ShellApplication_ShellExecute_privileged.vba | Esegue un comando del sistema operativo con privilegi tramite l'oggetto ShellApplication e il metodo ShellExecute - richiesta UAC |
| Shellcode_CreateThread.vba | Esegue shellcode nel processo corrente tramite Win32 CreateThread |
| Shellcode_EnumChildWindowsCallback.vba | Esegue shellcode nel processo corrente tramite EnumChildWindows |
| Win32_CreateProcess.vba | Crea un nuovo processo per l'esecuzione del codice tramite la funzione Win32 CreateProcess |
| Win32_ShellExecute.vba | Crea un nuovo processo per l'esecuzione del codice tramite la funzione Win32 ShellExecute |
| WMI_Process_Create.vba | Crea un nuovo processo tramite WMI per l'esecuzione del codice |
| WMI_Process_Create2.vba | Un altro esempio di esecuzione del codice tramite WMI |
| WscriptShell_Exec.vba | Esegue un comando del sistema operativo tramite l'oggetto WscriptShell e il metodo Exec |
| WscriptShell_run.vba | Esegue un comando del sistema operativo tramite l'oggetto WscriptShell e il metodo Run |
| VBA-RunPE |
| File | Descrizione |
|---|---|
| Unhooker.vba | Rimuovi gli hook dalle API in memoria per liberarsi degli hook |
| Syscalls.vba |
ASR bypass: http://blog.sevagas.com/IMG/pdf/bypass_windows_defender_attack_surface_reduction.pdf
Conversione da Shellcode a VBScript: https://github.com/DidierStevens/DidierStevensSuite/blob/master/shellcode2vbscript.py
Bypassare AMSI in VBA: https://outflank.nl/blog/2019/04/17/bypassing-amsi-for-vba/
Purging VBA: https://www.mandiant.com/resources/purgalicious-vba-macro-obfuscation-with-vba-purging
Articolo F-Secure su evasione e rilevamento VBA: https://blog.f-secure.com/dechaining-macros-and-evading-edr/
Un altro blog F-Secure: https://labs.f-secure.com/archive/dll-tricks-with-vba-to-improve-offensive-macro-capability/
| Tecnica RunPE di @itm4n in VBA |
| GadgetToJScript | Script C# di med0x2e per generare gadget serializzati .NET che possono attivare il caricamento/esecuzione di assembly .NET quando deserializzati tramite BinaryFormatter da script basati su JS/VBS/VBA. |
| PPID_Spoof.vba | Copia di spoofing-office-macro di christophetd |
| AMSIBypass_AmsiScanBuffer_ordinal.vba | Bypass AMSI di rmdavy per patchare AmsiScanBuffer utilizzando valori ordinali per un bypass delle firme |
| AMSIBypass_AmsiScanBuffer_Classic.vba | Patch classica di AmsiScanBuffer di rasta-mouse |
| AMSIBypass_Heap.vba | Copia del repo HeapsOfFun di rmdavy |
| AMSIbypasses.vba | Blog sul bypass AMSI di outflanknl |
| COMHijack_DLL_Load.vba | Carica DLL tramite COM Hijacking |
| COM_Process_create.vba | Crea processo tramite oggetto COM |
| Download_Autostart.vba | Scarica un file da un server web remoto e lo inserisce nella cartella StartUp |
| Download_Autostart_WinAPI.vba | Scarica un file da un server web remoto tramite URLDownloadtoFileA e lo inserisce nella cartella StartUp |
| Dropper_Autostart.vba | Inserisce un file batch nella cartella StartUp |
| Registry_Persist_wmi.vba | Crea una chiave di registro StartUp per la persistenza tramite WMI |
| Registry_Persist_wscript.vba | Crea una chiave di registro StartUp per la persistenza tramite oggetto wscript |
| ScheduledTask_Create.vba | Crea e avvia un'attività pianificata per esecuzione del codice/persistenza |
| XMLDOM_Load_XSL_Process_create.vba | Carica XSL da un server web remoto per eseguire codice |
| regsvr32_sct_DownloadExecute.vba | Esegue regsvr32 per scaricare un file SCT da un server web remoto per l'esecuzione del codice |
| BlockETW.vba | Applica una patch a EtwEventWrite in ntdll.dll per bloccare la raccolta dati ETW |
| BlockETW_COMPLUS_ETWEnabled_ENV.vba | Blocca la raccolta dati ETW impostando la variabile d'ambiente COMPLUS_ETWEnabled a 0, credito a @xpn |
| ShellWindows_Process_create.vba | Crea processo ShellWindows per ottenere explorer.exe come processo padre |
| AES.vba | Un esempio per utilizzare la crittografia/decifratura AES in VBA da Qui |
| Dropper_Executable_Autostart.vba | Ottiene i byte di un eseguibile da VBA e lo inserisce in Autostart - nessun download in questo caso |
| MarauderDrop.vba | Inserisce un DLL .NET registrato COM nella cartella temp, importa la funzione ed esegue codice - in questo caso carica un binario C# remoto da un server web in memoria e lo esegue - credito a @Jean_Maes_1994 per MaraudersMap |
| Dropper_Workfolders_lolbas_Execute.vba | Inserisce un eseguibile embedded nella directory TEMP e lo esegue usando C:\windows\system32\Workfolders.exe come LOLBAS - credito a @YoSignals |
| SandBoxEvasion | Alcuni template per l'evasione di SandBox |
| Evasion Dropper Autostart.vba | Inserisce un file nella directory StartUp bypassando il monitoraggio della scrittura dei file tramite operazione di rinomina della cartella |
| Evasion MsiInstallProduct.vba | Installa un pacchetto MSI remoto usando WindowsInstaller ActiveXObject evitando di generare processi figli di Office sospetti; l'installazione MSI verrà eseguita come figlio del servizio MSIEXEC /V |
| StealNetNTLMv2.vba | Ruba l'hash NetNTLMv2 tramite connessione a condivisione - credito a https://book.hacktricks.xyz/windows/ntlm/places-to-steal-ntlm-creds |
| Parse-Outlook.vba | Analizza Outlook per parole chiave ed estensioni di file sensibili e li esfiltra tramite email - credito a JohnWoodman |
| Reverse-Shell.vba | Reverse shell scritta interamente in VBA utilizzando chiamate API di Windows - credito a JohnWoodman |
| Utilizzo di syscall - direttamente dal disco o stile Syswhispers |
| Manymore.vba | Se hai altre idee, sentiti libero di contribuire |