Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
dirtycow-lab — Bildungs-PoC für Dirty COW (CVE-2016-5195) mit Protokollierung, ptrace-Fallback und Unterstützung für binäre Payloads. | Kitploit
Tools/GitHubGitHub/mohammadamin382/dirtycow-lab
Privilege EscalationSchwachstellenanalyseExploitationPenetrationstestsLernen & BildungRed TeamingBinary-ExploitationLabs & Praxis
GitHubmohammadamin382/dirtycow-lab

dirtycow-lab

Bildungs-PoC für Dirty COW (CVE-2016-5195) mit Protokollierung, ptrace-Fallback und Unterstützung für binäre Payloads.

Repository anzeigen
11vor 1 JahrNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Dirty COW Lehr-PoC (CVE-2016-5195)

⚠️ Rechtlicher Hinweis

Dieser Code dient NUR ZU LEHRZWECKEN. Jegliche böswillige Nutzung ist strengstens untersagt und illegal.

📖 Was ist Dirty COW?

Dirty COW (CVE-2016-5195) ist eine Privilegienausweitungs-Schwachstelle im Linux-Kernel, die eine Race-Condition im Copy-on-Write-Mechanismus (COW) des Kernels ausnutzt. Diese Schwachstelle betrifft Linux-Kernel ab Version 2.6.22 (veröffentlicht 2007) bis zu folgenden Versionen:

  • 4.8.3
  • 4.7.9
  • 4.4.26

Technische Details

Die Schwachstelle tritt im Speicherverwaltungssystem des Kernels auf:

  1. Copy-On-Write (COW): Wenn ein Prozess eine Datei mit MAP_PRIVATE mapped, sollten Änderungen eine private Kopie erzeugen
  2. Race-Condition: Zwei Threads konkurrieren zwischen madvise(MADV_DONTNEED) und dem Schreiben auf /proc/self/mem
  3. Ausnutzung: Unter bestimmten zeitlichen Bedingungen können Schreibvorgänge den COW-Schutz umgehen und die Originaldatei verändern

Auswirkungen

  • Privilegienausweitung: Ändern von schreibgeschützten Dateien, die root gehören
  • Systemkompromittierung: Möglichkeit, Root-Zugriff durch Ändern von Systemdateien wie /etc/passwd zu erlangen
  • Datenintegrität: Unautorisierte Änderung kritischer Systemdateien

🛡️ Sicherheitshinweise für Tests

⚠️ KRITISCH: Nur in isolierter Umgebung testen

Führen Sie dies NIEMALS auf Produktionssystemen oder Systemen aus, die Ihnen nicht gehören!

Empfohlene Testumgebung:

  1. Virtuelle Maschine (VM): Verwenden Sie VMware, VirtualBox oder KVM
  2. Container: Docker-Container mit verwundbarem Kernel
  3. Isoliertes Labor: Dediziertes Testgerät ohne wichtige Daten
  4. Kernel-Anforderungen: Linux-Kernel-Versionen 2.6.22 bis 4.8.2

Sichere Testpraktiken:

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)

🚀 Kompilierung & Verwendung

Voraussetzungen

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

Kompilierung

root@kitploit:~
# Standard compilation
make

# Debug version
make main-debug

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

Grundlegende Verwendung

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

Befehlszeilenoptionen

🔬 Erweiterte Funktionen

1. Mehrere Angriffsmethoden

  • Methode 1: Schreiben über /proc/self/mem (Standard)
  • Methode 2: ptrace(PTRACE_POKETEXT) für eingeschränkte Systeme

2. Dynamische Offset-Suche

Durchsucht mehrere Speicher-Offsets, um die beste Schreibposition zu finden:

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

3. Multi-Prozess-Race-Conditions

Mehrere Prozesse für intensive Race-Conditions starten:

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

4. Unterstützung binärer Payloads

Beliebige Binärdaten aus Dateien laden:

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. Automatische Wiederholungslogik

Fehlgeschlagene Versuche automatisch wiederholen:

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

6. Dateiintegritätsprüfung

Verwendet SHA-256-Hashing zur Überprüfung von Dateiänderungen:

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

📊 Ausgabe & Protokollierung

Konsolenausgabe-Beispiel

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

Logdatei-Format

Das Tool erstellt detaillierte Logs in 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

🎯 Testszenarien

Szenario 1: Grundlegender Funktionstest

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

Szenario 2: Stresstest

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

Szenario 3: Eingeschränkte Umgebung

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

Szenario 4: Binäre Payload-Test

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

🔍 Den Exploit verstehen

Race-Condition-Timing

Der Exploit funktioniert, indem eine Race zwischen zwei Operationen erzeugt wird:

  1. Thread 1: madvise(MADV_DONTNEED) - Sagt dem Kernel, Speicherseiten zu verwerfen
  2. Thread 2: Schreiben auf /proc/self/mem - Versucht, in gemappten Speicher zu schreiben

Erfolgsfaktoren

  • Kernel-Version: Muss verwundbar sein (< 4.8.3)
  • Timing: Die Race-Condition muss genau im richtigen Moment auftreten
  • Speicher-Mapping: Die Datei muss mit MAP_PRIVATE gemappt sein
  • Berechtigungen: Lesezugriff auf die Zieldatei muss bestehen

Warum es funktioniert

Wenn die Race-Condition erfolgreich ist:

  1. Thread 1 verwirft die COW-Seite
  2. Thread 2 schreibt, bevor eine neue COW-Seite erstellt wird
  3. Der Schreibvorgang geht direkt in die Originaldatei anstatt in die private Kopie

🛠️ Fehlerbehebung

Häufige Probleme

1. „Exploit fehlgeschlagen oder unzureichende Iterationen“

  • Lösung: Iterationen mit -i erhöhen oder mehrere Prozesse mit -n verwenden

2. „/proc/self/mem Zugriff fehlgeschlagen“

  • Lösung: ptrace-Methode mit -P-Flag verwenden

3. „System ist möglicherweise nicht verwundbar“

  • Kernel-Version prüfen: uname -r
  • Sicherstellen, dass Kernel älter als 4.8.3 ist

4. System reagiert nicht mehr

  • Iterationen reduzieren: -i 1000000
  • Weniger Prozesse verwenden: -n 1

Leistungsoptimierung

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

📚 Bildungsressourcen

CVE-Informationen

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

Weiterführende Literatur

  • Linux-Kernel-Speicherverwaltung
  • Copy-On-Write-Mechanismus
  • Race-Condition-Schwachstellen
  • Techniken zur Privilegienausweitung

🤝 Beitragen

Dies ist ein Lehrmittel. Beiträge sollten sich auf Folgendes konzentrieren:

  • Verbesserung des Bildungswerts
  • Hinzufügen von Sicherheitsfunktionen
  • Bessere Dokumentation
  • Code-Klarheit und Kommentare

⚖️ Haftungsausschluss

Diese Software wird nur zu Bildungs- und Forschungszwecken bereitgestellt. Die Autoren und Mitwirkenden sind nicht verantwortlich für Missbrauch oder Schäden, die durch dieses Programm verursacht werden. Die Benutzer sind allein dafür verantwortlich, sicherzustellen, dass sie vor Tests auf Systemen über die erforderliche Autorisierung verfügen.

Durch die Nutzung dieser Software bestätigen Sie Folgendes:

  • Sie werden sie nur für legitime Bildungszwecke verwenden
  • Sie haben die entsprechende Autorisierung für alle durchgeführten Tests
  • Sie verstehen die rechtlichen Konsequenzen unbefugter Systemtests
  • Sie werden dieses Tool nicht für böswillige Zwecke verwenden

📝 Lizenz

Dieses Projekt wird unter der MIT-Lizenz nur für Bildungszwecke veröffentlicht.


Denken Sie daran: Mit großer Macht kommt große Verantwortung. Nutzen Sie dieses Wissen, um Systeme zu schützen und zu sichern, nicht um ihnen zu schaden.

Tool herunterladen
OptionBeschreibungStandardMaximum
-t <datei>Pfad zur Zieldatei/tmp/dirty_cow_test-
-p <payload>Benutzerdefinierte Text-PayloadTest-String-
-f <datei>Binäre Payload aus Datei laden--
-i <anzahl>Anzahl der Iterationen10.000.000100.000.000
-n <anzahl>Anzahl paralleler Prozesse18
-r <anzahl>Wiederholungsversuche110
-Pptrace anstelle von /proc/self/mem verwendenDeaktiviert-
-DDynamische Offset-Suche aktivierenDeaktiviert-
-vAusführliche AusgabeDeaktiviert-
-l <datei>Pfad zur Logdateiexploit_log.txt-
-hHilfe anzeigen--