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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2017-7184 — Эксплойт Proof-of-concept для локального повышения привилегий через CVE-2017-7184 — переполнение стека в подсистеме XFRM netlink ядра Linux. Демонстрирует злоупотребление пространствами имён и kernel ROP для получения root без sudo. | Kitploit
Инструменты/GitHubGitHub/grish-pradhan/cve-2017-7184
Повышение привилегийАнализ уязвимостейЭксплуатацияОбучение и ОбразованиеЭксплуатация Бинарных Файлов
GitHubgrish-pradhan/cve-2017-7184

CVE-2017-7184

Эксплойт Proof-of-concept для локального повышения привилегий через CVE-2017-7184 — переполнение стека в подсистеме XFRM netlink ядра Linux. Демонстрирует злоупотребление пространствами имён и kernel ROP для получения root без sudo.

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
Репозиторий
7 месяцев назадЕщё не проверено

CVE-2017-7184 – Повышение привилегий в Linux Kernel XFRM (без sudo)

Обзор

Этот репозиторий содержит эксплойт для локального повышения привилегий (proof-of-concept) для CVE-2017-7184, уязвимости ядра Linux в подсистеме netlink XFRM (IPsec).

Эксплойт демонстрирует, как непривилегированный пользователь может получить настоящего root (UID 0), следующим образом:

  1. Создание непривилегированного пространства имён пользователя и сети (user + network namespace)

  2. Получение CAP_NET_ADMIN внутри пространства имён

  3. Вызов переполнения стека ядра при обработке netlink XFRM

  4. Выполнение ROP-цепочки в ядре для вызова:

    • prepare_kernel_cred(NULL)
    • commit_creds()
  5. Безопасное возвращение в пользовательское пространство с полными правами root

Sudo не требуется.


Детали уязвимости

ПолеЗначение
CVECVE-2017-7184
КомпонентЯдро Linux – XFRM Netlink
Тип ошибкиПереполнение стека ядра
ВоздействиеЛокальное повышение привилегий
Вектор атакиЛокальный (непривилегированный пользователь)
Класс эксплойтаЗлоупотребление namespace + ROP
Затрошено сЯдра Linux ≤ 4.8
Исправлено вПатчи ядра, выпущенные в 2017 г.

Стратегия эксплуатации (обзорно)

  1. Непривилегированное пользовательское пространство имён

    • Использует unshare(CLONE_NEWUSER | CLONE_NEWNET)
    • Сопоставляет текущего пользователя с UID 0 внутри пространства имён
    • Предоставляет CAP_NET_ADMIN без sudo
  2. Злоупотребление XFRM Netlink

    • Создаёт сокет NETLINK_XFRM
    • Отправляет повреждённое сообщение XFRM_MSG_NEWSA
    • Вызывает переполнение стека ядра через атрибуты увеличенного размера
  3. Выполнение ROP-цепочки в ядре

    • Перезаписывает стек ядра
    • Выполняет контролируемую ROP-цепочку
    • Повышает привилегии (credentials) в контексте ядра
  4. Возврат в пользовательское пространство

    • Использует swapgs; iretq
    • Запускает интерактивную root-оболочку

Требования

  • Уязвимое ядро Linux (протестировано на 4.8.0-36-generic)
  • unprivileged_userns_clone = 1
  • Символы ядра доступны или известны смещения
  • gcc с поддержкой pthread

Проверка поддержки пространств имён:

root@kitploit:~
cat /proc/sys/kernel/unprivileged_userns_clone

Ожидаемый вывод:

root@kitploit:~
1

Компиляция

root@kitploit:~
gcc exploit.c -o exploit -pthread

Запуск

root@kitploit:~
./exploit

Не используйте sudo.

При успехе вы получите настоящую root-оболочку:

root@kitploit:~
uid=0(root) gid=0(root) groups=0(root)

Определение адресов ядра

Эксплойт пытается:

  1. Получить символы из /proc/kallsyms

  2. Если доступ ограничен, использовать жёстко заданные смещения для:

    • commit_creds
    • prepare_kernel_cred
    • базового адреса ядра

⚠️ ROP-гаджеты и смещения зависят от версии ядра. Для других сборок их необходимо корректировать.


Ожидаемые результаты

Полностью успешный эксплойт

  • UID = 0
  • GID = 0
  • Интерактивная root-оболочка

Частичный успех (система всё ещё уязвима)

  • Создание пространства имён работает
  • Создание XFRM-сокета проходит успешно
  • Эксплойт-нагрузка (payload) отправлена
  • Сбой ядра или отсутствие повышения привилегий

Это по-прежнему подтверждает, что система уязвима.


Ограничения

  • Жёстко заданные ROP-гаджеты (зависят от ядра)
  • Отсутствует обход KASLR, кроме kallsyms
  • Отсутствует обход SMEP/SMAP для укреплённых ядер
  • Ненадёжен на современных ядрах

Меры защиты

  • Обновите ядро до пропатченной версии
  • Отключите непривилегированные пользовательские пространства имён:
root@kitploit:~
sysctl -w kernel.unprivileged_userns_clone=0
  • Включите KASLR, SMEP, SMAP
  • Ограничьте возможности netlink

Отказ от ответственности

Этот код предоставлен только в образовательных целях и для исследований в области безопасности.

  • Не используйте на системах, которыми вы не владеете или на тестирование которых у вас нет разрешения
  • Автор не несёт ответственности за неправомерное использование или ущерб
  • Предназначен для изучения техник эксплуатации ядра

Ссылки

  • CVE-2017-7184
  • Подсистема XFRM ядра Linux
  • Повышение привилегий через пользовательские пространства имён
  • ROP в ядре и эксплуатация commit_creds
Скачать инструмент