Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
vba2clr — Запуск .NET из VBA | Kitploit
Инструменты/GitHubGitHub/med0x2e/vba2clr
Скриптинг и автоматизацияПост-эксплуатацияRed TeamingРазработка Полезной НагрузкиСостязательная Атака
GitHubmed0x2e/vba2clr

vba2clr

Запуск .NET из VBA

Репозиторий
1472053 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

TLDR:

Просто экспериментирую с различными способами загрузки CLR (.NET) сборок в VBA локально и удалённо с помощью AppDomain.ExecuteAssembly или любого другого удобного метода после обхода AccessVBOM (программный доступ к проекту Visual Basic не является доверенным) из VBA.

  • vba2clr.*.vba:
    • Устанавливает значение реестра AccessVBOM равным 1
    • Создаёт COM-объект Word.Application (может быть Excel.Application, MS PowerPoint, Access и т.д.).
    • Добавляет макрос из строки (макрос соответствует ExecuteAssembly.vba, закодированному в base64/hex)
    • Запускает макрос ExecuteAssembly.vba с помощью wordObj.Application.Run...

.NET из VBA:

  • ExecuteAssembly.clr.2.0.vba: до .NET 3.5

    • Добавляет необходимые ссылки на mscordlib
    • Создаёт экземпляры требуемых объектов (, )
Скачать инструмент
IDomain
ICRHost
  • Упаковывает необходимые аргументы AppDomain.ExecuteAssembly в два отдельных массива (переменные, типы).
  • Использует DispCallFunc для вызова AppDomain.ExecuteAssembly(Arg1, Arg2) (смещение в VFTable 51), где Arg1 — это «URL сборки .NET» или «локальный путь», а Arg2 — возвращаемое значение.
  • Смещения методов AppDomain в VFTable можно проверить в IDL AppDomain _AppDomain.idl; учтите, что интерфейс AppDomain наследуется от интерфейса IUnknown, поэтому смещения функций/методов в VTable начинаются с третьего смещения, поскольку у интерфейсов, наследуемых от IUnknown, первые 3 записи в vtable — это методы QueryInterface, AddRef, Release.
  • WinDbg или IDA также можно использовать как альтернативу для извлечения смещений функций/методов в VTable.
  • ExecuteAssembly.clr.x.vba: поддерживает .NET 2, 3.5 и 4.x

  • Заметки по OPSEC:

    • Создание COM-объекта Word.Application (или Excel.Application и т.д.) приведёт к запуску дополнительного процесса WinWord.exe как дочернего процесса svchost.exe, а не основного процесса WinWord.exe.
    • Ключ реестра AccessVBOM изменяется/восстанавливается через COM с помощью WScript.Shell; использование win32 API может быть лучшей альтернативой.
    • Размещение CLR с помощью win32 API в VBA, очевидно, безопаснее, чем обновление ключа реестра AccessVBOM; оставлю это на другой день...
    • Другие .NET API, такие как System.CodeDom.Compiler, можно использовать для компиляции/выполнения кода c# из VBA, см. ссылку ниже;

    Ссылки:

    • https://github.com/jet2jet/vb2clr
    • https://github.com/med0x2e/NET-Assembly-Inject-Remote