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
TrollDump — Injeta DLLs gerenciadas x64 em processos GUI via SetWindowsHook, com um executor de payloads C# modular e POC de dump do LSASS para testes ofensivos/red-team em Windows. | Kitploit
Ferramentas/GitHubGitHub/cybersectroll/trolldump
Escalada de PrivilégiosPós-ExploraçãoRed TeamingDesenvolvimento de Payloads
GitHubcybersectroll/trolldump

TrollDump

Injeta DLLs gerenciadas x64 em processos GUI via SetWindowsHook, com um executor de payloads C# modular e POC de dump do LSASS para testes ofensivos/red-team em Windows.

Ver Repositório
848há 2 anosRevisado pelo Kitploit

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

TrollDump

  • Injeta DLL gerenciada x64 em processo gerenciado/não gerenciado x64 (o processo deve ter GUI porque obtemos o seu handle de janela) usando setwindowshook
  • Aqui, como um TROLL, injetamos na janela oculta do taskmgr para fazer um dump de lsass sem detecção (veja a seção Test Case abaixo)
  • A DLL injetora e a DLL injetada são a mesma DLL, portanto nenhuma DLL adicional é necessária
  • O nível de integridade do processo alvo deve ser igual ou inferior ao do processo injetor

Créditos (atualização/reescrita do projeto)

Projeto Original: https://github.com/enkomio/ManagedInjector

  • portou o código para injetar em binários de 64 bits ---> o projeto original só permite injeção de DLL em binários de 32 bits
  • removeu a lógica de IPC porque era excessiva
  • criou código boilerplate para executar seu payload diretamente na função RunOnRemoteProcess() em vez do modo complicado anterior
  • o projeto ainda usa DLLExport para fazer uma DLL .NET exportar funções
    • Nota: isto não é uma dependência do projeto, mas sim um pós-processamento. O DLLExport modificará sua DLL .NET final para exportar uma função.
    • Você pode fazer a exportação de função manualmente, se quiser https://blog.xpnsec.com/rundll32-your-dotnet/

Compilação

  • Baixe o projeto e compile a solução como X64, Release
  • Nenhuma dependência externa é necessária

Uso

root@kitploit:~
> Requires High Integrity depending on use case
> [System.Reflection.Assembly]::LoadFrom("C:\Users\public\TrollDump.dll")
> [TrollDump.ForFun]::Main("C:\windows\system32\taskmgr.exe")
  • Neste POC, fazemos um dump de lsass; você pode executar qualquer "lógica de função exportada da DLL" que quiser, modificando a função RunOnRemoteProcess() e recompilando.
  • Como mencionado anteriormente, o código serve como boilerplate para a injeção de DLL; o que você escolher fazer depois pode ser convenientemente escrito em código gerenciado c#.

Caso de Teste

  • Win 2019 build 17763.737 com os patches mais recentes do windefender
    • ambos dllinject + dump de lsass
  • Outros AVs (não nomeados)
    • dllinject funciona bem
    • obviamente, se o dump de lsass funciona ou não, depende se o AV permite que o taskmgr faça o dump de lsass
  • Não testado em nenhum EDR -> suspeito que a injeção de DLL ainda deve funcionar em EDRs específicos

OPSEC

  • A DLL precisa estar no disco, portanto deve ser ofuscada
  • A DLL deve ser usada apenas para a injeção; o payload real nunca deve ser embutido na DLL e deve ser carregado de forma reflexiva
  • Obviamente, injetar CLR em um processo não gerenciado é suspeito, mas ei!
  • setwindowshook, embora seja uma técnica clássica, é mais frequentemente associado a keylogging, não ao nosso caso de uso
  • Você pode ser super criativo com qualquer processo GUI em que queira injetar (se estiver executando como system, também pode injetar em dwm.exe)

Lista de Desejos - O projeto foi feito durante o fim de semana e não tenho tempo/intenção de seguir o seguinte:

  • Injetar em processo sem GUI
    • atualmente, para setwindowshook, ele usa WH_CALLWNDPROC; você pode modificá-lo para usar WH_GETMESSAGE, mas o processo alvo deve estar executando um loop de mensagens (GetMessage())
    • se você conseguir encontrar um binário sem GUI que implemente um loop de mensagens (suspeito que seja improvável), então também poderá injetar em binários sem GUI
    • é comum que processos GUI executem GetMessage()
  • Totalmente reflexivo e sem necessidade de ser gravado no disco
    • Baseado em setwindowshook, parece que a DLL precisa estar no disco?
    • tentei usar delegados c# para passar um ponteiro de função para executar em vez da função de DLL exportada e isso não funcionou (esta é a técnica clássica de keylogger em c# para processo local, mas estamos fazendo em processo remoto)
    • você pode tentar isso incorporando outras técnicas; acho que é viável
  • O Taskmgr será gerado automaticamente como High Integrity, mesmo que nosso processo atual seja Medium (então, tecnicamente, se injetarmos a DLL nele, é um bypass de UAC)
    • A injeção parece funcionar bem, de acordo com os resultados de retorno da API WIN
      • embora sendMessage() tenha sucesso, a mensagem é silenciosamente descartada. Explicado aqui https://stackoverflow.com/questions/40122964/cross-process-postmessage-uipi-restrictions-and-uiaccess-true
    • No entanto, o taskmgr não consegue chamar a função exportada

Aviso Legal

Deve ser usado apenas para fins educacionais!

Baixar ferramenta