Исследование уязвимостей повышения привилегий в антивирусном ПО часто приводит аналитиков к изучению именованных каналов (named pipes). Эти механизмы межпроцессного взаимодействия нередко используются разработчиками для передачи команд от непривилегированных пользователей к службам, работающим с правами SYSTEM. Недавно опубликованная уязвимость CVE-2024-36424 в антивирусе K7 Ultimate Security от компании K7 Computing стала ярким примером подобной проблемы. Анализ, проведённый на версии 17.0.2045, выявил целый ряд недостатков, позволяющих злоумышленнику с ограниченными правами не только отключать защиту, но и получать полный контроль над системой.
Детали уязвимости
Первоначальная рекогносцировка показала, что непривилегированный пользователь не может изменять настройки антивируса через графический интерфейс. Однако при входе под учётной записью администратора обнаружилась возможность разрешить такие действия для всех пользователей без запроса UAC (User Account Control). Этот факт навёл исследователей на мысль об использовании именованного канала для обхода механизмов контроля учётных записей. Инструмент PipeViewer подтвердил догадку, отобразив канал "\\.\pipe\K7MailProxyV1" с избыточными правами доступа. Однако дальнейший флуд случайными данными не принёс результатов.
Прорыв произошёл при использовании инструмента IoNinja для перехвата трафика. Оказалось, что при установке флажка "Non Admin users can change settings and disable protection" процесс "K7TSMain.exe" отправляет бинарные данные по каналу "K7TSMngrService1" службе "K7TSMngr", работающей от имени SYSTEM. Эта операция изменяла соответствующий ключ в реестре. Перехваченный пакет данных можно было повторить с помощью простого скрипта на PowerShell, что немедленно давало любому пользователю возможность отключать модули защиты, настраивать исключения и фактически нейтрализовать антивирус.
Однако настоящая эскалация заключалась в возможности произвольной записи в реестр. Анализ бинарного пакета показал, что перед данными реестрового ключа расположен байт, указывающий на длину всего пакета. Изменяя этот байт и подменяя содержимое, исследователи смогли манипулировать любыми ключами от имени SYSTEM. Для получения полного контроля был использован классический метод IFEO (Image File Execution Options). Специально сформированный пакет изменял ключ "Debugger" для исполняемого файла "K7TSHlpr.exe", указывая в качестве отладчика командный файл, создающий нового администратора. Поскольку процесс обновления антивируса запускается с высокими привилегиями, это привело к мгновенному повышению прав.
Вендор оперативно отреагировал на отчёт, выпустив серию патчей, однако каждый из них был успешно обойдён. Первое исправление добавило проверку легитимности клиентского процесса, подключающегося к каналу. Обход был достигнут путём ручного маппинга (manual mapping) DLL в легитимный процесс "k7tsmngr.exe". Второй патч, реализованный в драйвере "K7Sentry.sys" версии 22.0.0.70, блокировал инъекцию в защищённые процессы. Однако оказалось, что не все исполняемые файлы K7, например "K7QuervarCleaningTool.exe", попали в список защищаемых, что снова открыло путь для эксплуатации.
Третий, наиболее сложный патч, заставил исследователей углубиться в анализ корневых причин. Было обнаружено, что сервер именованного канала в "K7TSMNGR.exe" проводит три проверки: нахождение клиентского исполняемого файла в директории установки антивируса, проверку MD5-хеша и верификацию цифровой подписи K7 Computing. Одновременно драйвер "K7Sentry" защищал процессы, чьи имена были перечислены в ключе реестра "VDefProtectedProcs" или которые находились в стандартной директории установки и начинались на "K7". Таким образом, для успешной атаки требовался любой бинарный файл, подписанный K7, переименованный и расположенный вне защищённой директории.
Хронология раскрытия уязвимости, начавшаяся в августе 2025 года, демонстрирует сложный процесс взаимодействия исследователей и вендора. Несмотря на оперативные ответы и выпуск исправлений, фундаментальная проблема - использование именованного канала с недостаточной проверкой ACL (Access Control List) - остаётся нерешённой и отложена до будущих мажорных версий продукта. Этот кейс наглядно показывает, что даже встроенные механизмы безопасности, такие как самозащита антивируса, могут быть использованы против самой системы, если архитектурно заложены ошибки управления привилегиями.
Ссылки
- https://www.cve.org/CVERecord?id=CVE-2024-36424
- https://support.k7computing.com/index.php?/selfhelp/view-article/Advisory-issued-on-5th-aug-2024-417
