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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-31431 — Эксплойт для повышения привилегий в ядре для CVE-2026-31431, использующий интерфейс AF_ALG для перезаписи /bin/su и запуска root-оболочки. Включает реализацию на C и руководство по устранению неполадок. | Kitploit
Инструменты/GitHubGitHub/0xshe/cve-2026-31431
Повышение привилегийФреймворки для эксплойтовЭксплуатацияОбучение и ОбразованиеЭксплуатация Бинарных Файлов
GitHub0xshe/cve-2026-31431

CVE-2026-31431

Эксплойт для повышения привилегий в ядре для CVE-2026-31431, использующий интерфейс AF_ALG для перезаписи /bin/su и запуска root-оболочки. Включает реализацию на C и руководство по устранению неполадок.

Репозиторий
40203 месяцев назадПроверено Kitploit

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться

Автор: 0xShe

Язык / 语言

  • English: https://github.com/0xShe/CVE-2026-31431/blob/main/README.md
  • 中文: https://github.com/0xShe/CVE-2026-31431/blob/main/README-CN.md 1

Руководство по инструменту повышения привилегий ядра CVE-2026-31431

0x01 Быстрый старт

В некоторых целевых средах Python не установлен, поэтому данная логика повышения привилегий была переписана на C.

  1. Компиляция

Выполните следующую команду на вашей Linux-машине или в WSL (рекомендуется использовать -static, чтобы избежать проблем с версиями GLIBC):

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

2. Развёртывание и запуск

Загрузите полученный бинарный файл на целевую машину:

root@kitploit:~
chmod +x exploit
./exploit

Если эксплойт сработает, программа автоматически выполнит su и запустит root-оболочку напрямую, без запроса пароля.


0x02 Логика повышения привилегий: как это работает?

Данный эксплойт использует логическую ошибку в интерфейсе AF_ALG ядра Linux (Kernel Crypto API).

  1. Создание крипто-сокета Программа создаёт AEAD-сокет (Authenticated Encryption with Associated Data) с помощью socket(AF_ALG, ...).

  2. Инъекция в память (Splice) Используя системный вызов splice в Linux, данные из файлового дескриптора (в данном случае /bin/su) могут быть напрямую перенаправлены в криптографический буфер ядра.

  3. Перезапись полезной нагрузки Используя определённые смещения в памяти, эксплойт заменяет часть логики аутентификации /bin/su на полезную нагрузку повышения привилегий (минимальную ELF-программу, запускающую /bin/sh).

  4. Запуск повышения привилегий После того как ядро завершит серию криптографических операций, процесс su в памяти уже будет изменён. Когда в итоге выполняется system("su"), система фактически запускает изменённую root-оболочку.


0x03 Руководство по устранению неполадок: почему всё ещё запрашивается пароль?

Во время отладки, если программа выводит Exploit finished, но запуск su по-прежнему требует пароль, проблема обычно вызвана одной из следующих деталей.

  1. Критически важный флаг MSG_MORE

Это самая распространённая точка отказа. Вызов sendmsg должен включать флаг MSG_MORE.

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

  • Последствие: Без этого флага ядро немедленно закрывает текущий криптографический контекст. В результате последующая инъекция через splice не может попасть в правильный буфер ядра, что делает перезапись невозможной.

  1. Длина ассоциированных данных (Assoclen)

Ядро крайне строго относится к выравниванию и проверке длины ассоциированных данных AEAD.

  • Подводный камень: Если ASSOCLEN в коде C установлен в 4 байта, а ядро ожидает 8 байт (или наоборот), ядро может либо выдать ошибку недопустимого аргумента, либо молча пропустить логику инъекции целиком.
  1. Сброс смещения файла

Во время цикла изменения /bin/su каждая операция splice должна начинать чтение со смещения 0.

  • Подводный камень: Если off_su явно не сбрасывается в 0, splice ведёт себя аналогично read() и продолжает продвигать указатель файла. На второй итерации инъецируемые данные смещаются, что может повредить su или нарушить логику эксплойта.
  1. Патчи ядра

На некоторых системах уже могут быть применены скрытые патчи безопасности. Это было подтверждено во время тестирования на нескольких машинах — на некоторых целях уже были установлены неофициальные или бэкпортированные исправления.


0x04 Примечания

  • Версия ядра: Эта уязвимость в основном затрагивает ранние версии ядра Linux 5.x (например, первоначальный выпуск Ubuntu 20.04). Если ядро уже пропатчено, этот метод больше не будет работать.

  • Различия в путях: Разные дистрибутивы Linux могут хранить su в разных местах (/bin/su или /usr/bin/su). Код пытается автоматически определить правильный путь, но если ни один из них не существует, вручную проверьте его с помощью which su и соответствующим образом измените код.

  • Отказ от ответственности: Эта статья предназначена строго для технических исследований и образовательных целей. Не используйте её для незаконной деятельности. Пользователи несут единоличную ответственность за любые юридические последствия, возникшие в результате неправильного использования инструмента.

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