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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2016-5195 — Не weaponized-стенд анализа и валидации CVE-2016-5195 (Dirty COW) с исследованием первопричины, обзором вышестоящих патчей и безопасным PoC только для лабораторных сред на подтверждённых ядрах. | Kitploit
Инструменты/GitHubGitHub/gogooma125732/cve-2016-5195
Повышение привилегийАнализ уязвимостейАнализ КодаЭксплуатацияСтатьи и ИсследованияОбучение и Образование
GitHubgogooma125732/cve-2016-5195

CVE-2016-5195

Не weaponized-стенд анализа и валидации CVE-2016-5195 (Dirty COW) с исследованием первопричины, обзором вышестоящих патчей и безопасным PoC только для лабораторных сред на подтверждённых ядрах.

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

Популярное

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

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

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

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

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

CVE-2016-5195: Dirty COW — состояние гонки в ядре Linux

Защитное исследование, невейпонизированная валидация и анализ исправлений для CVE-2016-5195 (Dirty COW) — состояния гонки при копировании при записи в ядре Linux, которое может позволить локальному пользователю изменять данные, связанные с отображением, доступным только для чтения, и получать повышенные привилегии.

ПолеЗначение
КомпонентУправление памятью ядра Linux / get_user_pages()
СлабостьCWE-362: одновременное выполнение с использованием общего ресурса без надлежащей синхронизации
СерьёзностьВысокая, CVSS 3.1: 7.0
ВекторCVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
Предварительное условие атакиЛокальный доступ с низкими привилегиями
Исправление в апстриме19be0eaffa3ac7d8eb6784ad9bdbc7d67ed8e619
Первый исправленный релиз в апстримеLinux 4.8.3; бэкпорты в дистрибутивах различаются

Обзор

Dirty COW — это гонка в обработке ядром Linux принудительных записей и отображений с копированием при записи (COW). Локальный пользователь может создать гонку между инвалидацией страниц и записью через /proc/self/mem. На подверженном уязвимости ядре эта гонка может привести к тому, что данные, связанные с номинально доступным только для чтения приватным отображением, будут записаны обратно в нижележащий файл.

Воздействие выражается в локальном повышении привилегий, когда атакующий может применить этот примитив к критичному для безопасности файлу. Уязвимость эксплуатировалась в реальных условиях (in the wild) в октябре 2016 года. Данный репозиторий не автоматизирует этот путь повышения привилегий.

Структура репозитория

Безопасный валидационный стенд

Стандартный стенд намеренно ограничен:

  • он не принимает ни целевой путь, ни управляемую атакующим нагрузку;
  • он создаёт временный файл с режимом 0600 и немедленно удаляет (unlink) его;
  • он вызывает гонку только на всё ещё открытом одноразовом inode;
  • он не устанавливает сетевых соединений и не выполняет команд; и
  • он сообщает фиксированный безвредный маркер.

Сборка

root@kitploit:~
cc -std=c11 -Wall -Wextra -Wpedantic -Werror -O2 \
  poc.c -o dirtycow-safe -pthread

Примитив эксплойта только для лаборатории можно собрать отдельно:

root@kitploit:~
cc -std=c11 -Wall -Wextra -Wpedantic -Werror -O2 \
  exploit.c -o dirtycow-exploit -pthread

Запуск на изолированной тестовой системе Linux

root@kitploit:~
./dirtycow-safe

Необязательное ограниченное число итераций:

root@kitploit:~
./dirtycow-safe --iterations 5000000

Возможные результаты:

  • marker-observed: на одноразовом inode наблюдалось уязвимое поведение.
  • marker-not-observed: неопределённый результат. Гонка, которая не сработала, не доказывает, что ядро исправлено.
  • код выхода 77: требуемый интерфейс Linux /proc/self/mem недоступен.

Не используйте результат PoC в качестве основного способа проверки статуса исправления. Обратитесь к бюллетеню (advisory) пакета ядра для используемого дистрибутива и убедитесь, что после перезагрузки активно исправленное ядро.

Примитив эксплойта

exploit.c принимает явно указанный файл и префикс замены и демонстрирует примитив записи в произвольный файл на подверженном уязвимости ядре. Он требует буквального подтверждения --i-understand, применяет ограничения на размер нагрузки и число итераций и не создаёт нагрузку для повышения привилегий.

Выбранный файл может быть изменён необратимо. Используйте его только в изолированной одноразовой лаборатории, которая принадлежит вам или на тестирование которой у вас есть явное разрешение. Полный анализ гонки и переходов состояний приведён в ROOT_CAUSE.md.

Подтверждающие материалы

evidence/evidence.json фиксирует сигнатуры исходного кода, наблюдавшиеся в официальных версиях Linux до и после исправления, результат сборки PoC без предупреждений компилятора и свойства безопасности валидации. evidence/validation.log содержит краткую сводку. Проведённая валидация не выполняла гонку.

Устранение

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

Точное изменение в апстриме см. в PATCH_ANALYSIS.md, а рекомендации по валидации — в VULNERABILITY_REPORT.md.

Ссылки

  • NVD: CVE-2016-5195
  • Исправление в апстриме Linux
  • Журнал изменений Linux 4.8.3
  • Каталог известных эксплуатируемых уязвимостей CISA
  • Запись CVE в Red Hat

Используйте этот материал только на системах, которые принадлежат вам или на тестирование которых у вас есть явное разрешение.

Скачать инструмент
ПутьНазначение
poc.cНевейпонизированная валидация с использованием только отсоединённого (unlinked) временного inode
exploit.cПримитив записи в произвольный файл для авторизованной одноразовой лаборатории
ROOT_CAUSE.mdПодробный анализ уязвимого перехода состояний и гонки
VULNERABILITY_REPORT.mdПредварительные условия, первопричина, воздействие и устранение
PATCH_ANALYSIS.mdПострочный анализ апстрим-исправления FOLL_COW
evidence/Структурированный вывод валидации и заметки по интерпретации