Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
DllNotificationInjection — Un POC di una nuova tecnica di iniezione di processi “threadless” che funziona utilizzando il concetto di DLL Notification Callbacks in processi locali e remoti. | Kitploit
Strumenti/GitHubGitHub/dec0ne/dllnotificationinjection
ExploitShellcodeRed Teaming
GitHubdec0ne/dllnotificationinjection

DllNotificationInjection

Un POC di una nuova tecnica di iniezione di processi “threadless” che funziona utilizzando il concetto di DLL Notification Callbacks in processi locali e remoti.

Vedi Repository

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
471833 anni faRevisionato da Kitploit

DllNotificationInjection

image image

Contributori principali

Dec0ne

Descrizione

DllNotificationInection è un POC di una nuova tecnica di processo injection "senza thread" che funziona sfruttando il concetto di DLL Notification Callback in processi locali e remoti.

Un post di blog accompagnatorio con maggiori dettagli è disponibile qui:

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

Come funziona?

DllNotificationInection funziona creando una nuova LDR_DLL_NOTIFICATION_ENTRY nel processo remoto. Lo inserisce manualmente nella LdrpDllNotificationList del processo remoto modificando il List.Flink della testa della lista e il List.Blink della prima voce (ora seconda) della lista.

La nostra nuova LDR_DLL_NOTIFICATION_ENTRY punterà a uno shellcode trampolino personalizzato (costruito con il progetto ShellcodeTemplate di @C5pider) che ripristinerà le nostre modifiche ed eseguirà uno shellcode malevolo in un nuovo thread utilizzando TpWorkCallback.

Dopo aver registrato manualmente la nostra nuova voce nel processo remoto, dobbiamo solo attendere che il processo remoto attivi la nostra DLL Notification Callback caricando o scaricando qualche DLL. Ovviamente questo non accade regolarmente in ogni processo, quindi è necessario un lavoro preliminare per trovare candidati adatti per questa tecnica di injection. Da una breve ricerca, sembra che RuntimeBroker.exe e explorer.exe siano candidati adatti, anche se ti incoraggio a trovarne altri.

Note OPSEC

Questo è un POC. Per renderlo sicuro dal punto di vista dell'OPSEC e per eludere prodotti AV/EDR, sono necessarie alcune modifiche. Ad esempio, ho usato RWX quando allocavo memoria per gli shellcode – non essere pigro (come me) e cambiali. Si potrebbe anche voler sostituire OpenProcess, ReadProcessMemory e WriteProcessMemory con API di livello inferiore e usare Indirect Syscalls o (plug spudorato) HWSyscalls. Forse crittografare gli shellcode o addirittura andare oltre e modificare lo shellcode trampolino per adattarlo alle proprie esigenze, o almeno cambiare i valori hash predefiniti nel progetto ShellcodeTemplate di @C5pider che è stato utilizzato per creare lo shellcode trampolino.

Demo

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

Riconoscimenti

  • @C5pider per il suo progetto ShellcodeTemplate che è stato utilizzato per creare lo shellcode trampolino. Inoltre, per Havoc C2 utilizzato nel video dimostrativo del POC.
  • Yxel e @Idov31 per il codice di pattern matching binario che abbiamo usato da Cronos.
  • @modexpblog per le definizioni di varie strutture relative ai DLL Notification Callback utilizzate in questo POC.
  • @NinjaParanoid per il suo post sul blog sui TpWorkCallback che sono stati utilizzati in questo POC.
  • @onlymalware per il suo POC UnregisterAllLdrRegisterDllNotification, mi ha dato un po' di ispirazione e mi ha aiutato a capire alcuni dei meccanismi interni di LdrpDllNotificationList.
  • Sektor7 per lo shellcode della calcolatrice usato in questo POC. Sono comunque fantastici e consiglio vivamente i loro corsi!
  • @x86matthew e @Kharosx0 per i loro commenti (1, 2) riguardanti la funzione GetNtdllBase().
Scarica lo strumento