
Обход CVE-2020-1048: PoC подмены бинарных файлов
Пелег Хадар (@peleghd) и Томер Бар из SafeBreach (@safebreach) были отмечены Microsoft в рамках CVE-2020-1048 — уязвимости диспетчера очереди печати Windows, которая позволяет повышать привилегии в Windows 7 и более поздних версиях.
Некоторые детали были раскрыты Алексом Ионеску (@aionescu) и Ярден Шафир (@yarden_shafir) в их отличном посте в блоге PrintDemon: Print Spooler Privilege Escalation, Persistence & Stealth (CVE-2020-1048 & more). Используя эти знания, я нашёл обход патча с помощью точек соединения (junction points) и символических ссылок Windows (спасибо Джеймсу Форшоу @tiraniddo).
Мой отчёт оказался дубликатом, поскольку корневая причина уже была ранее сообщена кем-то другим, и отчёту был присвоен CVE-2020-1337 — действительно клёвый CVE :-)
Этот код на C# позволяет разместить вредоносную DLL в локальном каталоге C:\windows\system32, чтобы она была загружена приложением или службой, уязвимыми к перехвату DLL (DLL hijacking).
Пост в блоге: CVE-2020-1337: мои два цента; также на испанском.
Используйте Visual Studio, чтобы получить самодостаточный (self-contained) бинарный файл. Магия осуществляется с помощью следующих пакетов NuGet:
Поместите бинарный файл и ваш вредоносный файл в один и тот же путь и выполните первый шаг:

Вручную перезагрузите систему и выполните второй шаг, чтобы наконец разместить вашу DLL под её конечным именем:
