Лаборатория криминалистики офисного вредоносного ПО — статический анализ в REMnux
Статический анализ двух вредоносных файлов Office, выполненный полностью внутри изолированной виртуальной машины REMnux. Ничего не запускалось — только инспекция.
Настройка
- Виртуальная машина REMnux, без общих папок с хостом
- Инструменты: sha256sum, file, unzip и набор oletools (oleid, olevba, oledump, mraptor)
- Оба образца получены из MalwareBazaar (abuse.ch)
Образец 1: Вредоносный документ Word (.docx)
SHA-256: 68e82279bff55cf3b9f1f22ec4a165b1b1245a359f7e8d86664b2541d8f8d3fe
Что я обнаружил:
- Файл внутри docx (
nste.xml) на самом деле был данными в формате Rich Text Format, замаскированными под XML — само по себе такое несоответствие является тревожным признаком
- Один встроенный объект был исполняемым файлом VBS размером 196 КБ (
419876.vbs)
- Другой встроенный объект соответствовал CVE-2017-11882 — известной уязвимости Equation Editor, которая срабатывает просто при открытии файла, без необходимости в макросах
Вердикт: вредоносный. Это настоящий вооружённый документ, использующий известную RCE для доставки исполняемого файла.
Образец 2: Вредоносный файл Excel (.xlsx)
SHA-256: dc65419ba5d83b980d7018198a14209fa2f5ebf6f99d47bfe9f586852087befe
Что я обнаружил:
- Файл был зашифрован (защищён паролем), что обычно скрывает содержимое макросов от антивирусных сканеров
- В нём было 4 модуля VBA, но все 4 оказались пустыми —
mraptor вернул «Macro OK» без флагов AutoExec/Write/Execute
- Один рабочий лист был скрыт
- В потоке макросов XLM старого стиля, отдельно от слоя VBA, находились строки в hex-кодировке
- Декодирование этих строк не выявило ни шелл-кода, ни URL для загрузки — только некоторые идентификаторы библиотек типов
Вердикт: подозрительный, но неубедительный. Шифрование, скрытый лист и обфусцированные строки выглядят как тактики уклонения, но подтвердить наличие реальной активной полезной нагрузки в слое VBA не удалось. Настоящая полезная нагрузка может находиться в устаревшем слое макросов XLM (который я не полностью реверсировал), либо это может быть неполный/подготовительный образец.
Шаги, которые я выполнил
- Вычислить хеш каждого файла (SHA-256) для обеспечения целостности цепочки хранения
- Проверить реальный тип файла с помощью
file, сравнить с расширением
- Запустить
oleid для быстрой оценки шифрования/макросов/внешних ссылок
- Запустить
oledump для перечисления всех встроенных объектов
- Запустить
olevba для извлечения и декодирования исходного кода VBA
- Запустить
mraptor для проверки поведения макросов с автозапуском
Что это демонстрирует
- Как выявить несоответствие типа файла, используемое для обхода обнаружения
- Как работает CVE-2017-11882 вообще без необходимости в макросах
- Как действительно проверить поведение макросов, а не предполагать его по поверхностным индикаторам
- Почему шифрование + скрытые листы + обфусцированные строки не означают автоматически «подтверждённо вредоносный» — иногда доказательства неубедительны, и об этом стоит говорить прямо
Источники
Автор
Mofolorunsho Adeleke
GitHub: https://github.com/Mo200909