Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

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

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

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
netviser-linux-security-auditor — 只读、无代理的 Linux 内核安全配置审计工具(本地与 SSH)。初始重点:针对 CVE-2026-98432 的 TCP 迁移 / MPTCP 检查。 | Kitploit
工具/GitHubGitHub/maxigentr/netviser-linux-security-auditor
防御工具侦察漏洞分析脚本与自动化配置审计安全虚拟化网络安全事件响应

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
GitHub
maxigentr/netviser-linux-security-auditor

netviser-linux-security-auditor

只读、无代理的 Linux 内核安全配置审计工具(本地与 SSH)。初始重点:针对 CVE-2026-98432 的 TCP 迁移 / MPTCP 检查。

查看仓库
166天前尚未审核

Netviser Linux 安全审计工具

一个用 Python 编写的轻量级开源 Linux 安全审计工具。

通过 SSH 审计本地和远程 Linux 服务器,无需安装代理,也无需修改系统配置。

这是一个配置与补丁状态审计工具,而非漏洞利用扫描器。 它会报告与漏洞相关的内核设置和使用情况,并将正在运行的内核软件包与厂商修复版本进行比较。它绝不会尝试触发漏洞。

功能特性

功能v0.2.0
Python 3.8+,无第三方依赖✅
本地 Linux 审计✅
通过 SSH 远程审计(无代理)✅
并行扫描多台服务器✅
Ubuntu / Debian / Rocky / AlmaLinux / RHEL / Fedora✅
TCP 请求套接字迁移检查✅
MPTCP 配置及使用情况检查✅
内核、发行版及待重启检测✅
JSON / CSV 报告✅
内核 CVE 补丁验证(Ubuntu、Debian、RHEL、Rocky、AlmaLinux、CentOS)✅
自动安全更新❌ 从不
更改服务器配置❌ 从不

工作原理

控制器(你的 Mac 或 Linux 工作站)根据所选检查项构建一个小型 POSIX sh 脚本,并通过 SSH 将其管道传输到每个目标上的 sh -s。不会向目标复制或安装任何内容。脚本会打印 key=value 形式的事实数据;所有评估都在控制器上进行,控制器将目标的输出视为不可信数据(剥离控制字符、截断数值、中和 CSV 公式注入)。

在运行之前,请仔细查看将在你的服务器上执行的确切内容:

python3 netviser_cve_audit.py --print-script

目标主机只需要 sh 和标准工具(来自 iproute2 的 ss、awk、grep、sed)。目标主机上不需要 Python。 控制端需要 Python 3.8+ 和 OpenSSH(macOS 或 Linux)。

快速开始

git clone https://github.com/maxigentr/netviser-linux-security-auditor.git
cd netviser-linux-security-auditor

# Audit this Linux machine
python3 netviser_cve_audit.py --local

# Audit a remote server
python3 netviser_cve_audit.py --host [email protected]

# Custom SSH port and key
python3 netviser_cve_audit.py --host [email protected] --port 2290 --identity ~/.ssh/audit_ed25519

# Multiple servers, 10 in parallel
python3 netviser_cve_audit.py --hosts servers.txt --workers 10

# Non-root SSH user with passwordless sudo, for full process and BPF visibility
python3 netviser_cve_audit.py --host admin@web01 --sudo

# Watch MPTCP counters for 60 seconds to see if MPTCP is used right now
python3 netviser_cve_audit.py --hosts servers.txt --sample-interval 60

# Also check whether other kernel CVEs are patched
python3 netviser_cve_audit.py --hosts servers.txt --cve CVE-2024-1086,CVE-2024-26925

该工具也可以安装(pip install .)并作为 netviser-audit 或 python3 -m netviser_audit 运行。

有关主机文件格式,请参见 examples/servers.example.txt。每台主机的端口使用 ssh://user@host:port 或 ~/.ssh/config 别名。

选项

选项描述
--local / --host H / --hosts FILE要审计的对象
--checks IDS逗号分隔的子集(参见 --list-checks);依赖项会自动添加
--cve IDS同时报告这些 CVE 的内核补丁状态(可重复或逗号分隔)
--offline不下载厂商公告数据
--advisories FILE使用之前保存的公告数据;除非指定 --offline,否则仍会下载缺失的记录
--save-advisories FILE保存所使用的公告数据,以便离线或可重复运行
--sudo使用 sudo -n 运行收集器(从不提示输入密码)
--sample-interval N间隔 N 秒读取两次 MPTCP 计数器
--output PREFIX报告前缀(默认 netviser_audit → .json、.csv)
--no-report仅在终端打印
--fail-on-review当存在任何 REVIEW 发现时以退出码 3 退出(用于 CI / cron)
-v、--verbose显示所有发现,而不仅是 REVIEW / UNKNOWN

SSH 运行时使用 BatchMode=yes(仅基于密钥的身份验证)和 StrictHostKeyChecking=accept-new。

退出状态:0 成功,1 无法扫描某个目标,2 用法错误,3 存在审查发现(仅在指定 --fail-on-review 时)。

检查项

Id检查内容
kernel发行版、内核版本、正在运行的内核包、已安装的较新内核 / 是否需要重启
patch根据厂商公告数据,正在运行的内核包中每个 CVE 的补丁状态
tcp_migrationnet.ipv4.tcp_migrate_req;已加载的 sk_reuseport BPF 程序(需要 root + bpftool)
mptcpnet.mptcp.enabled、路径管理器、CONFIG_MPTCP、MPTCP 套接字和进程、握手计数器、mptcpize 使用情况
cve_2026_98432CVE-2026-98432 的相关配置;其补丁状态为 patch.CVE-2026-98432

每个发现都有一个状态——OK、INFO、REVIEW 或 UNKNOWN——以及一个机器可读的判定结果(例如 mptcp.usage = IN_USE)。

CVE 补丁验证

patch 检查针对每个 CVE 回答一个问题:根据发行版厂商,当前正在运行的内核是否已修复?

  1. 在目标主机上,收集器识别拥有正在运行内核的软件包(dpkg-query / rpm -qf):其名称、确切版本和源包。它还会列出该软件包的变更日志以及已加载的 livepatch(canonical-livepatch、kpatch-patch)中提到的 CVE id。
  2. 在控制端,每个 CVE 的厂商记录会被下载一次,并使用包管理器自身的排序规则(dpkg 或 rpm)将正在运行的版本与修复版本进行比较,因此 backport、epoch 和 ~ 版本都能被正确处理。
发行版公告来源
UbuntuUbuntu Security API — 按发行版和内核变体(linux、linux-hwe-*、linux-aws 等)
Debian通过 OSV 获取 Debian Security Tracker 数据
RHEL、Rocky Linux、AlmaLinux、CentOSRed Hat Security Data API — 主 RHEL 流

只有 CVE 标识符会发送到这些服务;关于您主机的任何信息都不会离开控制端。对于气隙环境,请先使用 --save-advisories adv.json 运行一次,之后使用 --offline --advisories adv.json 运行。

判定状态含义
PATCHEDOK运行中的内核版本 ≥ 厂商修复版本
NOT_AFFECTEDOK厂商表示此发行版 / 内核不受影响
LIVEPATCHEDOK已加载的 livepatch 将该 CVE 列为已修复
VULNERABLEREVIEW修复已发布;运行中的内核较旧。请安装并重启
FIX_PENDINGREVIEW厂商已准备好修复但尚未发布(Ubuntu)
FIX_NOT_AVAILABLEREVIEW受影响,尚未发布修复
WONT_FIXREVIEW厂商不会修复此发行版(例如已结束支持)
MENTIONED_IN_CHANGELOGINFO无厂商判定,但运行中内核的变更日志提及该 CVE
NO_DATAUNKNOWN厂商没有该 CVE、发行版或内核变体的记录
UNSUPPORTEDUNKNOWN该发行版没有公告来源(例如 Fedora、SUSE)
NOT_CHECKEDUNKNOWN公告数据不可用(--offline、网络错误)或内核包未知

限制:

  • 评估的是运行中的内核。已安装但尚未启动的修复仍为 VULNERABLE,检测结果会说明这一点。
  • Red Hat 数据针对主 RHEL 流;EUS/AUS/E4S 次版本流 不予考虑。Rocky Linux 和 AlmaLinux 发布相同的内核版本, 并与 RHEL 数据进行比较。CentOS Linux 7/8 已结束生命周期。
  • 自定义构建的内核,或非通过软件包安装的内核,无法 评估(NOT_CHECKED)。
  • Ubuntu 提供的变更日志文件被截断,因此变更日志中 缺少某个 CVE 并不代表任何含义;仅在厂商没有数据时才会使用它。

MPTCP 使用情况评估

net.mptcp.enabled = 1 仅表示可以创建 MPTCP 套接字。在 任何人禁用 MPTCP 之前,mptcp 检查会收集实际使用的证据:

证据来源
监听 / 已建立的 MPTCP 套接字及其进程ss -M -a -n -p
握手计数器(MPCapableSYNRX、MPJoinSynRx 等)/proc/net/netstat(MPTcpExt)
采样窗口内计数器增长--sample-interval N
通过 mptcpize 包装的服务引用 mptcpize 或 libmptcpwrap 的 systemd 单元 / drop-in
已加载 libmptcpwrap 的运行中进程/proc/<pid>/maps

结果汇总在 mptcp.usage 中:

判定含义建议操作
IN_USE已建立的 MPTCP 连接、mptcpize 包装的服务,或已接受 MPTCP 连接的 MPTCP 监听器在任何更改之前先确定依赖的服务
ACTIVE_TRAFFIC采样期间握手计数器增长查找流量来源
LISTENING_ONLY存在 MPTCP 监听器,但自启动以来没有 MPTCP 握手——通常是机会性启用 MPTCP 的程序(Go 1.24+ 默认对监听器这样做)通常没有依赖;打开的监听器在重启前会保持 MPTCP
PAST_ACTIVITY自启动以来计数器非零,当前无套接字使用 --sample-interval 60 重新运行
NONE_OBSERVED无套接字、无计数器活动、无 mptcpize可以进行有计划、可回退的禁用测试
DISABLED / NOT_APPLICABLEMPTCP 已关闭或未编译进内核—

NONE_OBSERVED 是某一时间点的观察结果,并非证明。直接打开 IPPROTO_MPTCP 套接字的应用程序仅在其持有套接字时才会出现, 且在没有 root 权限时只能看到你自己的进程。

如果你决定测试禁用 MPTCP,请在维护窗口内进行,先在 运行时执行(sysctl -w net.mptcp.enabled=0),然后观察服务 连接和日志,再将其持久化。本工具绝不会替你做出该 更改。

CVE-2026-98432

初始版本聚焦于与 CVE-2026-98432 相关的配置, 这是一个 Linux 内核 IPv4 TCP 释放后使用漏洞。该工具检查:

  • net.ipv4.tcp_migrate_req 和 sk_reuseport BPF 程序
  • net.mptcp.enabled 及实际 MPTCP 使用情况
  • Linux 内核版本和软件包
  • 操作系统信息

其补丁状态报告为 patch.CVE-2026-98432。

重要安全提示

  • 禁用 TCP 迁移或 MPTCP 并非针对 CVE-2026-98432 的已验证缓解措施。
  • 请始终查阅您所在发行版的官方安全公告,并安装 内核安全更新。内核更新仅在重启后生效—— kernel.pending_reboot 发现项会标记仍在运行旧内核的主机。

只读操作

该工具不会:

  • 修改内核参数
  • 安装软件包
  • 更改防火墙规则
  • 重启服务器
  • 应用安全补丁

在目标上运行的命令仅读取:/proc、/sys、/etc/os-release、 /boot、uname、ss、dpkg-query/rpm(包括 rpm -q --changelog)、 内核软件包的 changelog.Debian.gz、canonical-livepatch status、 bpftool prog show,以及对 systemd 单元目录执行 grep。需要注意两个副作用: 使用 ss -M 查询 MPTCP 套接字可能导致内核自动加载 mptcp_diag 诊断模块, 并且 SSH 登录会出现在目标的认证日志中。

控制器仅向上述公告来源发起出站 HTTPS 请求,且仅在 patch 检查 未使用 --offline 运行时才会发起。

开发

python3 -m unittest discover -s tests -t . -v

CI 在 Python 3.8–3.13 上运行单元测试,并在 Ubuntu 22.04/24.04、Debian 12、Rocky Linux 9、AlmaLinux 9 和 Fedora 容器中运行本地审计。

添加检查项

  1. 创建 netviser_audit/checks/<name>.py,其中包含一个 Check 子类:一个 POSIX sh collector,通过 nv_kv key value 输出事实,以及一个返回 Finding 的 evaluate(facts) 方法。
  2. 在 netviser_audit/checks/__init__.py 中的 ALL_CHECKS 里注册它。
  3. 在 tests/test_checks.py 中添加评估测试。

收集器必须保持只读并兼容 POSIX sh(测试中会使用 sh、dash 和 bash 进行语法检查)。

单文件构建

mkdir -p build/pyz dist && cp -R netviser_audit build/pyz/
python3 -m zipapp build/pyz -m netviser_audit.cli:main -p "/usr/bin/env python3" -o dist/netviser-audit.pyz

路线图

  • 为更多发行版提供补丁数据(SUSE、Fedora、Amazon Linux、Oracle Linux UEK)
  • 修复计划输出(供操作员审查的命令;该工具保持只读)
  • 额外的 Linux 内核安全检查
  • 扩展的 eBPF 检查
  • HTML 报告
  • 通过 PyPI 分发软件包

维护者

由 Netviser Bilişim Teknolojileri 开发和维护。

许可证

下载工具