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

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

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

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

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

Категории

Все категории
Loading categories
MaldocTrace — Анализатор защитных макросов Office на Go: извлекает VBA, деобфусцирует его и эмулирует в полностью смоделированной песочнице для восстановления команд, PowerShell, шелл-кода и сброшенных полезных нагрузок без выполнения образца. | Kitploit
Инструменты/GitHubGitHub/debugactiveprocess/maldoctrace
Оборонительные ИнструментыСтатический анализДинамический анализ (песочница)Анализ уязвимостейАнализ КодаОбратная инженерияФорензикаФаззингАнализ вредоносных программ

Популярное

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

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

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

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

Смотреть все инструменты →
GitHubdebugactiveprocess/maldoctrace

MaldocTrace

Анализатор защитных макросов Office на Go: извлекает VBA, деобфусцирует его и эмулирует в полностью смоделированной песочнице для восстановления команд, PowerShell, шелл-кода и сброшенных полезных нагрузок без выполнения образца.

Репозиторий
15 ч 16 мин назадЕщё не проверено
Поделиться

MaldocTrace

MaldocTrace — это защитный анализатор вредоносных документов Office, написанный на Go. Он извлекает макросы VBA и Excel 4.0 (XLM), восстанавливает обфусцированные строки и эмулирует макросы в полностью симулированной среде. В выходных данных сообщается, что документ сделал бы: какие команды он запустил бы, какие полезные нагрузки декодировал бы и какие файлы создал бы. Всё это подкреплено доказательствами, указывающими на модуль, процедуру и строку (или лист и ячейку), которые это породили.

Документы без макросов также охватываются. Удалённая инъекция шаблонов, поля DDE, связанные и внедрённые объекты OLE (включая эксплойты Equation Editor в RTF), изображения-приманки с гиперссылками и VBA stomping сообщаются как статические находки.


Возможности

  • Извлечение контейнеров: OLE/CFB (.doc, .xls, .ppt), OOXML (.docx, .docm, .xlsx, .xlsm, .pptm), RTF и необработанный текст VBA. Включает распаковку MS-OVBA, свойства элементов управления UserForm и ограничения ресурсов против zip-бомб и повреждённых контейнеров.
  • Макросы Excel 4.0 (XLM):
    • макролисты из .xls (формулы BIFF8, декомпилированные из разобранных токенов с использованием таблиц функций MS-XLS) и .xlsm, включая скрытые и очень скрытые листы;
    • интерпретатор XLM, который запускается с Auto_Open (любое имя, которое выполнил бы Excel). Он отслеживает GOTO, RUN, IF, WHILE/FOR/NEXT, ON.TIME и RETURN, а также применяет FORMULA/FORMULA.FILL/SET.VALUE/SET.NAME, поэтому самодекодирующиеся макросы восстанавливают свой реальный код;
    • имитация EXEC, CALL, REGISTER и псевдонимов (URLDownloadToFileA, ShellExecuteA, WinExec, CreateProcessA) и FOPEN/FWRITE. Антипесочные проверки (GET.WORKSPACE, GET.WINDOW, GET.CELL) получают правдоподобные ответы с пометкой «симулировано»;
    • формулы, записанные во время выполнения, перечисляются как деобфусцированный макрос.
  • Статические находки (эмуляция не требуется):
    • внедрение удалённого шаблона (attachedTemplate, RTF \*\template);
    • внешние OLE-объекты, включая моникеры MHTML (CVE-2021-40444) и ms-msdt (Follina);
    • поля DDE/DDEAUTO (включая закодированные через QUOTE) и формулы и ссылки DDE Excel;
    • встроенные объекты RTF, декодированные так, как их читает Word (обфусцированный \objdata, повреждённые заголовки OLE1), с обнаружением эксплойта Equation Editor: переполнение MTEF FONT (CVE-2017-11882 / CVE-2018-0802) и переполнение MATRIX (CVE-2018-0798), а также извлечение следующих за ними байтов;
    • гиперссылки на изображениях и ячейках, а также приманки в виде QR-кодов;
    • VBA stomping: строковые литералы, скомпилированные в p-code, но отсутствующие в исходном коде, означают, что показанный исходный код — не тот код, который выполняет Office. Эти литералы выводятся в отчёт и проверяются на индикаторы.
  • Места сокрытия полезной нагрузки: значения ячеек (Sheets("x").Range("A1"), Cells(r, c)), свойства документа (BuiltInDocumentProperties("Comments"), пользовательские свойства), переменные документа (ActiveDocument.Variables) и элементы управления UserForm (TextBox.Text, Label.Caption) — всё это доступно эмулируемому макросу.
  • Текст тела документа: извлекается из Word 97-2003 (piece table) и .docx. Дропперы часто прячут полезную нагрузку в теле документа и считывают её обратно через ActiveDocument.Paragraphs(n).Range.Text.
  • Интерпретатор VBA: лексер, парсер и ограниченный интерпретатор, охватывающий подмножество VBA, на которое полагается вредоносное ПО: процедуры, параметры ByRef, именованные аргументы, условная компиляция, циклы, массивы и встроенные строковые функции.
  • Статическая деобфускация: свёртка констант для Chr/StrReverse/Replace/конкатенации. Каждое значение фиксирует, как оно было восстановлено (concatenation+Chr, StrReverse, ...).
  • Симулированное окружение:
    • процессы: WScript.Shell, Shell, WMI Win32_Process.Create (как через GetObject, так и через CreateObject("winmgmts:..."))
    • файлы и сеть: FileSystemObject, ADODB.Stream, XMLHTTP/WinHttp
    • скриптовые движки: MSScriptControl.ScriptControl
    • объектная модель документа Word: Paragraphs, Range, Delete, SaveAs2
    • объектная модель Excel (Sheets, Worksheets, Range, Cells, Offset), общая с движком XLM, и ExecuteExcel4Macro/Application.Run в макролисты
    • объявленные Windows API с симулированными указателями VarPtr
  • Восстановление полезной нагрузки:
    • декодирование PowerShell -EncodedCommand со статической свёрткой конкатенаций 'ht'+'tp' перед извлечением URL
    • буферы шелл-кода UTF-7, передаваемые в MultiByteToWideChar(CP_UTF7)
    • certutil -decode, воспроизводимый поверх виртуальной файловой системы, построенной из того, что записал макрос
    • скрипты, передаваемые в ScriptControl.AddCode, выводятся как скриптовые полезные нагрузки, а не как командные строки
    • идентификация PE/ZIP/OLE/PDF по заголовкам файлов
  • Провенанс повсюду: команды, полезные нагрузки и индикаторы несут идентификаторы доказательств (event-3, command-1, payload-1) и местоположения в исходнике. Вторичные представления ссылаются на элемент по его ID вместо повторения крупных блоков данных.
  • Устойчивость к враждебным входным данным: каждый этап конвейера восстанавливается после паник и фиксирует сбой как диагностику. Таким образом, плохой образец никогда не прерывает пакетный запуск. Конвейер VBA и парсеры контейнеров проходят фаззинг-тестирование.

Загрузка

Готовые бинарные файлы для Windows, Linux и macOS (x64 и ARM64) доступны на странице Releases вместе с контрольными суммами SHA-256. Примечания к каждому релизу берутся из CHANGELOG.md.

Сборка

Требуется Go 1.23+.

go build -o maldocTrace ./cmd/maldoctrace

В Windows:

go build -o maldocTrace.exe ./cmd/maldoctrace

Использование

maldocTrace inspect <file>
maldocTrace extract <file> --out <dir> [--force]
maldocTrace analyze <file> [--format json|text|jsonl] [--timeout 30s] [--max-steps N]
                           [--input-format vba] [--show-strings] [--dump-payloads DIR]
maldocTrace analyze <dir> --recursive [--format jsonl] [--workers N]
maldocTrace version
ПараметрОписание
--format textОтчёт, удобный для чтения человеком (по умолчанию).
--format jsonПолный версионированный JSON-отчёт (схема 1.3.0). Всегда включает индикаторы, диагностику, декодированные строки и полное содержимое полезной нагрузки.
--format jsonlОдин JSON-отчёт на строку, для пакетного анализа с --recursive.
--show-stringsТолько для текстового формата. Выводит восстановленные строки без дубликатов, с указанием каждого вхождения модуля/процедуры/строки и метода восстановления.
--dump-payloads DIRЗаписывает декодированные полезные нагрузки и файлы, сброшенные макросом, в DIR/<input-sha256>/ вместе с manifest.json. Файлы получают нейтральные расширения (.bin, .txt), поэтому ничего не может запуститься при двойном щелчке. Существующие файлы никогда не перезаписываются.
--input-format vbaАнализировать файл VBA в виде простого текста.
--timeout, --max-stepsБюджет времени на файл и бюджет шагов интерпретатора.

Коды выхода: 0 — успех (даже если образец вредоносный), 1 — ошибка анализа или внутренняя ошибка, 2 — ошибка использования.


Примеры

Четыре отчёта ниже получены из реальных вредоносных документов и показывают основные пути восстановления. Длинные блоки данных сокращены с помощью …. Полные значения приведены в выводе JSON.

1. Загрузчик шелл-кода в UTF-7 (MultiByteToWideChar → EnumUILanguages)

Скачать инструмент