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
DllNotificationInjection — Un POC d'une nouvelle technique d'injection de processus "sans thread" qui fonctionne en utilisant le concept de rappels de notification de DLL dans les processus locaux et distants. | Kitploit
Outils/GitHubGitHub/dec0ne/dllnotificationinjection
ExploitationShellcodeRed Teaming
GitHubdec0ne/dllnotificationinjection

DllNotificationInjection

Un POC d'une nouvelle technique d'injection de processus "sans thread" qui fonctionne en utilisant le concept de rappels de notification de DLL dans les processus locaux et distants.

Voir le dépôt

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
47183il y a 3 ansVérifié par Kitploit

DllNotificationInjection

image image

Contributeurs principaux

Dec0ne

Description

DllNotificationInection est une POC d'une nouvelle technique d'injection de processus « sans thread » qui fonctionne en utilisant le concept de rappels de notification DLL dans les processus locaux et distants.

Un article de blog accompagnant avec plus de détails est disponible ici :

https://shorsec.io/blog/dll-notification-injection/

Comment ça marche ?

DllNotificationInection fonctionne en créant une nouvelle LDR_DLL_NOTIFICATION_ENTRY dans le processus distant. Il l'insère manuellement dans la LdrpDllNotificationList distante en patchant le List.Flink de la tête de liste et le List.Blink de la première entrée (maintenant la deuxième) de la liste.

Notre nouvelle LDR_DLL_NOTIFICATION_ENTRY pointera vers un shellcode trampoline personnalisé (construit avec le projet ShellcodeTemplate de @C5pider) qui restaurera nos modifications et exécutera un shellcode malveillant dans un nouveau thread en utilisant TpWorkCallback.

Après avoir enregistré manuellement notre nouvelle entrée dans le processus distant, nous avons simplement besoin d'attendre que le processus distant déclenche notre rappel de notification DLL en chargeant ou déchargeant une DLL. Cela n'arrive évidemment pas régulièrement dans tous les processus, donc un travail préalable pour trouver des candidats appropriés pour cette technique d'injection est nécessaire. D'après mes brèves recherches, il semble que RuntimeBroker.exe et explorer.exe soient des candidats appropriés pour cela, bien que je vous encourage à en trouver d'autres également.

Notes OPSEC

Ceci est une POC. Pour que cela soit sûr du point de vue OPSEC et échappe aux produits AV/EDR, quelques modifications sont nécessaires. Par exemple, j'ai utilisé RWX lors de l'allocation de mémoire pour les shellcodes - ne soyez pas paresseux (comme moi) et changez-les. On pourrait également vouloir remplacer OpenProcess, ReadProcessMemory et WriteProcessMemory par des API de plus bas niveau et utiliser des Indirect Syscalls ou (plug éhonté) HWSyscalls. Peut-être chiffrer les shellcodes ou même aller plus loin et modifier le shellcode trampoline selon vos besoins, ou au moins changer les valeurs de hachage par défaut dans le projet ShellcodeTemplate de @C5pider qui a été utilisé pour créer le shellcode trampoline.

Démo

https://github.com/ShorSec/DllNotificationInjection/assets/54464773/96a72dd9-80de-4cb8-ac4a-54dddfecf822

Remerciements

  • @C5pider pour son projet ShellcodeTemplate qui a été utilisé pour créer le shellcode trampoline. De plus, pour Havoc C2 qui a été utilisé dans la vidéo de démonstration de la POC.
  • Yxel et @Idov31 pour le code de correspondance de motifs binaires que nous avons utilisé depuis Cronos.
  • @modexpblog pour les définitions de diverses structures liées aux rappels de notification DLL qui ont été utilisées dans cette POC.
  • @NinjaParanoid pour son article de blog sur les TpWorkCallbacks qui ont été utilisés dans cette POC.
  • @onlymalware pour sa POC UnregisterAllLdrRegisterDllNotification, elle m'a donné de l'inspiration et m'a aidé à comprendre certains des mécanismes internes de la LdrpDllNotificationList.
  • Sektor7 pour le shellcode calc utilisé dans cette POC. Ils sont géniaux de toute façon et je recommande vivement leurs cours !
  • @x86matthew et @Kharosx0 pour leurs commentaires (1, 2) concernant la fonction GetNtdllBase().
Télécharger l’outil