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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
ksentinel — 시스템 콜 후킹 탐지를 위한 리눅스 커널 무결성 모니터 | Kitploit
도구/GitHubGitHub/matheuzsecurity/ksentinel
Defensive ToolsIntrusion Detection
GitHubmatheuzsecurity/ksentinel

ksentinel

시스템 콜 후킹 탐지를 위한 리눅스 커널 무결성 모니터

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

ksentinel - 커널 시스템 콜 무결성 모니터

Singularity 루트킷

개요

ksentinel은 중요 커널 함수와 시스템 콜 테이블의 무단 수정을 모니터링합니다. ftrace 훅, kprobes, 시스템 콜 테이블 하이재킹 등 대부분의 루트킷이 표적으로 삼는 일반적인 시스템 콜을 탐지합니다.

특징

  • 함수 프롤로그 무결성 검사 (FNV-1a 해시 기반)
  • 시스템 콜 테이블 모니터링 (512개 항목)
  • LSTAR MSR 확인 (x86_64 시스템 콜 진입점)
  • 잠금 해제 키 메커니즘을 통한 언로드 방지 보호
  • 설정 가능한 간격으로 지속적 모니터링

참고: ksentinel은 초기 버전입니다. 향후 커밋에서 더 많은 개선이 이루어질 예정입니다.

모니터링되는 함수

VFS 계층:

  • filldir, filldir64, do_getdents64, vfs_read, vfs_write, vfs_open

네트워크 스택:

  • tcp4_seq_show, tcp6_seq_show, udp4_seq_show, udp6_seq_show

자격 증명:

  • commit_creds, prepare_kernel_cred

모듈 시스템:

  • load_module, free_module

추적 인프라:

  • register_kprobe, register_ftrace_function, ftrace_set_filter

접두사 매칭을 통해 500개 이상의 추가 시스템 콜 래퍼 포함.

빌드

root@kitploit:~
make

컴파일 중에 임의의 32자 잠금 해제 키가 생성되어 표시됩니다. 즉시 기록해 두십시오. 이 키는 컴파일된 모듈에 내장되며 외부에 저장되지 않습니다.

언로드 방지 보호가 활성화된 경우 안전하게 보관하십시오.

설치

root@kitploit:~
sudo make install

모듈은 lsmod에서 숨김 상태로 로드되며 기본적으로 언로드 방지 보호가 활성화됩니다.

사용법

수동 로드

root@kitploit:~
sudo insmod ksentinel.ko

관리자 스크립트 사용

root@kitploit:~
sudo ./ksentinel-manager.sh load      # 모듈 로드
sudo ./ksentinel-manager.sh status    # 상태 확인
sudo ./ksentinel-manager.sh watch     # 실시간 모니터링
sudo ./ksentinel-manager.sh violations # 알림 확인

모니터링 로그

root@kitploit:~
dmesg -wT | grep ksentinel

모듈 잠금 해제

언로드 방지가 활성화된 경우 제거 전에 모듈을 잠금 해제해야 합니다:

root@kitploit:~
echo "your_32char_key" > /proc/.ksctl

또는 관리자 사용:

root@kitploit:~
sudo ./ksentinel-manager.sh unlock

모듈 제거

root@kitploit:~
sudo rmmod ksentinel

모듈 파라미터

사용자 정의 파라미터 예시:

root@kitploit:~
sudo insmod ksentinel.ko period_ms=5000 anti_unload=false

성능 고려 사항

ksentinel은 period_ms 파라미터에 따라 주기적으로 무결성 검사를 수행합니다.

간격이 짧을수록 탐지 속도는 빨라지지만 CPU 사용량이 증가합니다. 기본 간격(2000ms)은 최신 시스템에 미치는 영향이 미미합니다.

탐지 예시

인라인 훅 탐지

root@kitploit:~
ksentinel: [CHANGE - HOOK PATTERN] sys_getdents64 @ 0xffffffff81234567
  baseline=1234567890abcdef  current=fedcba0987654321
  bytes: e9 ab cd ef 12 90 90 90 ...
  flags: JMP/CALL_DETECTED ENDBR64_PREFIX

시스템 콜 테이블 훅

root@kitploit:~
ksentinel: [SCT HOOK] syscall[78] expected=0xffffffff81111111 got=0xffffffffa0222222 (fake_getdents+0x0)

LSTAR 변조

root@kitploit:~
ksentinel: [LSTAR TAMPERED] baseline=0xffffffff81800000 now=0xffffffffa0300000 (evil_syscall_entry+0x0)

알려진 루트킷 탐지

ksentinel은 다음이 수행한 수정을 탐지할 수 있습니다:

  • PUMAKIT - ftrace 기반 훅킹 (18개 시스템 콜)
  • Diamorphine - 시스템 콜 테이블 패칭
  • KoviD - kprobes 기반 숨김

탐지는 루트킷보다 먼저 ksentinel을 로드했는지에 따라 달라집니다.

요구 사항

커널 설정:

  • CONFIG_KALLSYMS=y
  • CONFIG_KPROBES=y
  • CONFIG_MODULES=y

지원되는 커널:

  • Linux 5.4 ~ 6.12+
  • x86_64 아키텍처 (LSTAR 검사)
  • ARM64 지원 (LSTAR 검사 없음)

제한 사항

  1. 탐지만 가능 - 루트킷을 방지하거나 제거하지 않음
  2. 기준 시스템 가정 - 모듈 로드 시 커널이 깨끗하다고 가정
  3. 경쟁 조건 - ksentinel보다 먼저 로드된 루트킷은 탐지 불가
  4. 회피 가능성 - 정교한 루트킷은 모니터링 코드 자체를 표적으로 삼을 수 있음

보안 고려 사항

  • 부팅 시 가능한 한 빨리 ksentinel을 로드하십시오
  • 잠금 해제 키를 오프라인 상태로 안전하게 보관하십시오

문제 해결

모듈이 로드되지 않는 경우

커널 설정 확인:

root@kitploit:~
grep -E "KALLSYMS|KPROBES" /boot/config-$(uname -r)

모듈이 언로드되지 않는 경우

모듈이 언로드 방지 보호와 함께 숨겨져 있습니다. 먼저 잠금 해제하십시오:

root@kitploit:~
sudo ./ksentinel-manager.sh unlock

개발

root@kitploit:~
make clean          # 빌드 아티팩트 정리
make                # 모듈 컴파일
make install        # 모듈 로드
make uninstall      # 모듈 언로드

기여

기여를 환영합니다. 코드 스타일을 유지하고 새로운 기능에 대한 테스트를 추가해주세요.

라이선스

GPL-2.0-only

이 프로그램은 GPL 버전 2.0에 따라 라이선스가 부여된 자유 소프트웨어입니다. 모든 수정 사항은 원저작자에 대한 표시를 유지하고 동일한 라이선스로 배포되어야 합니다.

전체 조건은 LICENSE 파일을 참조하십시오.

저자

MatheuZSecurity

루트킷 연구자 커뮤니티: https://discord.gg/66N5ZQppU7

면책 조항

이 도구는 보안 연구 및 시스템 관리를 위한 것입니다. 책임감 있게 사용하십시오. 저자는 이 소프트웨어의 오용이나 손해에 대해 책임을 지지 않습니다.

도구 다운로드
파라미터타입기본값설명
period_msuint2000무결성 검사 간격 (밀리초)
sym_prefixesstring"sys_,x64_sys,do_sys,ksys_"모니터링할 심볼 접두사 (쉼표로 구분)
extra_symsstring""추가로 감시할 특정 심볼
anti_unloadbooltrue언로드 방지 보호 활성화