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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2022-0847-Docker — Эксплойт Docker | Kitploit
Инструменты/GitHubGitHub/mrchucu1/cve-2022-0847-docker
Повышение привилегийБезопасность контейнеровАнализ уязвимостейЭксплуатацияОбучение и ОбразованиеЭксплуатация Бинарных ФайловЛаборатории и Практика
GitHubmrchucu1/cve-2022-0847-docker

CVE-2022-0847-Docker

Эксплойт Docker

Репозиторий
12351 год назадЕщё не проверено

Популярное

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

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

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

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

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

Грязная труба (CVE-2022-0847): Практическая демонстрация эксплуатации в Docker

CVE-2022-0847 Docker C Language

Этот репозиторий предоставляет самодостаточную интерактивную Docker-среду для безопасной демонстрации и анализа уязвимости повышения привилегий «Dirty Pipe». Он предназначен как образовательный инструмент для специалистов по безопасности, чтобы понять механику критической эксплуатации на уровне ядра в контролируемых условиях.


1. Объяснение уязвимости: Что такое Dirty Pipe?

Dirty Pipe — это критическая уязвимость, обнаруженная в ядре Linux (затрагивает версии с 5.8 и выше). Она позволяла локальному непривилегированному пользователю перезаписывать данные в произвольных файлах, доступных только для чтения.

Последствия серьезны: перезаписывая чувствительный файл, такой как /etc/passwd или SUID-бинарный файл, злоумышленник мог легко повысить свои привилегии до root, получив полный контроль над системой. Эта уязвимость была особенно опасна, поскольку она обходила стандартные проверки разрешений файлов — фундаментальный механизм безопасности в Linux.

2. Архитектура проекта: Использование Docker для безопасной лаборатории

Этот проект использует Docker для создания безопасной, изолированной и намеренно уязвимой среды. Это позволяет любому изучать эксплойт без риска для хост-машины.

Ключевые компоненты:

  • Dockerfile: Определяет план нашего уязвимого контейнера. Он использует старый базовый образ (debian:bullseye-20210927-slim), известный наличием ядра, уязвимого к Dirty Pipe, и автоматизирует процесс настройки.
  • exploit.c: Код на C, реализующий логику эксплойта, основанный на оригинальном доказательстве концепции Макса Келлерманна.
  • Makefile: Простой makefile для компиляции кода на C в исполняемый бинарный файл внутри контейнера.

3. Практическая демонстрация: От пользователя к root

Это пошаговое руководство проведет вас через сборку среды и выполнение эксплойта.

Предварительные требования: У вас должен быть установлен и запущен Docker.

Шаг 1: Клонирование репозитория

Откройте терминал и клонируйте этот проект.

root@kitploit:~
git clone https://github.com/mrchucu1/CVE-2022-0847-Docker.git
cd CVE-2022-0847-Docker

Шаг 2: Сборка уязвимого Docker-образа

Используйте команду docker build для создания образа контейнера. Dockerfile обработает все зависимости и скомпилирует код эксплойта.

root@kitploit:~
docker build -t dirty-pipe-demo .

Шаг 3: Запуск контейнера и выполнение эксплойта

Теперь запустите контейнер в интерактивном режиме. Флаг --rm гарантирует удаление контейнера при выходе, а -it предоставляет интерактивную оболочку.

root@kitploit:~
docker run --rm -it dirty-pipe-demo

Вы попадете в оболочку внутри контейнера под непривилегированным пользователем (hacker@...:/$).

Теперь выполните предварительно скомпилированный эксплойт:

root@kitploit:~
# Вы сейчас непривилегированный пользователь.
# Ваше приглашение выглядит так: hacker@<container_id>:/$
#
# Теперь запускаем эксплойт...
./exploit

Успех! Эксплойт перезаписывает SUID-бинарный файл, чтобы предоставить вам root-оболочку. Приглашение терминала изменится с $ на #, что означает получение прав root.

root@kitploit:~
# Эксплойт выполнен успешно.
# Теперь у вас root-оболочка: # whoami
root
#

4. Ключевые выводы и уроки по безопасности

Этот проект — не просто запуск скрипта; это практическая демонстрация критически важных принципов безопасности, актуальных для моей работы как инженера по облачной безопасности:

  • Эксплойты ядра обходят безопасность на уровне приложений: Это показывает, что даже с идеальными разрешениями файлов уязвимость ядра может подорвать всю модель безопасности операционной системы, доказывая необходимость эшелонированной защиты (defense-in-depth).
  • Безопасность контейнеров — это безопасность хоста: Это дает осязаемое доказательство того, что контейнеры используют ядро хоста. Эксплойт ядра, выполненный внутри контейнера, может привести к полному «выходу» и компрометации хост-машины. Это подчеркивает важность использования профилей seccomp, gVisor или оптимизированных для контейнеров ОС в production.
  • Критичность управления патчами: Это наглядный пример того, почему своевременные обновления ядра являются обязательной практикой безопасности в любой производственной среде, особенно на хост-машинах контейнеров.
  • Понимание поверхности атаки: Создавая среду для эксплуатации, я получил более глубокое понимание того, как атакующие анализируют системы и используют, казалось бы, незначительные ошибки в управлении памятью (например, каналы и кэш страниц) для полной компрометации системы.

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

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

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