
Генератор вредоносных DOCX, использующий CVE-2021-40444 (Microsoft Office Word RCE) с загрузкой DLL на основе CAB и цепочками атак RAR/WSF без CAB для тестирования на проникновение.
Вредоносный генератор docx для эксплуатации CVE-2021-40444 (удаленное выполнение кода в Microsoft Office Word), работает с произвольными DLL-файлами.
Хотя в интернете уже есть много PoC, я решил попробовать вооружить эту уязвимость, так как найденные мной материалы не содержали ценной информации, которую стоило бы распространять, учитывая также, что Microsoft уже выпустила патч для этой уязвимости.
На данный момент единственными ценными ресурсами для создания полностью рабочего генератора я считаю:
Вышеуказанные ресурсы описывают многие требования, необходимые для создания полной цепочки. Чтобы не повторять слишком много ненужной информации, я просто резюмирую relevant детали.
Существует довольно много упущенных требований для работы этой эксплуатации, из-за чего даже хорошие PoC, например этот от lockedbyte, не работали должным образом.
Возможно, никто явно не «выпускал» их, чтобы избежать более широкой эксплуатации уязвимости. Но теперь она заплатчена, поэтому разглашение деталей не должно вызывать больших проблем.
Согласно этому твиту от Will Dormann, HTML должен быть размером не менее 4096 байт, чтобы вызвать «Предпросмотр» в MS Word.
CAB-файл должен быть пропатчен на уровне байтов, чтобы избежать ошибок извлечения и добиться ZipSlip:
filename.inf должен стать ../filename.inffilename.inf coffCabStartCFFOLDER.typeCompress CFFOLDER.coffCabStart должен быть увеличен на 3 (из-за добавленного '../')CFFOLDER.cCfData CFFILE.cbFile должен быть больше, чем весь CFHEADER.cbCabinetCFDATA.csum Причин для этих ограничений много, и я не потратил достаточно времени, чтобы глубоко понять их все, но давайте рассмотрим самые важные:
ПРИМЕЧАНИЕ1: Defender теперь обнаруживает, содержит ли CAB-файл PE, используя значение _IMAGE_DOS_HEADER.e_magic в качестве сигнатуры, что потенциально предотвращает встраивание PE-файлов в CAB. Можно ли обойти эту сигнатуру? Я не уверен, но, как уже отмечалось, это заплаченная уязвимость, поэтому я не планирую тратить на это много времени. Любопытный читатель может развить эту тему дальше.
ПРИМЕЧАНИЕ2: Патч Microsoft блокирует произвольные URI-схемы, по-видимому, используя подход чёрного списка (это всего лишь предположение)
Основная цепочка атак, связанная с CVE-2021-40444, — это DLL-атака, загружаемая через URI-схему .cpl. Чтобы её использовать, злоумышленнику нужно создать специально crafted DLL. Если хотите протестировать, попробуйте мой скрипт evildll-gen.
Как отметил Max Maluin, можно взаимодействовать с различными типами файлов, используя IE и связанные с расширениями файлов URI. Хотя это может быть хорошим способом эксплуатации IE, у него есть ограничения.
Действительно, следует отметить, что метод, используемый в эксплуатации для загрузки файлов, основан на обновлениях элементов управления ActiveX и не может использоваться для загрузки произвольных файлов.
Согласно документации Microsoft, тег codebase может указывать только на несколько типов файлов: OCX, INF и CAB.
Даже если мы можем напрямую загрузить OCX или INF-файл, мы всё равно не можем быть уверены, что файл будет загружен в нужное место в системе. С помощью CAB-эксплойта можно переместить .inf-файл в известный путь, используя path traversal, но в любом другом случае файл будет сохранён в случайном каталоге, что делает его практически невозможным для ссылки.
На сегодняшний день я не нашёл способа объединить загрузку и выполнение БЕЗ CAB-файла.
Примечание: Говоря только об IE, HTML-смаглинг мог бы быть возможным сценарием для эксплуатации уязвимости.
Эта техника была впервые раскрыта Eduardo Braun в Twitter и подробно объяснена в этой статье.
Обратите внимание, что при использовании этой техники цепочка атак немного отличается. Эта атака требует, чтобы пользователь загрузил специально созданный RAR-файл, полученный путем объединения валидного WSF-скрипта и валидного RAR-файла. После открытия RAR будет содержать DOCX со ссылкой на HTML, который, в свою очередь, попытается загрузить RAR-файл как WSF-скрипт.
Вкратце:
Утилита генератора в настоящее время может воспроизводить следующие атаки: