
Этот репозиторий охватывает некоторые методы выполнения кода и обхода антивирусов (AV) для макросов в документах Office.
Готовясь к стриму/видео по обходу AV в VBS, я проводил исследование методов выполнения кода через макросы Office и техник обхода.
Список становился всё длиннее, и я не нашёл централизованного места для шаблонов offensive VBA — поэтому этот репозиторий может служить таким хранилищем. Он очень далёк от полноты. Если вы знаете другие крутые техники или полезные шаблоны, смело вносите свой вклад и создавайте pull request!
Большинство шаблонов в этом репозитории уже были где-то опубликованы. Я просто скопировал большинство шаблонов с сайтов ms-docs, из блог-постов или из других инструментов.
| Файл | Описание |
|---|---|
| ShellApplication_ShellExecute.vba | Выполнить команду ОС через объект ShellApplication и метод ShellExecute |
| ShellApplication_ShellExecute_privileged.vba | Выполнить привилегированную команду ОС через объект ShellApplication и метод ShellExecute - запрос UAC |
| Shellcode_CreateThread.vba | Выполнить шеллкод в текущем процессе через Win32 CreateThread |
| Shellcode_EnumChildWindowsCallback.vba | Выполнить шеллкод в текущем процессе через EnumChildWindows |
| Win32_CreateProcess.vba | Создать новый процесс для выполнения кода через функцию Win32 CreateProcess |
| Win32_ShellExecute.vba | Создать новый процесс для выполнения кода через функцию Win32 ShellExecute |
| WMI_Process_Create.vba | Создать новый процесс через WMI для выполнения кода |
| WMI_Process_Create2.vba | Ещё один пример выполнения кода через WMI |
| WscriptShell_Exec.vba | Выполнить команду ОС через объект WscriptShell и метод Exec |
| WscriptShell_run.vba | Выполнить команду ОС через объект WscriptShell и метод Run |
| VBA-RunPE | Техника RunPE от @itm4n на VBA |
| GadgetToJScript | C#-скрипт от med0x2e для генерации .NET сериализованных гаджетов, которые могут запускать загрузку/выполнение .NET сборок при десериализации с помощью BinaryFormatter из скриптов на JS/VBS/VBA. |
| PPID_Spoof.vba | Копия spoofing-office-macro от christophetd |
| AMSIBypass_AmsiScanBuffer_ordinal.vba | AMSI Bypass от rmdavy для патча AmsiScanBuffer с использованием порядковых номеров для обхода сигнатур |
| AMSIBypass_AmsiScanBuffer_Classic.vba | Классический патч AmsiScanBuffer от rasta-mouse |
| AMSIBypass_Heap.vba | Копия репозитория HeapsOfFun от rmdavy |
| AMSIbypasses.vba | Блог от outflanknl по обходу AMSI |
| COMHijack_DLL_Load.vba | Загрузка DLL через COM-угон |
| COM_Process_create.vba | Создание процесса через COM-объект |
| Download_Autostart.vba | Загрузить файл с удалённого веб-сервера и поместить его в папку автозагрузки |
| Download_Autostart_WinAPI.vba | Загрузить файл с удалённого веб-сервера через URLDownloadtoFileA и поместить его в папку автозагрузки |
| Dropper_Autostart.vba | Сбросить batch-файл в папку автозагрузки |
| Registry_Persist_wmi.vba | Создать ключ реестра автозагрузки для сохранения через WMI |
| Registry_Persist_wscript.vba | Создать ключ реестра автозагрузки для сохранения через объект wscript |
| ScheduledTask_Create.vba | Создать и запустить запланированную задачу для выполнения кода/сохранения |
| XMLDOM_Load_XSL_Process_create.vba | Загрузить XSL с удалённого веб-сервера для выполнения кода |
| regsvr32_sct_DownloadExecute.vba | Выполнить regsvr32 для загрузки SCT-файла с удалённого веб-сервера и выполнения кода |
| BlockETW.vba | Пропатчить EtwEventWrite в ntdll.dll для блокировки сбора данных ETW |
| BlockETW_COMPLUS_ETWEnabled_ENV.vba | Блокировать сбор данных ETW, установив переменную среды COMPLUS_ETWEnabled в 0, спасибо @xpn |
| ShellWindows_Process_create.vba | Создание процесса через ShellWindows, чтобы получить explorer.exe в качестве родительского процесса |
| AES.vba | Пример использования шифрования/дешифрования AES в VBA из этого источника |
| Dropper_Executable_Autostart.vba | Получить байты исполняемого файла из VBA и сбросить в автозагрузку — без загрузки в данном случае |
| MarauderDrop.vba | Сбросить COM-зарегистрированную .NET DLL во временную папку, импортировать функцию и выполнить код — в данном случае загружает удалённый C# бинарник с веб-сервера в память и выполняет его, спасибо @Jean_Maes_1994 за MaraudersMap |
| Dropper_Workfolders_lolbas_Execute.vba | Сбросить встроенный исполняемый файл в каталог TEMP и выполнить его с помощью C:\windows\system32\Workfolders.exe как LOLBAS — спасибо @YoSignals |