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
RustChain — Cacher les artefacts mémoire en utilisant la ROP et les points d'arrêt matériels. | Kitploit
Outils/GitHubGitHub/kudaes/rustchain
Criminalistique MémoireExploitationRed TeamingDéveloppement de Charges Utiles
GitHubkudaes/rustchain

RustChain

Cacher les artefacts mémoire en utilisant la ROP et les points d'arrêt matériels.

Voir le dépôt
15120il y a 2 ansVérifié par Kitploit

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

Description

Cet outil est un PoC simple montrant comment masquer des artefacts mémoire en utilisant une chaîne ROP combinée avec des points d'arrêt matériels. La chaîne ROP changera les protections de la page mémoire du module principal en N/A pendant le sommeil (c'est-à-dire lorsque la fonction Sleep est appelée). Pour plus d'informations détaillées sur cette technique d'évasion de scan mémoire, consultez le projet original Gargoyle. x64 uniquement.

L'idée est de configurer un point d'arrêt matériel dans kernel32!Sleep et un nouveau filtre de premier niveau pour gérer l'exception. Lorsque Sleep est appelé, la fonction de filtre d'exception définie précédemment est déclenchée, nous permettant d'appeler la chaîne ROP sans avoir recours à des hooks de fonctions classiques. Ainsi, nous évitons de laisser des régions mémoire privées bizarres et inhabituelles dans le processus liées à des DLL bien connues.

La chaîne ROP appelle simplement VirtualProtect() pour définir la page mémoire courante sur N/A, puis appelle SleepEx, et enfin restaure la protection mémoire RX.

L'aperçu du processus est le suivant :

  • Nous utilisons SetUnhandledExceptionFilter pour définir une nouvelle fonction de filtre d'exception.
  • SetThreadContext est utilisé pour définir un point d'arrêt matériel sur kernel32!Sleep.
  • Nous appelons Sleep, déclenchant le point d'arrêt matériel et dirigeant le flux d'exécution vers notre fonction de filtre d'exception.
  • La chaîne ROP est appelée depuis la fonction de filtre d'exception, permettant de changer la protection de la page mémoire courante en N/A. Ensuite, SleepEx est appelé. Enfin, la chaîne ROP restaure la protection mémoire RX et l'exécution normale se poursuit.

Ce processus se répète indéfiniment.

Comme on peut le voir dans l'image, la protection mémoire du module principal est changée en N/A pendant le sommeil, ce qui évite les scans mémoire cherchant des pages avec permission d'exécution.

La protection mémoire N/A est définie pendant le sommeil

Compilation

Comme nous utilisons le plugin LITCRYPT pour obscurcir les littéraux de chaîne, il est nécessaire de définir la variable d'environnement LITCRYPT_ENCRYPT_KEY avant de compiler le code :

root@kitploit:~
C:\Users\User\Desktop\RustChain> set LITCRYPT_ENCRYPT_KEY="yoursupersecretkey"

Après cela, compilez simplement le code et exécutez l'outil :

root@kitploit:~
C:\Users\User\Desktop\RustChain> cargo build
C:\Users\User\Desktop\RustChain\target\debug> rustchain.exe

Limitations

Cet outil est juste un PoC et certaines fonctionnalités supplémentaires devraient être implémentées pour être pleinement fonctionnel. L'objectif principal du projet était d'apprendre à implémenter une chaîne ROP et de l'intégrer dans Rust. Pour cette raison, cet outil ne fonctionnera que si vous l'utilisez tel quel, et des échecs sont attendus si vous essayez de l'utiliser d'autres manières (par exemple, en le compilant en dll et en essayant de le charger et de l'exécuter de manière reflective).

Crédits

  • @thefLinkk pour son projet DeepSleep qui m'a inspiré pour créer cet outil.
Télécharger l’outil