Skip to content
KitploitKITPLOIT
OutilsBlog
Log in
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
COPY-FAIL — Copy Fail - CVE-2026-31431 - Implémentation C renforcée pour les opérations de redteam et de tests de pénétration autorisés. ⚠️ Avis légal : Cet outil est destiné uniquement à la recherche en sécurité autorisée, aux tests de pénétration autorisés et à l'analyse défensive. Utilisez-le sur des systèmes que vous possédez ou pour lesquels vous avez une autorisation écrite explicite de tester. L'accès non autorisé à des systèmes informatiques est illégal. | Kitploit
Outils/GitLabGitLab/toxy4ny/copy-fail
Escalade de PrivilègesExploitationPost-ExploitationCommandement et ContrôleRed TeamingDéveloppement de Charges UtilesExploitation de Binaires
GitLabtoxy4ny/copy-fail

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →

À propos

Copy Fail - CVE-2026-31431 - Implémentation C renforcée pour les opérations de redteam et de tests de pénétration autorisés. ⚠️ Avis légal : Cet outil est destiné uniquement à la recherche en sécurité autorisée, aux tests de pénétration autorisés et à l'analyse défensive. Utilisez-le sur des systèmes que vous possédez ou pour lesquels vous avez une autorisation écrite explicite de tester. L'accès non autorisé à des systèmes informatiques est illégal.

COPY-FAIL

Voir le dépôtSite web
110il y a 2 moisPas encore vérifié
Partager

Copy Fail -- CVE-2026-31431

Implémentation C durcie pour les opérations d'équipe rouge et de tests de pénétration autorisés.

⚠️ Avis légal : Cet outil est destiné uniquement à la recherche en sécurité autorisée, aux tests de pénétration autorisés et à l'analyse défensive. Utilisez-le uniquement sur des systèmes que vous possédez ou pour lesquels vous avez une autorisation écrite explicite. L'accès non autorisé à des systèmes informatiques est illégal.

🚀 Le développement principal a été déplacé sur GitLab.
Ce dépôt est activement maintenu ici. Pour les problèmes et les contributions, veuillez utiliser GitLab.


Table des matières

  • Aperçu
  • Recherche originale
  • Nos améliorations
  • Architecture
  • Build
  • Utilisation
  • Modules
  • Sécurité opérationnelle
  • Détection et atténuation
  • Crédits
  • Licence

Aperçu

Ce projet est un portage C durci et prêt pour la production de l'exploit d'élévation de privilèges local CVE-2026-31431 (« Copy Fail »), initialement divulgué par Theori et Xint le 29 avril 2026.

La preuve de concept originale était écrite en Python et conçue pour une démonstration de recherche. Cette implémentation la transforme en une boîte à outils de niveau équipe rouge avec :

  • Aucun artefact disque (exécution sans fichier basée sur memfd)
  • Découverte automatique de cibles (énumération des binaires setuid avec connaissance des MAC)
  • Anti-forensique (suppression du cache, restauration des horodatages, autodestruction)
  • Contrôle par l'opérateur (exécution déclenchée par signal avec délais configurables)
  • Constructions statiques multiplateformes (x86_64, ARM64, RISC-V via musl/zig)

Recherche originale

CVE-2026-31431 : Copy Fail

AttributValeur
Date de divulgation29 avril 2026
ChercheursTheori (Jinoh Kang, Yonghwi Jin, Seunghyun Lee), Xint
Articlehttps://copy.fail/
PoC originaletheori-io/copy-fail-CVE-2026-31431 (Python)
Portage C (base)tgies/copy-fail-c par Tony Gies
Noyaux affectésLinux 4.14 -- 6.14 (avant le commit correctif a664bf3d603d)
SévéritéCVSS 7.8 (Élevée) -- Élévation de privilèges locale

Mécanisme de vulnérabilité

La vulnérabilité réside dans le sous-système crypto AF_ALG du noyau Linux. Le modèle AEAD authencesn implémente une optimisation en place pour le déchiffrement : lorsque le texte chiffré est fourni via splice() depuis le cache de pages d'un fichier, le noyau réutilise la même page à la fois comme source et comme destination.

Le flux d'attaque :

  1. Ouvrir un binaire setuid (ex. /usr/bin/su) en lecture seule
  2. Configurer une opération AEAD authencesn(hmac(sha256),cbc(aes)) via AF_ALG
  3. Fournir le texte chiffré via splice() depuis le cache de pages du fichier cible
  4. L'opération de déchiffrement (échouant) écrase 4 octets de la page du cache de pages avant que l'authentification ne la rejette
  5. Répéter pour chaque fenêtre de 4 octets de la charge utile
  6. execve() la cible -- le noyau charge les pages modifiées depuis le cache, accorde les droits setuid-root
  7. La charge utile pivote vers un shell root complet

Point clé : L'inode sur le disque n'est jamais modifié. Seul le cache de pages en mémoire est modifié, ce qui rend la détection forensique nettement plus difficile que les exploits traditionnels par écrasement de fichier.


Nos améliorations

Ce projet étend la recherche originale avec un durcissement orienté équipe rouge à travers neuf modules.

1. Primitive d'exploit durcie (patch_chunk.c)

FonctionnalitéOriginalNotre implémentation
Gestion des socketsNouveau socket par blocRéutilisation du socket (~60 % d'appels système en moins)
VérificationAucunemmap + memcmp avec réessai automatique (3 tentatives)
Écritures parallèlesSéquentielles uniquementParallélisme basé sur fork (jusqu'à 16 processus)
Codes d'erreurSuccès/échec binairesGranulaires : 0 = vérifié, 1 = noyau patché, -1 = fatal
Allocations tasmalloc dans le chemin chaudUniquement sur la pile (pas de gigue d'allocation)

2. Découverte automatique de cibles (target_discovery.c)

  • Analyse en trois phases : cibles prioritaires → répertoires standard → analyse profonde
  • Score avec connaissance des MAC : pénalise les binaires avec des profils AppArmor/SELinux
  • 18 cibles prioritaires : su, sudo, passwd, pkexec, mount, ping, etc.
  • Chaîne de repli : si la cible principale échoue, sélectionne automatiquement le meilleur candidat suivant
  • Awareness Snap : ignore /snap (setuid non traditionnel)

3. Suite anti-forensique (anti_forensics.c)

TechniqueObjectif
posix_fadvise(POSIX_FADV_DONTNEED)Éviction du cache de pages par fichier
echo 3 > /proc/sys/vm/drop_cachesSuppression globale du cache (post-root)
utimensat() timestompRestauration des atime/mtime originaux
AutodestructionÉcrasement du binaire dropper avec des zéros avant exec
Nettoyage mémoireMise à zéro volatile des tampons sensibles

4. Exécution sans fichier (memfd_exec.c)

  • memfd_create + fexecve : exécution sans chemin de fichier
  • Camouflage : memfd nommé kworker, anon_inode, eventfd (se fond dans /proc/$pid/fd/)
  • Fork et oubli : double fork pour créer un processus orphelin (PPID=1)
  • Déchiffrement en mémoire : déchiffrement XOR et RC4 puis exécution (la charge utile n'est jamais en clair sur le disque)

5. Livraison de la charge utile de niveau 1 (stage1.c)

CanalFurtivitéVitessePriorité de repli
IntégréMaximaleInstantanéDernier (airgap)
HTTP directMoyenne<1sPremier
curl/wget systèmeFaible1-3sDeuxième (support HTTPS)
DNS TXTÉlevéeLentTroisième (contournement de pare-feu)

6. Implant C2 de niveau 2 (stage2_template.c)

  • Boucle de reconnexion résiliente avec backoff exponentiel
  • Trois distributions : uniforme, triangulaire, gigue exponentielle
  • Contrôle par signal : SIGUSR1 (déclenchement), SIGUSR2 (statut), SIGTERM (arrêt)
  • Balise DNS : vérification discrète de l'état du C2 avant connexion TCP
  • Masquage de processus : [kworker/N:0] dans ps/top

7. Masquage de processus (proc_hide.c)

  • Écrasement d'argv[0] : remplacement en place de /proc/$pid/cmdline
  • prctl(PR_SET_NAME) : noms de style thread noyau (limite 16 octets)
  • Sanitisation de l'environnement : nettoyage sélectif de SSH_*, AWS_*, TOKEN*, etc.
  • Détachement du parent : setsid() + setpgid() pour l'indépendance du terminal

8. Contrôle par déclenchement de signal (signal_trigger.c)

ModeComportementCas d'utilisation
trigger_oneshot()Attente → déclenchement → exécution → sortieFrapper et courir
trigger_daemon()Attente → déclenchement → exécution → boucleImplant persistant
trigger_auto()Attente avec repli sur timeoutOpérations sans surveillance

Attente zéro CPU : sigsuspend() au lieu de boucles de scrutation.

9. Gigue de sommeil (sleep_jitter.c)

Télécharger l’outil