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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Bitmancer — 공격적 보안 개발을 위한 Nim 라이브러리 | Kitploit
도구/GitHubGitHub/zimawhit3/bitmancer
IDS/IPS EvasionShellcodePost-ExploitationUtilities & FrameworksBinary AnalysisRed TeamingPayload Development
GitHubzimawhit3/bitmancer

Bitmancer

공격적 보안 개발을 위한 Nim 라이브러리

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Bitmancer

Bitmancer는 Nim으로 작성된 Windows 운영 체제용 공격적 보안(Offensive Security) 도구 개발을 위한 라이브러리입니다. 공통 API, 루틴, 그리고 고도로 설정 가능하고 위치 독립적이며 독립 실행형인 구현을 제공하는 것을 목표로 합니다.

임플란트(Implant)를 개발하거나, 빠른 PoC를 테스트하거나, 완전히 새로운 멋진 도구를 작성하려는 경우 - Bitmancer가 시작하는 데 도움이 될 수 있습니다!

⚠️ 이 저장소는 현재 대규모 작업 진행 중(WIP)입니다! 사용 중 문제가 발생할 수 있으며 현재로서는 안정성이 보장되지 않습니다. ⚠️

의존성

Bitmancer는 해당 타입을 위해 부분적으로 winim을 사용합니다. 설치하려면 다음을 실행하세요:

nimble install winim

설치

Bitmancer는 아직 nimble 저장소의 일부가 아닙니다. 현재로서는 GitHub에서 다음 명령을 실행하여 설치할 수 있습니다:

nimble install https://github.com/zimawhit3/Bitmancer

컴파일

MingW와 Nim은 MSVCRT 및 Kernel32에 대한 의존성뿐만 아니라 Nim의 System 모듈에서 사용하는 전역 변수도 도입합니다. 위치 독립 코드를 위해 이러한 것들을 피하려면 제공된 nim.cfg를 사용하세요.

컴파일하려면: nim c -d:mingw <Your_Nim_File>

사용법

모든 모듈에 대해:

root@kitploit:~
import Bitmancer

NTDLL 루틴이나 시스템 콜이 필요하지 않다면 간단히 다음을 사용할 수 있습니다:

root@kitploit:~
import Bitmancer/core

해싱 프로시저만 필요하다면:

root@kitploit:~
import Bitmancer/core/obfuscation/hash

현재 TODO:

  • 컴파일 타임 정의 단순화 (YAML?)
  • CI/CD
  • 예제
  • 문서
  • 더 큰 컴파일 타임 해시 시드
  • 테스트!

기능

현재 지원되는 기능:

  • ApiSet 이름 확인
  • 공통 API (GetProcAddress, GetModuleHandle, GetSystemTime 등)
  • 해싱
    • 컴파일 타임
    • 런타임
  • 수동 매퍼(Manual Mapper)
    • 디스크에서
    • 메모리에서 🚧
      • DLL 🚧
      • COFF 🚧
  • NTDLL
    • Nt* 시스템 콜
    • Rtl* 프로시저
  • NTLoader 데이터베이스
    • 연결 리스트 (LDR_DATA_TABLE_ENTRY)
    • 레드-블랙 트리 (RTL_BALANCED_NODE)
  • PE(Portable Executable) 파싱 및 유틸리티
  • SSN 열거
    • Hell's Gate
    • Halo's Gate
    • Tartarus' Gate
    • LdrThunkSignatures
    • ZwCounter
  • 스택 문자열
  • 시스템 콜 회피 기법
    • 직접 시스템 콜
    • 간접 시스템 콜

지원을 목표로 하는 향후 기능:

  • 안티 디버그 루틴 및 유틸리티
  • 암호화
  • 예외 처리
  • 콜백
    • 계측형
    • 네이티브
    • VEH
  • 후킹 루틴 및 유틸리티
  • 더 많은 NTDLL 래퍼
  • 슬립 회피 기법
    • Death Sleep
    • CreateTimerQueueTimer
  • 스택 스푸핑
  • 시스템 콜 회피 기법
    • Tamper
  • x86 지원

구현되길 원하는 기능/기법이 있다면 알려주세요!

예제

스택 문자열:

root@kitploit:~
var wStr {.stackStringW.} = "Hello!"
var cStr {.stackStringA.} = "World!"

현재 사용할 수 없는 시스템 콜에 대한 래퍼를 생성하려는 경우 기본 흐름은 다음과 같습니다:

root@kitploit:~
## Import syscalls
import Bitmancer/syscalls

## For hashing
import Bitmancer/core/obfuscation/hash

## Define your type
type NtClose = proc(h: HANDLE): NTSTATUS {.stdcall, gcsafe.}

## Generate the wrapper
genSyscall(NtClose)

## Define configurations for how to retrieve and execute the syscall

## The procedure's symbol enumeration method - available options are:
## UseEAT - use the export address table to resolve the symbol
## UseIAT - use the import address table to resolve the symbol
## UseLdrThunks - use the NTLoader's LdrThunkSignatures to map a clean NTDLL to resolve symbols from
const symEnum = SymbolEnumeration.UseEAT

## The SSN enumeration method - available options are:
## HellsGate
## HalosGate
## TartarusGate
## ZwCounter
const ssnEnum = SsnEnumeration.HellsGate

## Finally, the execution method - available options are:
## Direct   - use the direct syscall stub
## Indirect - use the indirect syscall stub
const exeEnum = SyscallExecution.Indirect

## Define an ident to use to identify the symbol
const NtCloseHash = ctDjb2 "NtClose"

## Retrive NTDLL
let Ntdll = ? NTDLL_BASE()

## Call ctGetNtSyscall, retrieving the NtSyscall object containing the SSN, pointer to the address of the function
## and a casted stub to your type.
let NtSyscall = ctGetNtSyscall[NtClose](Ntdll, ModuleHandle(NULL), NtCloseHash, symEnum, ssnEnum, exeEnum)

## Finally, call the wrapper!
NtCloseWrapper(h, NtSyscall.wSyscall, NtSyscall.pSyscall, NtSyscall.pFunction)

전체 예제는 runShellCode 예제를 참조하세요.
더 많은 예제는 ntdll에서도 찾을 수 있습니다.

도구 다운로드