Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
ksentinel — Linux 内核完整性监控器,用于检测系统调用挂钩 | Kitploit
工具/GitHubGitHub/matheuzsecurity/ksentinel
防御工具入侵检测
GitHubmatheuzsecurity/ksentinel

ksentinel

Linux 内核完整性监控器,用于检测系统调用挂钩

查看仓库
887386个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

ksentinel - 内核系统调用完整性监控器

Singularity Rootkit

概述

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      # load module
sudo ./ksentinel-manager.sh status    # check status
sudo ./ksentinel-manager.sh watch     # monitor live
sudo ./ksentinel-manager.sh violations # view alerts

监控日志

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          # clean build artifacts
make                # compile module
make install        # load module
make uninstall      # unload module

贡献

欢迎贡献。请保持代码风格,并为新功能添加测试。

许可证

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启用反卸载保护