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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
LibTP_Gadget — Threadpool을 통해 Nt API 호출을 프록시하기 위한 Crystal Palace 라이브러리입니다. call gadgets용으로 업데이트되었습니다. | Kitploit
도구/GitHubGitHub/saerxcit/libtp_gadget
IDS/IPS EvasionPost-ExploitationRed TeamingShellcode GenerationPayload DevelopmentAdversarial Attack
GitHubsaerxcit/libtp_gadget

LibTP_Gadget

Threadpool을 통해 Nt API 호출을 프록시하기 위한 Crystal Palace 라이브러리입니다. call gadgets용으로 업데이트되었습니다.

저장소 보기
233610개월 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

LibTP_Gadget

이것은 https://github.com/AlmondOffSec/LibTPLoadLib 을 일반화한 것으로, 임의 개수(실제로는 최대 11개이지만 충분히 쓸 만한)의 인자를 가진 API를 프록시하기 위한 것입니다. Crystal Palace 공유 라이브러리로 제공됩니다. API는 @rasta-mouse의 LibTP와 호환되도록 만들어져 spec 파일을 통해 쉽게 전환할 수 있습니다. 최신 Crystal Palace 기능을 선보이기 위한 후크가 제공됩니다.

경고 ⚠️ : 이 프로젝트는 그대로 사용할 수 없습니다. call 가젯을 찾을 수 있는 모듈은 제공하지 않습니다. 직접 찾아야 합니다. 자세한 내용은 블로그 게시물을 읽어보세요.

참고 : 11개의 인자(그중 7개는 스택에 배치됨)를 전달할 수 있기 때문에 call 가젯은 스택 프레임이 충분히 큰 함수 내에 위치해야 합니다. 최소 0x68 크기의 add rsp를 찾으세요.

경고 ⚠️ : 이 기법의 내부 동작 방식 때문에 프록시된 함수의 반환 값을 가져올 수 없습니다. NTAPI를 프록시하는 것이 일반적으로 더 실용적입니다. NTAPI의 반환 값은 "단지" NTSTATUS뿐이기 때문입니다. 그래도 함수가 실제로 성공했는지 알기 어렵게 만듭니다 🙃.

방법

  1. 대상에서 사용 가능한 모듈에서 작동하는 가젯을 찾습니다. src/tp_gadget.c에서 호출과 함수의 이름을 패치하여 해당 주소를 가져오도록 합니다. 필요하다면 어셈블리 스텁을 패치합니다( 값, 가젯이 호출할 레지스터).

LoadLibraryA
GetCallGadgetAddress
sub rsp
  • 프로젝트를 컴파일합니다: make. 출력물은 Crystal Palace 공유 라이브러리 libtp_gadget.x64.zip입니다.

  • 예제 COFF를 컴파일합니다(wininet.dll을 로드한 다음 로컬로 할당하고 셸코드를 실행하는 것뿐입니다): make -C example_print. 출력물은 COFF 파일 example_print.x64.o입니다.

  • 링커가 DFR에서 우리의 후크를 사용하도록 지시하는 Crystal Palace spec 파일을 생성합니다: Tradecraft Garden의 Simple PIC spec 파일을 사용하고 mergelib "../libtcg.x64.zip"과 export 사이에 다음 줄을 추가합니다:

  • root@kitploit:~
            mergelib "../libtcg.x64.zip"
    
            attach "KERNEL32$LoadLibraryA"          "H_LoadLibraryA"
            optout "ProxyNtApi"                     "H_LoadLibraryA"
            attach "NTDLL$NtOpenProcess"            "H_NtOpenProcess"
            attach "NTDLL$NtAllocateVirtualMemory"  "H_NtAllocateVirtualMemory"
            attach "NTDLL$NtWriteVirtualMemory"     "H_NtWriteVirtualMemory"
            attach "NTDLL$NtProtectVirtualMemory"   "H_NtProtectVirtualMemory"
            attach "NTDLL$NtFreeVirtualMemory"      "H_NtFreeVirtualMemory"
            attach "NTDLL$NtClose"                  "H_NtClose"
            attach "NTDLL$NtCreateThreadEx"         "H_NtCreateThreadEx"
            attach "NTDLL$NtOpenThread"             "H_NtOpenThread"
            attach "NTDLL$NtSuspendThread"          "H_NtSuspendThread"
            attach "NTDLL$NtResumeThread"           "H_NtResumeThread"
            attach "NTDLL$NtGetContextThread"       "H_NtGetContextThread"
            attach "NTDLL$NtSetContextThread"       "H_NtSetContextThread"
            attach "NTDLL$NtWaitForSingleObject"    "H_NtWaitForSingleObject"
    
    1. Crystal Palace를 사용하여 전체를 링크해 PIC 셸코드를 만듭니다: path/to/crystalpalace/link simplepic_modified/loader.spec example_print/example_print.x64.o out.bin.

    2. 아무 로더를 사용하여 셸코드를 실행합니다.

    크레딧

    • Raphael Mudge, Adversary Fan Fiction Writers Guild
    • Chetan Nayak, Dark Vortex
    • Daniel Duggan, Rasta Mouse
    도구 다운로드