
Dieses Repository behandelt einige Methoden zur Codeausführung und AV-Umgehung für Makros in Office-Dokumenten.
Zur Vorbereitung auf einen VBS-AV-Evasion-Stream/Video habe ich einige Recherchen zu Methoden der Codeausführung in Office-Makros und Umgehungstechniken durchgeführt.
Die Liste wurde immer länger und ich fand keinen zentralen Ort für offensive VBA-Vorlagen – daher kann dieses Repository dafür genutzt werden. Es ist noch lange nicht vollständig. Falls du eine andere coole Technik oder nützliche Vorlage kennst, kannst du gerne einen Beitrag leisten und einen Pull-Request erstellen!
Die meisten Vorlagen in diesem Repository wurden bereits irgendwo veröffentlicht. Ich habe die meisten Vorlagen einfach von MS-Docs-Seiten, Blogbeiträgen oder anderen Tools kopiert und eingefügt.
| Datei | Beschreibung |
|---|---|
| ShellApplication_ShellExecute.vba | Führt einen Betriebssystembefehl mittels ShellApplication-Objekt und ShellExecute-Methode aus |
| ShellApplication_ShellExecute_privileged.vba | Führt einen privilegierten Betriebssystembefehl mittels ShellApplication-Objekt und ShellExecute-Methode aus – UAC-Eingabeaufforderung |
| Shellcode_CreateThread.vba | Führt Shellcode im aktuellen Prozess mittels Win32 CreateThread aus |
| Shellcode_EnumChildWindowsCallback.vba | Führt Shellcode im aktuellen Prozess mittels EnumChildWindows aus |
| Win32_CreateProcess.vba | Erstellt einen neuen Prozess zur Codeausführung mittels Win32 CreateProcess-Funktion |
| Win32_ShellExecute.vba | Erstellt einen neuen Prozess zur Codeausführung mittels Win32 ShellExecute-Funktion |
| WMI_Process_Create.vba | Erstellt einen neuen Prozess mittels WMI zur Codeausführung |
| WMI_Process_Create2.vba | Ein weiteres Beispiel für WMI-Codeausführung |
| WscriptShell_Exec.vba | Führt einen Betriebssystembefehl mittels WscriptShell-Objekt und Exec-Methode aus |
| WscriptShell_run.vba | Führt einen Betriebssystembefehl mittels WscriptShell-Objekt und Run-Methode aus |
| VBA-RunPE | @itm4n's RunPE-Technik in VBA |
| GadgetToJScript | C#-Skript von med0x2e zum Generieren von .NET-serialisierten Gadgets, die beim Deserialisieren mit BinaryFormatter aus JS/VBS/VBA-basierten Skripten das Laden/Ausführen von .NET-Assemblys auslösen können. |
| PPID_Spoof.vba | Kopie von christophetd's spoofing-office-macro |
| AMSIBypass_AmsiScanBuffer_ordinal.vba | AMSI-Bypass von rmdavy zum Patchen von AmsiScanBuffer mittels ordinaler Werte für einen Signatur-Bypass |
| AMSIBypass_AmsiScanBuffer_Classic.vba | Klassischer AmsiScanBuffer-Patch von rasta-mouse |
| AMSIBypass_Heap.vba | Kopie aus dem Repository HeapsOfFun von rmdavy |
| AMSIbypasses.vba | AMSI-Bypass-Blog von outflanknl outflanknl's Blog |
| COMHijack_DLL_Load.vba | Lädt eine DLL mittels COM-Hijacking |
| COM_Process_create.vba | Erstellt einen Prozess mittels COM-Objekt |
| Download_Autostart.vba | Lädt eine Datei von einem entfernten Webserver herunter und legt sie im StartUp-Ordner ab |
| Download_Autostart_WinAPI.vba | Lädt eine Datei von einem entfernten Webserver mittels URLDownloadtoFileA herunter und legt sie im StartUp-Ordner ab |
| Dropper_Autostart.vba | Legt eine Batch-Datei im StartUp-Ordner ab |
| Registry_Persist_wmi.vba | Erstellt einen StartUp-Registrierungsschlüssel zur Persistenz mittels WMI |
| Registry_Persist_wscript.vba | Erstellt einen StartUp-Registrierungsschlüssel zur Persistenz mittels wscript-Objekt |
| ScheduledTask_Create.vba | Erstellt und startet einen geplanten Task zur Codeausführung/Persistenz |
| XMLDOM_Load_XSL_Process_create.vba | Lädt XSL von einem entfernten Webserver, um Code auszuführen |
| regsvr32_sct_DownloadExecute.vba | Führt regsvr32 aus, um eine SCT-Datei von einem entfernten Webserver zur Codeausführung herunterzuladen |
| BlockETW.vba | Patcht EtwEventWrite in ntdll.dll, um die ETW-Datensammlung zu blockieren |
| BlockETW_COMPLUS_ETWEnabled_ENV.vba | Blockiert die ETW-Datensammlung durch Setzen der Umgebungsvariablen COMPLUS_ETWEnabled auf 0, Dank an @xpn |
| ShellWindows_Process_create.vba | ShellWindows-Prozesserstellung, um explorer.exe als übergeordneten Prozess zu erhalten |
| AES.vba | Ein Beispiel zur Verwendung von AES-Verschlüsselung/-Entschlüsselung in VBA von hier |
| Dropper_Executable_Autostart.vba | Holt ausführbare Bytes aus VBA und legt sie im Autostart ab – in diesem Fall kein Download |