Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
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
ntqueueapcthreadex-ntdll-gadget-injection — Cette nouvelle façon d'utiliser NtQueueApcThreadEx en abusant des paramètres ApcRoutine et SystemArgument[0-3] en passant un gadget aléatoire pop r32; ret peut être utilisée pour une injection de code furtive. | Kitploit
Outils/GitHubGitHub/lloydlabs/ntqueueapcthreadex-ntdll-gadget-injection
Évasion IDS/IPSShellcodePost-ExploitationRed TeamingDéveloppement de Charges UtilesAttaque Adversariale
GitHublloydlabs/ntqueueapcthreadex-ntdll-gadget-injection

ntqueueapcthreadex-ntdll-gadget-injection

Cette nouvelle façon d'utiliser NtQueueApcThreadEx en abusant des paramètres ApcRoutine et SystemArgument[0-3] en passant un gadget aléatoire pop r32; ret peut être utilisée pour une injection de code furtive.

Voir le dépôtSite web
2663420il y a 3 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

🧪 NtQueueApcThreadEx NTDLL Gadget Injection

Introduction

Cette nouvelle façon d'utiliser NtQueueApcThreadEx en abusant des paramètres ApcRoutine et SystemArgument[0-3] avec un gadget aléatoire de type pop r32; ret peut être utilisée pour une injection de code furtive. Dans ce PoC, le gadget est choisi aléatoirement dans la région mémoire de ntdll.dll correspondant à un motif précis. Cela signifie que le gadget retourne dans le shellcode.

  1. Allouer le shellcode dans le processus cible. Pour de meilleurs résultats, cela devrait être utilisé avec le projet shellcode-plain-sight.
  2. Trouver un gadget aléatoire dans les sections PE correspondant à IMAGE_SCN_CNT_CODE et IMAGE_SCN_MEM_EXECUTE dans ntdll.dll en mémoire.
  3. Préparer l'appel à NtQueueApcThreadEx, ApcRoutine = adresse du gadget choisie aléatoirement, SystemArgument = pointeur vers le shellcode
  4. NtQueueApcThreadEx forcera le pointeur d'instruction vers le gadget ntdll.dll!<random pop r32; ret>, puis retournera dans SystemArgument1
  5. ✨tada✨

Il existe des centaines de gadgets utilisables dans ntdll.dll (au moins dans ma version), ce qui rend la détection délicate.

En inspectant l'appel, contrairement à l'injection APC classique, ApcRoutine pointera simplement vers une adresse légitime dans ntdll.dll.

Visualisation

Visualisation de la technique

Vecteurs de détection possibles

C'est probablement un peu délicat à détecter. Lors de l'inspection des appels à NtQueueApcThreadEx, vérifiez si l'un des arguments pointe vers de la mémoire exécutable. Une autre piste de détection possible consiste à vérifier si ApcRoutine pointe vers une adresse dans ntdll — mais cela risque de générer beaucoup de faux positifs.

Cette technique a été initialement décrite dans l'article d'Avast sur Raspberry Robin ici.

Télécharger l’outil