Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
TrollDump — SetWindowsHook를 통해 x64 관리형 DLL을 GUI 프로세스에 주입하며, 모듈식 C# 페이로드 실행기와 LSASS 덤프 POC를 포함한 레드팀/공격적 Windows 테스트용 도구입니다. | Kitploit
도구/GitHubGitHub/cybersectroll/trolldump
Privilege EscalationPost-ExploitationRed TeamingPayload Development
GitHubcybersectroll/trolldump

TrollDump

SetWindowsHook를 통해 x64 관리형 DLL을 GUI 프로세스에 주입하며, 모듈식 C# 페이로드 실행기와 LSASS 덤프 POC를 포함한 레드팀/공격적 Windows 테스트용 도구입니다.

저장소 보기
8482년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

TrollDump

  • x64 관리 DLL을 x64 관리/비관리 프로세스에 주입합니다 (프로세스는 GUI가 있어야 합니다. 창 핸들을 얻기 때문입니다) setwindowshook 사용
  • 여기서는 TROLL 용도로, 숨겨진 창 taskmgr에 주입하여 lsass 덤프를 탐지되지 않게 수행합니다 (아래 테스트 사례 섹션 참조)
  • 인젝터 DLL과 주입된 DLL은 동일한 DLL이므로 추가 DLL이 필요 없습니다
  • 대상 프로세스의 무결성 수준은 인젝터 프로세스와 같거나 낮아야 합니다

크레딧 (프로젝트 업그레이드/재작성)

원본 프로젝트: https://github.com/enkomio/ManagedInjector

  • 64비트 바이너리에 주입하도록 코드 포팅 ---> 원본 프로젝트는 32비트 바이너리에만 DLL 주입을 허용합니다
  • 과도했던 IPC 로직을 제거함
  • RunOnRemoteProcess() 함수에서 페이로드를 직접 실행할 수 있도록 보일러플레이트 코드를 생성함 (기존의 복잡한 방식 대신)
  • 프로젝트는 여전히 DLLExport를 사용하여 .NET DLL이 함수를 내보내도록 함
    • 이는 프로젝트 의존성이 아니라 사후 처리에 가깝습니다. DLLExport는 최종 .NET DLL을 수정하여 함수를 내보내게 합니다.
    • 원한다면 함수 내보내기를 수동으로 수행할 수도 있습니다 https://blog.xpnsec.com/rundll32-your-dotnet/

컴파일

  • 프로젝트를 다운로드하고 솔루션을 X64, Release로 컴파일합니다
  • 외부 의존성 불필요

사용법

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")
  • 이 POC에서는 lsass 덤프를 수행합니다. RunOnRemoteProcess() 함수를 수정하고 다시 컴파일하여 원하는 "DLL 내보내기 함수 로직"을 실행할 수 있습니다.
  • 앞서 언급했듯이 이 코드는 DLL 주입을 위한 보일러플레이트 역할을 하며, 그 후 수행할 작업은 C# 관리 코드로 편리하게 작성할 수 있습니다.

테스트 사례

  • 최신 windefender 패치가 적용된 Win 2019 빌드 17763.737
    • dllinject + lsass 덤프 모두 수행
  • 기타 AV (이름 미공개)
    • dllinject는 정상 작동
    • 물론 lsass 덤프가 작동하는지 여부는 AV가 taskmgr이 lsass를 덤프하도록 허용하는지에 달려 있습니다
  • 어떤 EDR에서도 테스트되지 않음 -> 특정 EDR에서는 DLL 주입이 여전히 작동할 것으로 예상합니다

OPSEC

  • DLL이 디스크에 있어야 하므로 난독화되어야 합니다
  • DLL은 주입에만 사용해야 하며, 실제 페이로드는 DLL에 포함시키지 말고 반사적으로 로드해야 합니다
  • 물론 비관리 프로세스에 CLR을 주입하는 것은 의심스럽지만 어쨌든!
  • setwindowshook은 고전적인 기법이지만 대부분 키로깅과 연관되어 있으며, 우리의 사용 사례와는 다릅니다
  • 어떤 GUI 프로세스에 주입할지 매우 창의적으로 정할 수 있습니다 (system으로 실행 중이라면 dwm.exe에도 주입 가능)

Wishlist - 프로젝트는 주말 동안 완성되었으며 다음 사항을 추구할 시간/의도가 없습니다:

  • GUI가 없는 프로세스에 주입
    • 현재 setwindowshook은 WH_CALLWNDPROC를 사용합니다. WH_GETMESSAGE로 수정할 수 있지만 대상 프로세스는 메시지 루프(GetMessage())를 실행 중이어야 합니다
    • 메시지 루프를 구현하는 비GUI 바이너리를 찾을 수 있다면 (아마 없을 것 같지만) GUI 없는 바이너리에도 주입할 수 있습니다
    • GUI 프로세스는 일반적으로 GetMessage()를 실행합니다
  • 완전 반사형이며 디스크에 드롭할 필요 없음
    • setwindowshook 기반으로 볼 때 DLL은 디스크에 있어야 하는 것 같습니다
    • C# 대리자를 사용하여 내보낸 DLL 함수 대신 함수 포인터를 전달해 보았지만 작동하지 않았습니다 (이것은 로컬 프로세스용 고전적인 C# 키로거 기법이지만 우리는 원격 프로세스를 대상으로 합니다)
    • 다른 기법을 통합하여 시도해 볼 수 있습니다. 가능하다고 생각합니다
  • Taskmgr은 현재 프로세스가 Medium이어도 자동으로 High 무결성으로 실행됩니다 (따라서 기술적으로 DLL을 주입하면 UAC 우회입니다)
    • WIN API 반환 결과에 따르면 주입은 정상 작동하는 것으로 보입니다
      • sendMessage()는 성공하지만 메시지는 조용히 삭제됩니다. 여기에 설명됨 https://stackoverflow.com/questions/40122964/cross-process-postmessage-uipi-restrictions-and-uiaccess-true
    • 그러나 taskmgr은 내보낸 함수를 호출하지 못합니다

면책 조항

교육 목적으로만 사용해야 합니다!

도구 다운로드