
Уязвимость BDU:2025-00670 обхода механизма Mark-of-the-Web в 7-Zip
Уязвимость BDU:2025-00670 (CVE-2025-0411, ZDI-25-045, ZDI-CAN-25456) в архиваторе 7-Zip позволяет обойти механизм Mark-of-the-Web (MOTW).
Mark-of-the-Web (MOTW) — механизм безопасности Windows, помечающий файлы из ненадёжных источников (например, интернета) через альтернативный поток данных NTFS (Zone.Identifier
со значением ZoneId=3
). Это активирует предупреждения SmartScreen и ограничивает выполнение скриптов или макросов.
Затронутые версии: 7-Zip до 24.09.
В уязвимых версиях при распаковке вложенных архивов (например, ZIP внутри 7z) MOTW не распространяется на извлечённые файлы. Это позволяет злоумышленникам скрыть вредоносный код, упакованный в двойной архив, и выполнить его без предупреждений.
Технический механизм эксплуатации
1. Подготовка вредоносного архива
-
Двойное архивирование: Злоумышленник создаёт архив (например,
inner.zip
), содержащий вредоносный исполняемый файл (например,malware.exe
). Этот архив упаковывается во внешний 7z-архив (outer.7z
). При загрузкеouter.7z
из интернета браузер добавляет к нему MOTW. -
Обход MOTW: При распаковке
outer.7z
7-Zip (версии <24.09) не копирует MOTW наinner.zip
и его содержимое. В результатеmalware.exe
извлекается без метки безопасности.
2. Векторы атаки
-
Фишинг: Архив рассылается через письма, маскирующиеся под документы (например, «Список.doс» с использованием кириллической «с» для обмана пользователя).
-
Homoglyph-атаки: Подмена символов в расширениях файлов (например,
.doc
→.doс
с кириллической «с») для имитации легитимных документов.
3. Выполнение кода
Пример шеллкода для запуска calc.exe
(демонстрационный PoC):
#include <windows.h>
// Шеллкод для calc.exe
unsigned char p[] = { ... };
int main() {
void *payload_mem = VirtualAlloc(0, sizeof(p), MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);
RtlMoveMemory(payload_mem, p, sizeof(p));
VirtualProtect(payload_mem, sizeof(p), PAGE_EXECUTE_READ, &oldprotect);
CreateThread(0, 0, (LPTHREAD_START_ROUTINE)payload_mem, 0, 0, 0);
return 0;
}
Этапы работы:
-
Выделение памяти:
VirtualAlloc
резервирует область с правами на запись. -
Копирование шеллкода:
RtlMoveMemory
размещает код в памяти. -
Изменение прав доступа:
VirtualProtect
разрешает выполнение кода. -
Создание потока:
CreateThread
запускает вредоносный код.
Реальные кейсы эксплуатации
-
Атаки: Хакерские группы использовали BDU:2025-00670 для распространения SmokeLoader через фишинговые письма, маскирующиеся под документы госучреждений.
-
Метод доставки: Внешний архив содержал внутренний файл с поддельным расширением (например,
.url
), который перенаправлял на сервер злоумышленника для загрузки вредоносного ПО.
Рекомендации по защите
-
Обновление 7-Zip: Установите версию 24.09 или новее, где MOTW корректно распространяется на вложенные архивы.
-
Ограничение выполнения файлов:
-
Используйте Group Policy для блокировки запуска файлов из временных папок браузера.
-
Настройте Microsoft Office на открытие файлов в Protected View.
-
-
Обучение пользователей:
-
Расскажите о рисках homoglyph-атак (например, подмене символов в расширениях).
-
Тренируйте распознавание фишинговых писем.
-
-
Мониторинг и анализ:
-
Внедрите EDR-решения для детектирования подозрительной активности (например, массовое создание архивов).
-
Анализируйте логи 7-Zip на предмет аномальных операций распаковки.
-
