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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2021-3156-Project — Учебная лабораторная среда для CVE-2021-3156 (Baron Samedit) с уязвимой целью sudo в Docker, заготовкой эксплойта, canary-тестом, анализом первопричины и сравнением с пропатченной версией. | Kitploit
Инструменты/GitHubGitHub/shams-ul-mehmood/cve-2021-3156-project
Повышение привилегийАнализ уязвимостейЭксплуатацияОбучение и ОбразованиеЭксплуатация Бинарных ФайловЛаборатории и Практика
GitHubshams-ul-mehmood/cve-2021-3156-project

CVE-2021-3156-Project

Учебная лабораторная среда для CVE-2021-3156 (Baron Samedit) с уязвимой целью sudo в Docker, заготовкой эксплойта, canary-тестом, анализом первопричины и сравнением с пропатченной версией.

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
Репозиторий
171 месяц назадЕщё не проверено

CVE-2021-3156 — Baron Samedit

Переполнение буфера в куче в sudo → локальное повышение привилегий

Департамент кибербезопасности ITSOLERA | Стажировка Red Team 2026


  ██████╗  █████╗ ██████╗  ██████╗ ███╗   ██╗    ███████╗ █████╗ ███╗   ███╗███████╗██████╗ ██╗████████╗
  ██╔══██╗██╔══██╗██╔══██╗██╔═══██╗████╗  ██║    ██╔════╝██╔══██╗████╗ ████║██╔════╝██╔══██╗██║╚══██╔══╝
  ██████╔╝███████║██████╔╝██║   ██║██╔██╗ ██║    ███████╗███████║██╔████╔██║█████╗  ██║  ██║██║   ██║
  ██╔══██╗██╔══██║██╔══██╗██║   ██║██║╚██╗██║    ╚════██║██╔══██║██║╚██╔╝██║██╔══╝  ██║  ██║██║   ██║
  ██████╔╝██║  ██║██║  ██║╚██████╔╝██║ ╚████║    ███████║██║  ██║██║ ╚═╝ ██║███████╗██████╔╝██║   ██║
  ╚═════╝ ╚═╝  ╚═╝╚═╝  ╚═╝ ╚═════╝ ╚═╝  ╚═══╝    ╚══════╝╚═╝  ╚═╝╚═╝     ╚═╝╚══════╝╚═════╝ ╚═╝   ╚═╝

⚠️ ТОЛЬКО ДЛЯ ОБРАЗОВАТЕЛЬНЫХ / ИЗОЛИРОВАННЫХ ЛАБОРАТОРНЫХ ЦЕЛЕЙ Все тесты должны выполняться исключительно внутри Docker-контейнера лаборатории. Никогда не запускайте против реальных, производственных или общих систем.


Содержание

  1. Обзор CVE
  2. Что делает этот CVE особенным
  3. Структура проекта
  4. Результаты команды
  5. Быстрый старт
  6. Как работает эксплойт
  7. Канареечный тест уязвимости
  8. Использование exploit.py
  9. Сброс и снимок лаборатории
  10. Сравнение исправленной и уязвимой версий
  11. Ссылки

Обзор CVE

СвойствоЗначение
Идентификатор CVECVE-2021-3156
ПсевдонимBaron Samedit
ТипПереполнение буфера в куче → локальное повышение привилегий
Компонентsudo — утилита привилегий Linux (set_cmnd() в src/sudo.c)
Оценка CVSS v37.8 (высокая)
ВекторCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Уязвимые версииsudo 1.8.2 – 1.8.31p2 и 1.9.0 – 1.9.5p1
Исправленные версииsudo 1.9.5p2 (ветка 1.9) / sudo 1.8.32 (ветка 1.8)
Целевая версия в лабораторииsudo 1.8.31 на Ubuntu 20.04
Бюллетень / РекомендацииSA: https://www.sudo.ws/security/advisories/unescape_overflow/
ОбнаруженоQualys Research Team
Дата раскрытия2021-01-26
В дикой природе с (код)~2011-07-09 (sudo 1.8.2) — ~10 лет без обнаружения
Требуется аутентификацияТолько локальный пользователь — права sudo НЕ нужны

Что делает этот CVE особенным

СвойствоCVE-2021-3156Типичная LPE sudo
Требует записи в sudoers❌ Нет✅ Да
Требует членства в группе sudo❌ Нет✅ Да
Требует предварительного доступа к sudo❌ Нет✅ Да
Работает с только что созданной учётной записью✅ Да❌ Нет
Использует систему разрешений❌ Полностью обходит✅ Злоупотребляет ей
Поверхность атакиПарсер аргументов (до аутентификации)Проверка разрешений

Ключевой вывод: переполнение происходит в set_cmnd() — функции, которая разбирает аргументы — и выполняется до того, как sudo вообще обращается к /etc/sudoers. Учётная запись, созданная 10 секунд назад и не имеющая никаких прав, может использовать эту уязвимость.


Структура проекта

CVE-2021-3156-Project/
│
├── README.md                        ← you are here
│
├── lab/                             ← Member 1: Lab Environment
│   ├── Dockerfile                   ← Ubuntu 20.04 + sudo 1.8.31 (pinned)
│   ├── docker-compose.yml           ← vulnerable target + patched reference
│   ├── evidence_helper.sh           ← pre/post-exploit state capture
│   ├── SETUP.md                     ← step-by-step VM/Docker guide
│   └── config_notes.md              ← CVE conditions & container details
│
├── exploit/                         ← Member 2: Exploit Development
│   ├── exploit.py                   ← Python LPE framework + canary test
│   └── payloads.txt                 ← heap overflow research notes
│
├── docs/                            ← Member 3: Research & Documentation
│   ├── root_cause_analysis.md       ← set_cmnd() deep dive + off-by-one
│   ├── references.md                ← all sources, PoCs, CWE mapping
│   └── mitigation.md                ← sudo upgrade + hardening checklist
│
├── proof/                           ← Member 4: Evidence Collection
│   ├── screenshots/                 ← exploitation screenshots
│   └── terminal_logs.txt            ← command output template + logs
│
└── report/
    └── CVE-2021-3156_Report.docx    ← Member 4: Final professional report

Результаты команды

Участник 1 — Лабораторная среда и проверка CVE

ФайлОписание
lab/DockerfileUbuntu 20.04 с зафиксированным sudo 1.8.31 (уязвимый); установлен Python 3; учётная запись labuser БЕЗ доступа к sudo
lab/docker-compose.ymlОркестрация уязвимой цели + эталонного контейнера с исправленным Ubuntu 22.04
lab/evidence_helper.shBash-скрипт для сбора состояния системы (пользователь, версия sudo, canary) до и после эксплойта
lab/SETUP.mdПошаговая инструкция: сборка → запуск → вход → проверка версии sudo → запуск canary → снимок
lab/config_notes.mdОбъясняет, почему не требуется неправильная конфигурация, настройки безопасности Docker, учётные данные

Участник 2 — Разработка эксплойта (PoC-скрипт)

ФайлОписание
exploit/exploit.pyПолный фреймворк на Python: check_platform(), check_sudo_version(), run_canary_test(), get_system_info() + три TODO-заглушки для эксплойта (select_heap_strategy, build_overflow_argument, trigger_overflow_and_escalate) с подробными ссылками на PoC blasty/worawit
exploit/payloads.txtКонцепции переполнения кучи, эквивалент COMPRESSION_TRANSFORM (структура аргументов), три стратегии кучи, шаблон журнала неудачных попыток, сигнатуры обнаружения

Примечание: рабочий код эксплойта для ядра/кучи не включён в соответствии с этическими нормами. Заглушки TODO в exploit.py ссылаются на https://github.com/blasty/CVE-2021-3156 и https://github.com/worawit/CVE-2021-3156 как на авторитетные публичные PoC, которые ваша команда может изучить и интегрировать.

Участник 3 — Анализ первопричины и исследование

ФайлОписание
docs/root_cause_analysis.mdПодробно: несоответствие размера и копирования в set_cmnd(), ошибка off-by-one с примерами кода, diff патча, цепочка эксплойта, разбор метрики CVSS 7.8 по пунктам, хронология 10 лет, таблица влияния на дистрибутивы
docs/references.mdРекомендации Qualys, MITRE, NVD, проект sudo, PoC blasty, PoC worawit, ExploitDB, GTFOBins, сопоставление CWE
docs/mitigation.mdapt-get install --only-upgrade sudo, проверочный canary, усиление AppArmor, мониторинг auditd, таблица усиления защиты

Участник 4 — Сбор доказательств, отчётность и интеграция

ФайлОписание
proof/terminal_logs.txtШаблон сбора доказательств (заполните фактическим выводом лаборатории)
proof/screenshots/Каталог для 7 обязательных скриншотов
report/CVE-2021-3156_Report.docxПрофессиональный отчёт из 12 разделов: титульный лист, исполнительное резюме, описание CVE, анализ первопричины, разбор CVSS, шаги эксплуатации, объяснение кода, чек-лист доказательств, меры по смягчению, хронология, ссылки, отказ от ответственности

Быстрый старт

1. Сборка и запуск лаборатории

cd CVE-2021-3156-Project/lab/

# Build the vulnerable image (downloads Ubuntu 20.04, pins sudo 1.8.31)
docker compose build

# Start both containers
docker compose up -d

# Confirm containers are running
docker compose ps

Ожидаемый результат:

NAME                      STATUS
baron_samedit_target      running
baron_samedit_patched     running

2. Вход в уязвимый контейнер

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