先确认uname -r内核版本和/etc/os-release发行版信息,再用linux-exploit-suggester.sh -k $(uname -r)快速筛查高危漏洞,最后通过apt list或rpm -q验证补丁状态,三者缺一不可。

直接看内核版本和已安装软件包,再用轻量工具交叉验证,比盲目跑全量扫描更准、更快、更可靠。
查内核版本和发行版信息
所有内核漏洞都绑定具体版本范围,不先确认 uname -r 和发行版,后续扫描全是无的放矢。
- 运行
uname -r获取精确内核版本(如5.15.0-107-generic),注意末尾的 build 后缀也参与漏洞匹配 - 运行
cat /etc/os-release确认发行版类型和版本号(如Ubuntu 22.04.5 LTS或CentOS Stream 9),不同发行版对同一 CVE 的补丁策略可能完全不同 - 别信
hostnamectl输出的 “Kernel” 字段——它可能被 rootkit 伪造,只信/proc/sys/kernel/osrelease或直接读/lib/modules/$(uname -r)/build/Makefile
用 linux-exploit-suggester 快速筛高危内核漏洞
这个脚本不依赖网络、不装依赖、不改系统,5 秒内就能告诉你当前内核是否暴露在 Dirty Pipe、eBPF 提权等常见漏洞之下。
- 下载后加执行权限:
chmod +x linux-exploit-suggester.sh,然后直接运行./linux-exploit-suggester.sh -k $(uname -r) - 重点关注标记为
high或critical的条目,比如CVE-2022-0847 (Dirty Pipe)或CVE-2026-53362 (frag variant),这些是真实环境中被大量利用的漏洞 - 注意它的输出只是“潜在可利用”,不代表已中招;但若报告里出现
CONFIG_BPF_SYSCALL=y且你没禁用 eBPF,就得立刻评估风险
用 apt list / yum list 检查补丁状态
很多管理员以为“版本号没变=没修复”,其实主流发行版普遍采用“rebase patching”:内核版本号不变,但悄悄打了 CVE 补丁。必须查包管理器的实际状态。
- Debian/Ubuntu 下运行:
apt list --installed | grep linux-image,再查该包是否含对应 CVE 修复(例如linux-image-5.15.0-107-generic在 Ubuntu 22.04 中已修复CVE-2024-21626) - RHEL/CentOS/AlmaLinux 下运行:
rpm -q --changelog kernel | grep -i 'cve-2026-53383',确认 changelog 里真有该 CVE 的修复记录 - 如果
apt list --upgradable | grep linux或dnf list updates | grep kernel有输出,说明补丁已发布但未安装——这是最常见也最容易被忽略的风险点
绕过被篡改命令做基础完整性校验
一旦系统已被入侵,ps、ls、netstat 这些命令很可能被 rootkit 替换,直接运行会漏掉关键线索。
- 用
/bin/busybox ps或静态编译的ps(如从busybox-static包安装)替代原生ps,避免进程隐藏失效 - 检查关键二进制文件哈希:
md5sum /bin/ls /usr/bin/find /bin/ps,和同发行版官方镜像中的哈希比对;多个不一致基本可判定已中毒 - 运行
ls -la /proc/1/exe,输出必须是/sbin/init或/lib/systemd/systemd;如果是/tmp/.X11-unix/...这类路径,说明 init 已被劫持,整机信任链已崩
真正难的不是发现漏洞,而是区分“这个 CVE 是否影响我当前的补丁状态”——发行版 patch level、内核 config 选项、运行时加载模块,三者缺一不可。别只盯着 CVE 编号,得把 uname -r、apt list、zcat /proc/config.gz | grep BPF 这三样凑齐了再下结论。


















