
Доказательство концепции эксплуатации CVE-2019-6440, обеспечивающее повышение привилегий до SYSTEM в антивирусе Zemana через перехват обновлений методом man-in-the-middle и клонирование цифровой подписи.
Проверенные продукты:
Zemana antimalware v.2.74.2.150 и Zemana antilogger v.2.74.204.150.
Исправлено начиная с v.2.74.2.664
Об уязвимости:
Эта уязвимость позволяла атакующим получать привилегии SYSTEM на целевых машинах без взаимодействия с пользователем.
Требования:
1. Атакующий должен иметь возможность перехватывать и изменять содержимое POST-запроса к URL "POST /api/client/settings/"
2. Физический доступ к целевому ПК не требуется.
Подробности:
Проверенные продукты используют обычный HTTP для получения обновлений, поэтому атакующий может легко изменить версию и соответствующий URL на произвольные значения.
Давайте изменим URL обновления на наш простой шелл (Рис.0 и прил.1).

Рис.0
Антивирус сообщает, что цифровая подпись обновления не может быть проверена. Но он позволяет пользователю запустить его В ЛЮБОМ СЛУЧАЕ(рис.1). Если пользователь имеет пользовательские права, то он может получить права SYSTEM(Рис.2).

Рис.1. Хотите запустить неизвестный файл с правами SYSTEM?

Рис.2. Права системы.
Но это предупреждение можно обойти.
Для этого нам нужна копия цифровой подписи ZAM.exe. Давайте клонируем её(каталог Security).
Теперь у нас есть наш шелл с клоном цифровой подписи Zemana, и ОС не может его проверить. (Рис 3).

Рис.3. Неверная подпись.
Теперь посмотрим на функцию "ZmnAppUpdater".
Мы видим, что результат SignatureChecker игнорируется. (Рис.4)

Рис.4. Потерянная проверка.
EAX = 0x80096010 (TRUST_E_BAD_DIGEST).

Рис.5. Демо-gif.