检测使用信号提升进程权限的 Linux rootkit。
有些 rootkit 会安装信号处理程序,监听特定信号以提升权限。 此工具可以通过发送信号并观察 UID 是否切换为 root 来识别这些 rootkit。 可选:启动 root shell。
已在以下环境中测试:
666)你可以从 Releases 页面 下载最新的预构建二进制文件;或从源代码构建最新的预发布版本:
git clone https://github.com/bcoles/rootkit-signal-hunter && \
cd rootkit-signal-hunter && \
cargo build --release
rootkit-signal-hunter -- [OPTIONS]
--min <MIN>:最小信号编号(默认:0)--max <MAX>:最大信号编号(默认:64)-s, --shell:启动 root shell(如果检测到)-t, --threads:工作线程数(默认:16)-p, --pid:要向其发送信号的进程 ID(默认:$$)-v, --verbose:启用详细输出[!NOTE]
--pid的实现使用$$来表示新生成进程的进程 ID。 这在非 POSIX 兼容的 shell(例如 Fish)中会失败。
诸如 Singularity
和 Diamorphine 之类的 rootkit 允许使用任意进程 ID
提权,并且可以通过默认选项轻松检测
(-s 会启动 root shell):
rootkit-signal-hunter -s
诸如 KoviD 之类的 rootkit 需要通过 -p / --pid 标志
提供特定的进程 ID:
rootkit-signal-hunter -s --pid 666
[!NOTE] 这可能会终止 ID 为
666的合法进程 (如果当前用户具有必要的权限)。
本项目采用 MIT 许可证。有关详细信息,请参阅 LICENSE 文件。
感谢 David Reguera Garcia(Dreg)在 lsrootkit 中实现了类似的基于信号的检测。
版权所有 © 2025, bcoles