Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2024-7479_CVE-2024-7481 — TeamViewer: PoC повышения привилегий от пользователя до ядра. CVE-2024-7479 и CVE-2024-7481. ZDI-24-1289 и ZDI-24-1290. TV-2024-1006. | Kitploit
Инструменты/GitHubGitHub/petergabaldon/cve-2024-7479_cve-2024-7481
Повышение привилегийАнализ уязвимостейЭксплуатацияЭксплуатация Бинарных Файлов
GitHubpetergabaldon/cve-2024-7479_cve-2024-7481

CVE-2024-7479_CVE-2024-7481

TeamViewer: PoC повышения привилегий от пользователя до ядра. CVE-2024-7479 и CVE-2024-7481. ZDI-24-1289 и ZDI-24-1290. TV-2024-1006.

Репозиторий

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
137211 год назадПроверено Kitploit

CVE-2024-7479 и CVE-2024-7481

TeamViewer: повышение привилегий от пользователя до ядра

GitHub Repo stars

Этот репозиторий содержит доказательство концепции эксплуатации уязвимости в TeamViewer, которая позволяет непривилегированному пользователю загрузить произвольный драйвер ядра в систему. Я хотел бы поблагодарить Zero Day Initiative за координацию со мной при ответственном раскрытии уязвимости.

Logo

  • https://www.cve.org/CVERecord?id=CVE-2024-7479
  • https://www.cve.org/CVERecord?id=CVE-2024-7481
  • https://www.zerodayinitiative.com/advisories/ZDI-24-1289/
  • https://www.zerodayinitiative.com/advisories/ZDI-24-1290/
  • https://www.teamviewer.com/en/resources/trust-center/security-bulletins/tv-2024-1006/

Выполнение PoC

Детали

Подробности исследования, которое привело к этим уязвимостям, можно найти в следующей серии блогов из трёх частей на моём сайте. Они описывают эти уязвимости более подробно, а также показывают, где я ошибался в процессе. Третья часть — самая интересная :).

  • https://pgj11.com/posts/Finding-TeamViewer-0days-Part-1/
  • https://pgj11.com/posts/Finding-TeamViewer-0days-Part-2/
  • https://pgj11.com/posts/Finding-TeamViewer-0days-Part-3/

Видео PoC 📺

Видео с эксплуатацией можно найти здесь:

  • https://youtu.be/lUkAMAK-TPI
  • https://youtu.be/3R0aBYd0Qn4
  • https://youtu.be/kOjjFgkJQoc

Краткое описание

После того как стало возможным подделать (просто простая аутентификация, как описано в блоге) легитимный клиент TeamViewer при подключении к IPC-службе SYSTEM, было вызвано произвольная установка драйвера. TeamViewer не проверял подпись устанавливаемого драйвера.

Таким образом, благодаря TeamViewer стала возможна эскалация привилегий от пользователя до ядра (USER to KERNEL).

Один из лучших подходов — использовать хорошо известную технику BYOD (Bring Your Own Vulnerable Driver) для загрузки подписанного драйвера в ядро Windows, а затем эксплуатировать его для выполнения привилегированных действий с уровня пользователя, например, замены токена произвольного процесса на привилегированный.

Когда TeamViewer установлен в системе, он создает службу, работающую как SYSTEM — TeamViewer_service.exe

Эта служба является помощником для клиента в выполнении некоторых задач. Таким образом, клиент не работает с повышенными привилегиями, и некоторые задачи делегируются службе.

Связь со службой (IPC) реализована через сокеты (с использованием Overlapped I/O и IoCompletionPort). По умолчанию службы SYSTEM TeamViewer слушают порт 5939/tcp на localhost.

TeamViewer не фильтрует параметры, отправляемые клиентом для запроса установки драйвера, проверки подписи и т. д.

Итак, идея: мы подделываем клиент TV и запрашиваем установку VPN-драйвера, но указываем другой INF. Я повторно использовал тот же оригинальный INF из TeamViewer, но в другом (непривилегированном) пути, переименовав «плохой» драйвер в teamviewervpn.sys, так как это имя драйвера, которое используется в оригинальном INF.

ВАЖНОЕ ПРИМЕЧАНИЕ

Это также обходит опцию TeamViewer «Для изменений требуются права администратора на этом компьютере».

Эта проверка действует только через GUI, так как опции TeamViewer отключаются при нажатии кнопки непривилегированным пользователем. Но возможно подключиться к сокету и выполнить произвольную загрузку драйвера.

ВАЖНОЕ ПРИМЕЧАНИЕ II

Эксплойт зависит от версии, потому что в сообщении IPC клиент указывает свой PID и другие данные вместе с версией. Версия клиента должна совпадать с версией службы SYSTEM. Эксплойт необходимо изменить (строки 140–143) в Main.cpp на версию TeamViewer_service.exe, которая используется.

Итак, по сути, мы подделываем клиент TeamViewer, подключаясь к службе SYSTEM, и запрашиваем установку произвольного драйвера. Служба TeamViewer любезно загружает его в ядро.

Ветка CVE-2024-7481

У TeamViewer есть другое IPC-сообщение, очень похожее на первое, которое я обнаружил (появляется при нажатии Install VPN Driver). Это другое сообщение предназначено для установки Printer Driver.

Таким образом, по сути, CVE-2024-7479 и CVE-2024-7481 — одно и то же, но TeamViewer совершил одну и ту же ошибку дважды. Сообщения, хоть и разные, но очень похожи. Они имеют разные Method Id в IPC.

Результат тот же — можно загрузить произвольный драйвер.

И всегда помните: «Важно не то, кто я внутри, а то, что я делаю — это определяет меня»

🦇

Linkedin badge Twitter badge

"Buy Me A Coffee"

Скачать инструмент