Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
DllNotificationInjection — Uma PoC de uma nova técnica de injeção de processos “threadless” que funciona utilizando o conceito de Callbacks de Notificação de DLL em processos locais e remotos. | Kitploit
Ferramentas/GitHubGitHub/dec0ne/dllnotificationinjection
ExploraçãoShellcodeRed Teaming
GitHubdec0ne/dllnotificationinjection

DllNotificationInjection

Uma PoC de uma nova técnica de injeção de processos “threadless” que funciona utilizando o conceito de Callbacks de Notificação de DLL em processos locais e remotos.

Ver Repositório

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
47183há 3 anosRevisado pelo Kitploit

DllNotificationInjection

image image

Principais Contribuidores

Dec0ne

Descrição

DllNotificationInection é uma Prova de Conceito (POC) de uma nova técnica de injeção de processo "threadless" que funciona utilizando o conceito de Callbacks de Notificação de DLL em processos locais e remotos.

Um post de blog acompanhante com mais detalhes está disponível aqui:

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

Como Funciona?

DllNotificationInection funciona criando uma nova LDR_DLL_NOTIFICATION_ENTRY no processo remoto. Ela a insere manualmente na LdrpDllNotificationList remota através de patches do List.Flink do cabeçalho da lista e do List.Blink da primeira entrada (agora segunda) da lista.

Nossa nova LDR_DLL_NOTIFICATION_ENTRY apontará para um shellcode trampoline personalizado (construído com o projeto ShellcodeTemplate do @C5pider) que restaurará nossas alterações e executará um shellcode malicioso em uma nova thread usando TpWorkCallback.

Após registrar manualmente nossa nova entrada no processo remoto, só precisamos esperar que o processo remoto acione nosso Callback de Notificação de DLL carregando ou descarregando alguma DLL. Isso obviamente não acontece regularmente em todo processo, então é necessário um trabalho prévio para encontrar candidatos adequados para essa técnica de injeção. A partir de minhas breves pesquisas, parece que RuntimeBroker.exe e explorer.exe são candidatos adequados para isso, embora eu encoraje você a encontrar outros também.

Notas de OPSEC

Isso é uma POC. Para que seja seguro em termos de OPSEC e evite produtos AV/EDR, algumas modificações são necessárias. Por exemplo, usei RWX ao alocar memória para os shellcodes – não seja preguiçoso (como eu) e altere isso. Também pode ser desejável substituir OpenProcess, ReadProcessMemory e WriteProcessMemory por APIs de nível mais baixo e usar Indirect Syscalls ou (propaganda descarada) HWSyscalls. Talvez criptografe os shellcodes ou vá além e modifique o shellcode trampoline para atender às suas necessidades, ou pelo menos altere os valores hash padrão no projeto ShellcodeTemplate do @C5pider que foi utilizado para criar o shellcode trampoline.

Demonstração

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

Agradecimentos

  • @C5pider pelo seu projeto ShellcodeTemplate que que foi usado para criar o shellcode trampoline. Além disso, pelo Havoc C2 que foi usado no Vídeo de Demonstração da POC.
  • Yxel e @Idov31 pelo código de correspondência de padrões binários que usamos do Cronos.
  • @modexpblog pelas definições de várias estruturas relacionadas a Callbacks de Notificação de DLL que foram usadas nesta POC.
  • @NinjaParanoid pelo seu post de blog sobre TpWorkCallbacks que foram usados nesta POC.
  • @onlymalware pela sua POC UnregisterAllLdrRegisterDllNotification, que me deu alguma inspiração e ajudou a entender alguns dos funcionamentos internos da LdrpDllNotificationList.
  • Sektor7 pelo shellcode da calculadora usado nesta POC. Eles são incríveis de qualquer forma e recomendo fortemente seus cursos!
  • @x86matthew e @Kharosx0 por seus comentários (1, 2) sobre a função GetNtdllBase().
Baixar ferramenta