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

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

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

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

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

Категории

Все категории
Loading categories
msidump — MSI Dump - инструмент, который анализирует вредоносные установочные пакеты MSI, извлекает файлы, потоки, двоичные данные и включает сканер YARA. | Kitploit
Инструменты/GitHubGitHub/mgeeky/msidump
Статический анализФорензикаАнализ вредоносных программАнализ Бинарных Файлов
GitHubmgeeky/msidump

msidump

MSI Dump - инструмент, который анализирует вредоносные установочные пакеты MSI, извлекает файлы, потоки, двоичные данные и включает сканер YARA.

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

Популярное

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

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

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

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

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

msidump

MSI Dump - инструмент, который анализирует вредоносные установочные пакеты MSI, извлекает файлы, потоки, двоичные данные и использует YARA-сканер.

Для документов Office с поддержкой макросов мы можем быстро использовать oletools mraptor, чтобы определить, является ли документ вредоносным. Если нужно проанализировать его глубже, можно применить oletools olevba или oledump.

Для анализа вредоносных файлов MSI до сих пор у нас был только один, но надёжный и заслуживающий доверия инструмент lessmsi. Однако lessmsi не реализует функции, которые я искал:

  • быстрый триаж
  • извлечение двоичных данных
  • сканирование YARA

Вот здесь на сцену и выходит msidump.

Возможности

Этот инструмент помогает как в быстром триаже, так и в детальном анализе коллекций вредоносных MSI. Он позволяет нам:

  • Быстро определить, является ли файл подозрительным или нет.
  • Вывести список всех таблиц MSI, а также дамп конкретных записей
  • Извлечь двоичные данные, все файлы из CAB-архивов, скрипты из CustomActions
  • Сканировать все внутренние данные и записи с помощью правил YARA
  • Использует определение типа file/MIME для определения типа внутренних данных

Он был создан как вспомогательный инструмент к статье в блоге, которую я опубликовал здесь:

  • MSI Shenanigans. Part 1 - Offensive Capabilities Overview

Ограничения

  • Программа всё ещё находится на ранней стадии альфа-версии, ожидается, что что-то может сломаться, а логика триажа/парсинга изменится.
  • Из-за сильной зависимости этого инструмента от интерфейсов Win32 COM WindowsInstaller.Installer, в настоящее время невозможно поддерживать нативные платформы Linux. Возможно, wine python msidump.py может помочь, но я этого ещё не пробовал.

Примеры использования

  1. Выполнить быстрый триаж подозрительного MSI с использованием YARA-правила:
root@kitploit:~
cmd> python msidump.py evil.msi -y rules.yara

1.png

Здесь мы видим, что входящий MSI содержит подозрительный VBScript и множество исполняемых файлов.

  1. Теперь мы хотим подробнее рассмотреть этот VBScript, извлекая только эту запись. Из таблицы триажа мы видим, что она была в таблице Binary. Давайте получим её:
root@kitploit:~
python msidump.py putty-backdoored.msi -l binary -i UBXtHArj

Мы можем указать, какую запись дампить, либо по её имени/ID, либо по номеру индекса (здесь это было бы 7).

2.png

Давайте посмотрим на другой пример. На этот раз в таблице Binary хранится исполняемый файл, который будет выполнен во время установки:

3.png

Чтобы извлечь этот файл, мы воспользуемся

root@kitploit:~
python msidump.py evil2.msi -x binary -i lmskBju -O extracted

Где

  • -x binary указывает извлечь содержимое таблицы Binary
  • -i lmskBju указывает, какую именно запись извлечь
  • -O extracted задаёт выходной каталог

4.png

Для наилучшего отображения результатов запустите инструмент в развёрнутом окне консоли или перенаправьте вывод в файл:

root@kitploit:~
python msidump.py [...] -o analysis.log

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

root@kitploit:~
PS D:\> python .\msidump.py --help
options:
  -h, --help            show this help message and exit

Required arguments:
  infile                Input MSI file (or directory) for analysis.

Options:
  -q, --quiet           Surpress banner and unnecessary information. In triage mode, will display only verdict.
  -v, --verbose         Verbose mode.
  -d, --debug           Debug mode.
  -N, --nocolor         Dont use colors in text output.
  -n PRINT_LEN, --print-len PRINT_LEN
                        When previewing data - how many bytes to include in preview/hexdump. Default: 128
  -f {text,json,csv}, --format {text,json,csv}
                        Output format: text, json, csv. Default: text
  -o path, --outfile path
                        Redirect program output to this file.
  -m, --mime            When sniffing inner data type, report MIME types

Analysis Modes:
  -l what, --list what  List specific table contents. See help message to learn what can be listed.
  -x what, --extract what
                        Extract data from MSI. For what can be extracted, refer to help message.

Analysis Specific options:
  -i number|name, --record number|name
                        Can be a number or name. In --list mode, specifies which record to dump/display entirely. In --extract mode dumps only this particular record to --outdir
  -O path, --outdir path
                        When --extract mode is used, specifies output location where to extract data.
  -y path, --yara path  Path to YARA rule/directory with rules. YARA will be matched against Binary data, streams and inner files

------------------------------------------------------

- Что можно вывести:
    --list CustomAction     - Конкретная таблица
    --list Registry,File    - Вывод нескольких таблиц
    --list stats            - Вывод статистики базы данных MSI
    --list all              - Все таблицы и их содержимое
    --list olestream        - Вывод всех OLE-потоков и хранилищ.
                              Для отображения CAB-файлов, встроенных в MSI, попробуйте: --list _Streams
    --list cabs             - Вывод встроенных CAB-файлов
    --list binary           - Вывод двоичных данных, встроенных в MSI для собственных целей.
                              Обычно включает EXE, DLL, VBS/JS скрипты и т.д.

- Что можно извлечь:
    --extract all           - Извлекает двоичные данные, все файлы из CAB-архивов, скрипты из CustomActions
    --extract binary        - Извлекает двоичные данные
    --extract files         - Извлекает файлы
    --extract cabs          - Извлекает CAB-архивы
    --extract scripts       - Извлекает скрипты

------------------------------------------------------

Планы

  • Логика триажа всё ещё немного нестабильна, я не очень горжусь ею. Поэтому она будет подвергаться постоянным переработкам и дальнейшим доработкам.
  • Протестировать на более широкой выборке тестовых образцов.
  • Добавить поддержку входных ZIP-архивов с паролями.
  • Добавить поддержку обработки целой папки с YARA-правилами вместо работы только с одним файлом.
  • В настоящее время инструмент сопоставляет вредоносные CustomAction Type на основе оценки их номеров, что может быть обойдено.
    • Необходимо переработать этот механизм, чтобы правильно обрабатывать номер типа и раскладывать его на флаги.

Название инструмента

Видимо, при выборе названия для своего инструмента я не подумал проверить, не занято ли оно уже. Существует другой инструмент с именем msidump, входящий в состав пакета GNU msitools:

  • msidump

☕ Поддержать ☕

Этот и другие проекты — результат бессонных ночей и большого труда. Если вам нравится то, что я делаю, и вы цените, что я всегда отдаю что-то сообществу, рассмотрите возможность купить мне кофе (или лучше пиво) просто чтобы сказать спасибо! 💪


root@kitploit:~
Mariusz Banach / mgeeky, (@mariuszbit)
<mb [at] binary-offensive.com>
Скачать инструмент