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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
stealth_call — 헤더 전용 Windows x64 간접 syscall 라이브러리. CRT 없음, IAT 없음, VEH 안티-BP, AMSI/ETW 우회, W^X 메모리, 호출별 동적 스텁. | Kitploit
도구/GitHubGitHub/kitsune-de/stealth_call
Defensive ToolsExploitationMalware AnalysisRed TeamingPayload DevelopmentAnti-Bot
GitHubkitsune-de/stealth_call

stealth_call

헤더 전용 Windows x64 간접 syscall 라이브러리. CRT 없음, IAT 없음, VEH 안티-BP, AMSI/ETW 우회, W^X 메모리, 호출별 동적 스텁.

저장소 보기
784개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

stealth_call


이게 뭔가요?

Windows x64용 헤더 전용 라이브러리로, ntdll 임포트를 건드리지 않고, 바이너리에 문자열을 남기지 않고, EDR이 의심을 품게 만드는 일반적인 위험 신호 없이 모든 NT 시스템 콜을 호출할 수 있게 해줍니다.

CRT 없음. STL 없음. IAT 없음. 전체가 DLL 의존성 0개로 약 19KB로 컴파일됩니다.

기존 시스템 콜 라이브러리의 흔한 함정(평문 문자열, 알려진 해시 상수, ntdll이 아닌 메모리에서의 직접 시스템 콜, "이상한 짓을 하고 있다"는 신호를 보내는 IAT 임포트, SEC_NO_CHANGE IOC, CRT 비대화)을 피하도록 설계되었습니다. 여기에는 그런 게 전혀 없습니다.


기능

시스템 콜 엔진

  • 간접 시스템 콜 — 스텁이 ntdll 자체의 syscall; ret 가젯으로 점프하므로, 시스템 콜 명령이 실행될 때 RIP는 항상 ntdll 내부에 있습니다
  • 호출별 스텁 생성 — 모든 단일 호출이 임의의 잡음, 임의의 레이아웃, XOR 처리된 시스템 콜 번호로 새 스텁을 생성합니다. 재사용되는 것은 없습니다
  • W^X 강제 — 스크래치 페이지가 RW → RX → RW로 전환됩니다. RWX는 절대 할당되지 않습니다
  • 각 호출 직후 스텁 즉시 삭제
  • \KnownDlls\ntdll.dll 섹션 매핑에서 시스템 콜 추출 (파일시스템 접근 없음, ProcMon에 보이지 않음)
  • 일반적인 Win11 시스템에서 977개 시스템 콜 해석

안티-브레이크포인트

  • VEH 기반 접근 — 디버거가 대상 함수에 0xCC를 설치하면, 예외 핸들러가 원래 바이트를 조용히 복원하고, 단일 스텝으로 명령을 실행한 다음, 브레이크포인트를 다시 설치합니다. 디버거는 우회된 사실을 전혀 모릅니다. 타이밍 창 제로
  • ntdll뿐만 아니라 모든 DLL의 모든 함수에서 작동

회피

  • AMSI 우회 — AmsiScanBuffer를 패치하여 S_OK 반환
  • ETW 우회 — EtwEventWrite를 패치하여 SUCCESS 반환
  • 모든 패치는 VirtualProtect가 아닌 직접 시스템 콜로 수행
  • 모든 곳에서 XOR 암호화 문자열 — DLL 이름, 경로, 모든 것. 스택에서 복호화, 사용 후 삭제
  • 커스텀 해시 알고리즘 (FNV-1a도, CRC32도 아님 — 알려진 YARA 시그니처 없음)
  • 모든 모듈/함수 해석을 위한 PEB 워크 — GetModuleHandle 없음, GetProcAddress 없음

코드 품질

  • 헤더 전용, stealth/ 폴더를 프로젝트에 넣고 바로 사용
  • 스레드별 스크래치 페이지 + 스핀락으로 스레드 안전
  • 종료 시 전체 정리 — 스크래치 페이지 해제, 맵 제로화, VEH 제거
  • 일반적인 EDR 트램펄린에 대한 후크 탐지 (jmp rel32, jmp [rip], mov rax + jmp rax)

작동 방식

flow

시스템 콜 경로

  1. initialize()가 \KnownDlls 섹션을 통해 ntdll을 열고, PE 익스포트를 파싱하고, 모든 시스템 콜 번호를 가져옵니다
  2. ntdll .text에서 syscall; ret 가젯을 스캔 — 실제 시스템 콜 명령이 실행될 위치입니다
  3. sc::invoke()를 호출하면:
    • 해시로 시스템 콜 엔트리를 조회
    • 호출 스레드의 스크래치 페이지를 가져옴 (또는 RW 전용으로 할당)
    • emit_stub()이 고유한 다형성 스텁을 생성 — 앞뒤로 임의의 잡음 명령, 호출별 키로 XOR 난독화된 시스템 콜 번호, ntdll 가젯으로의 간접 점프
    • 페이지를 RW → RX로 전환
    • 스텁을 통해 호출
    • RX → RW로 다시 전환
    • 스텁 바이트를 제로화

어느 시점에도 RWX 메모리는 존재하지 않습니다. 어느 시점에도 syscall 명령이 ntdll 외부에서 실행되지 않습니다. 어느 시점에도 시스템 콜 번호가 평문으로 저장되지 않습니다.

VEH 트램펄린

대상 함수와 함께 tramp::invoke()를 호출합니다. 브레이크포인트가 없으면 — 함수는 오버헤드 없이 정상적으로 실행됩니다. 디버거가 0xCC를 설치했다면:

  1. INT3 예외 발생
  2. 우리의 VEH 핸들러가 주소가 테이블에 있는지 확인 (선형 스캔이 아닌 해시 조회)
  3. 디스크에서 읽은 깨끗한 복사본에서 원래 바이트 복원
  4. 트랩 플래그 설정
  5. 실행 계속 — 실제 명령이 실행됨
  6. 단일 스텝 예외 발생
  7. 핸들러가 0xCC를 다시 설치

디버거의 브레이크포인트 목록에는 여전히 활성 상태로 표시됩니다. 브레이크포인트는 우리 호출에서 절대 트리거되지 않을 뿐입니다.


빌드

root@kitploit:~
cmake -B build -A x64
cmake --build build --config Release

MSVC (VS 2019+) 및 CMake 3.15+ 필요. 출력은 임포트 0개로 약 19KB입니다.


사용법

시스템 콜

root@kitploit:~
#include "stealth/syscall.hpp"

stealth::sc::initialize();

PVOID base = nullptr;
SIZE_T size = 0x1000;
NTSTATUS status = stealth::sc::invoke<NTSTATUS>(
    HASH("NtAllocateVirtualMemory"),
    NtCurrentProcess(), &base, (ULONG_PTR)0, &size,
    (ULONG)(MEM_COMMIT | MEM_RESERVE), (ULONG)PAGE_READWRITE
);

안티-브레이크포인트

root@kitploit:~
#include "stealth/trampoline.hpp"

// x64dbg가 MessageBoxA에 BP를 설치해도 작동
int ret = stealth::tramp::invoke<int>(
    HASH_CI("user32.dll"), HASH("MessageBoxA"),
    (HWND)nullptr, (LPCSTR)"hello", (LPCSTR)"title", (UINT)MB_OK
);

AMSI / ETW

root@kitploit:~
#include "stealth/bypass.hpp"

stealth::bypass::patch_etw();
stealth::bypass::patch_amsi();

정리

root@kitploit:~
stealth::tramp::shutdown();
stealth::sc::shutdown();

프로젝트 구조

root@kitploit:~
stealth/
  common.hpp      — 메모리 연산, 스핀락, static_map, PRNG, 디버그 출력
  hash.hpp        — 컴파일 타임 커스텀 해시
  xorstr.hpp      — 컴파일 타임 XOR 문자열 암호화
  peb.hpp         — PEB 워크, PE 익스포트 파서, 후크 탐지
  syscall.hpp     — 간접 시스템 콜 엔진, 스텁 생성기, W^X, 안티-덤프
  trampoline.hpp  — VEH 기반 안티-브레이크포인트
  bypass.hpp      — AMSI + ETW 패치

라이선스

MIT — 원하는 대로 사용하세요.

도구 다운로드