Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
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
TrollDump — Inietta DLL gestite x64 nei processi GUI tramite SetWindowsHook, con un runner modulare di payload C# e un POC di dump di LSASS per test offensivi/red-team su Windows. | Kitploit
Strumenti/GitHubGitHub/cybersectroll/trolldump
Escalation di PrivilegiPost-ExploitRed TeamingSviluppo Payload
GitHubcybersectroll/trolldump

TrollDump

Inietta DLL gestite x64 nei processi GUI tramite SetWindowsHook, con un runner modulare di payload C# e un POC di dump di LSASS per test offensivi/red-team su Windows.

Vedi Repository
84882 anni faRevisionato da Kitploit

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

TrollDump

  • Inietta una DLL gestita x64 in un processo x64 gestito/non gestito (il processo deve avere GUI perché ne otteniamo l'handle della finestra) usando setwindowshook
  • Qui, come TROLL, iniettiamo nella finestra nascosta di taskmgr per fare un dump di lsass non rilevato (vedi la sezione Test Case sotto)
  • La DLL injector e la DLL iniettata sono la stessa DLL, quindi non è necessaria alcuna DLL aggiuntiva
  • Il livello di integrità del processo target deve essere uguale o inferiore a quello del processo injector

Crediti (aggiornamento/riscrittura del progetto)

Progetto originale: https://github.com/enkomio/ManagedInjector

  • codice portato per iniettare in binari a 64 bit ---> il progetto originale consente l'iniezione di DLL solo in binari a 32 bit
  • rimossa la logica IPC perché era eccessiva
  • creato codice boilerplate per eseguire direttamente il tuo payload nella funzione RunOnRemoteProcess() invece del precedente modo contorto
  • il progetto usa ancora DLLExport per far esportare funzioni a una DLL .NET
    • Nota: questa non è una dipendenza del progetto, ma più una post-elaborazione. DLLExport modificherà la tua DLL .NET finale per esportare una funzione.
    • Puoi fare manualmente l'esportazione della funzione se vuoi https://blog.xpnsec.com/rundll32-your-dotnet/

Compilazione

  • Scarica il progetto e compila la soluzione come X64, Release
  • Nessuna dipendenza esterna necessaria

Utilizzo

> Requires High Integrity depending on use case
> [System.Reflection.Assembly]::LoadFrom("C:\Users\public\TrollDump.dll")
> [TrollDump.ForFun]::Main("C:\windows\system32\taskmgr.exe")
  • In questo POC facciamo un dump di lsass; puoi eseguire qualsiasi "logica di funzione esportata dalla DLL" che vuoi modificando la funzione RunOnRemoteProcess() e ricompilando.
  • Come accennato in precedenza, il codice funge da boilerplate per l'iniezione della DLL; ciò che scegli di fare dopo è comodamente scrivibile in codice gestito c#.

Caso di test

  • Win 2019 build 17763.737 con le ultime patch di windefender
    • sia dllinject che dump di lsass
  • Altri AV (senza nome)
    • dllinject funziona correttamente
    • ovviamente, se il dump di lsass funzioni o meno dipende dal fatto che l'AV consenta a taskmgr di eseguire il dump di lsass
  • Non testato su alcun EDR -> sospetto che l'iniezione della DLL dovrebbe comunque funzionare su EDR specifici

OPSEC

  • La DLL deve essere su disco, quindi dovrebbe essere offuscata
  • La DLL dovrebbe essere usata solo per fare l'iniezione; il payload effettivo non dovrebbe mai essere incorporato nella DLL e dovrebbe essere caricato in modalità riflessa
  • Ovviamente, iniettare il CLR in un processo non gestito è sospetto, ma ehi!
  • setwindowshook, sebbene sia una tecnica classica, è più spesso associato al keylogging, non al nostro caso d'uso
  • Puoi essere super creativo con qualsiasi processo GUI in cui vuoi iniettare (se esegui come system, puoi iniettare anche in dwm.exe)

Lista dei desideri - Il progetto è stato realizzato durante il fine settimana e non ho tempo/intenzione di portare avanti quanto segue:

  • Iniettare in un processo senza GUI
    • attualmente per setwindowshook usa WH_CALLWNDPROC; puoi modificarlo per usare WH_GETMESSAGE, ma il processo target deve eseguire un message loop (GetMessage())
    • se riesci a trovare un binario senza GUI che implementi un message loop (sospetto sia improbabile), allora puoi iniettare anche in binari senza GUI
    • è comune per i processi GUI eseguire GetMessage()
  • Totalmente riflesso e senza bisogno di essere rilasciato su disco
    • In base a setwindowshook, sembra che la DLL debba essere su disco?
    • ho provato a usare i delegati c# per passare un puntatore a funzione da eseguire invece della funzione DLL esportata e non ha funzionato (questa è la classica tecnica del keylogger in c# per processi locali, ma stiamo facendo un processo remoto)
    • puoi provare integrando altre tecniche, penso sia fattibile
  • Taskmgr verrà avviato automaticamente con integrità High anche se il nostro processo corrente è Medium (quindi tecnicamente, se iniettiamo una DLL al suo interno, è un bypass UAC)
    • L'iniezione sembra funzionare correttamente secondo i risultati restituiti dalle API WIN
      • sebbene sendMessage() abbia successo, il messaggio viene silenziosamente eliminato. Spiegato qui https://stackoverflow.com/questions/40122964/cross-process-postmessage-uipi-restrictions-and-uiaccess-true
    • Tuttavia, taskmgr non riesce a chiamare la funzione esportata

Dichiarazione di non responsabilità

Dovrebbe essere usato solo per scopi educativi!

Scarica lo strumento