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

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

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

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

工具目录

分类

查看所有分类
Loading categories
alg_check — 审计并加固 Linux 系统,防范 AF_ALG 本地权限提升漏洞(CVE-2026-31431),通过检查内核加密 API 暴露情况、限制模块并提供恢复脚本。 | Kitploit
工具/GitHubGitHub/professional-slacker/alg_check
防御工具漏洞分析配置审计
GitHubprofessional-slacker/alg_check

alg_check

审计并加固 Linux 系统,防范 AF_ALG 本地权限提升漏洞(CVE-2026-31431),通过检查内核加密 API 暴露情况、限制模块并提供恢复脚本。

查看仓库
3个月前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

⚠️ 重要免责声明:结构性加固风险

本工具通过结构性阻断来缓解 CVE-2026-31431,具体方式为物理重命名内核模块并将其从内存中清除。使用前,请了解以下架构性风险:

  • 内核更新易变性:加固效果是临时的。内核更新会在新的 /lib/modules/ 目录下部署全新的、存在漏洞的模块,使之前的阻断措施失效。
  • 功能性副作用:禁用 AF_ALG(内核加密 API)可能会破坏依赖内核级硬件加速的特定应用程序或服务(例如专用 VPN、磁盘加密工具或自定义安全工具)。[cite: 3]
  • 缓解 vs. 修补:这是一种临时解决方案,而非永久补丁。其目的是在发行版提供修补后的内核之前填补这一空白。

请自行承担使用风险。 运行 solution.sh 后,请务必验证系统关键功能是否正常。[cite: 3]

SSIA - 系统结构完整性审计

一套用于通过 Linux 内核加密 API(AF_ALG)发现、诊断和遏制 LPE(本地权限提升)向量的工具包。

⚠️ 重要免责声明:结构性加固风险

本工具使用结构性阻断来应对 CVE-2026-31431,具体方式为重命名内核模块并将其从内存中清除。主要架构性风险包括:

  • 内核更新易变性:效果是临时的。内核更新会在新的 /lib/modules/ 目录下部署全新的、存在漏洞的模块,使之前的阻断措施失效。
  • 功能性副作用:禁用 AF_ALG 可能会中断依赖内核级硬件加速的服务,例如专用 VPN、磁盘加密工具或自定义安全工具。
  • 缓解 vs. 修补:这是一种临时解决方案,而非永久补丁,旨在作为过渡措施,直到获得修补后的内核。

请自行承担使用风险。

概述

本仓库提供两个脚本,构成针对通过 AF_ALG(socket(38, 5, 0))进行的权限提升攻击的诊断 → 遏制 → 验证工作流程:

  • check.sh — 多层安全态势审计(以非特权身份运行)
  • solution.sh — 强制从内存中驱逐 AF_ALG 模块 + 检查物理模块文件(需要 root 权限)
  • restore.sh — 重新加载 AF_ALG 模块并将系统恢复到运行 solution.sh 之前的状态(需要 root 权限)

检查项

使用方法

审计(非特权)

root@kitploit:~
./check.sh

遏制(需要 root 权限)

root@kitploit:~
sudo ./solution.sh

恢复(需要 root 权限)

root@kitploit:~
sudo ./restore.sh

恢复

restore.sh 通过重新加载 AF_ALG 内核模块(af_alg、algif_rng、algif_aead、algif_skcipher、algif_hash)来撤销 solution.sh 的效果。如果物理模块文件(af_alg.ko.xz)已被重命名或删除,脚本将发出警告并提示您手动恢复,然后再尝试加载模块。

⚠️ 警告

在活跃使用 AF_ALG 的在线系统(例如使用 IPsec、dm-crypt/LUKS 或任何硬件加密卸载的系统)上运行 solution.sh 将立即破坏所有内核加密操作。 这包括:

  • IPsec VPN 连接和 WireGuard
  • 磁盘加密(LUKS/dm-crypt)
  • 使用内核后端加密的 TLS 终止
  • 任何依赖 algif_* 套接字接口的容器或应用程序

该脚本会强制卸载 AF_ALG 内核模块。内核加密操作将失败,直到系统重启。此脚本仅适用于隔离网络、非生产或一次性系统,用于测试和分析目的。请勿在生产或关键基础设施上运行。

要求

  • Linux(任何发行版)
  • check.sh 除 POSIX shell 和 /proc//sys 外无其他依赖
  • solution.sh 需要 root 权限
  • restore.sh 需要 root 权限
  • af_alg_block.so 需要通过 /etc/ld.so.preload 安装,需要 root 权限

WSL2 说明

此 POC 已在 WSL2 上测试。请注意以下事项:

  • WSL2 在重启(wsl --shutdown)时会重置所有状态。这包括 solution.sh 的内核模块状态更改、文件重命名、check.sh 结果以及本仓库中的任何本地文件修改。
  • 如需在 WSL2 上进行永久加固,请考虑单独配置 .wslconfig、/etc/wsl.conf 或自动启动脚本(例如 /etc/rc.local)。
  • WSL2 适用于测试和验证目的,但不适用于生产环境或持久性安全缓解。

缓解措施

要彻底关闭 AF_ALG 攻击向量:

  1. 将内核模块加入黑名单(最可靠):

    root@kitploit:~
    echo "blacklist af_alg" | sudo tee /etc/modprobe.d/af_alg-blacklist.conf
    

    或重命名物理文件:

    root@kitploit:~
    sudo mv /lib/modules/$(uname -r)/kernel/crypto/af_alg.ko.xz \
            /lib/modules/$(uname -r)/kernel/crypto/af_alg.ko.xz.bak
    
  2. 通过 sysctl 禁用 AF_ALG:

    root@kitploit:~
    sudo sysctl -w net.core.af_alg_disabled=1
    
  3. 通过 SELinux / AppArmor 策略阻止创建 AF_ALG 套接字

  4. 禁用非特权用户命名空间(容器环境):

    root@kitploit:~
    sudo sysctl -w kernel.unprivileged_userns_clone=0
    
  5. 通过 LD_PRELOAD 在 socket() 系统调用层面阻止 AF_ALG(WSL2 临时解决方案):

    root@kitploit:~
    # 系统范围安装(需要 root 权限)
    echo /absolute/path/to/af_alg_block.so | sudo tee -a /etc/ld.so.preload
    

    仓库中包含一个预编译的共享库(af_alg_block.so)。它会拦截 socket(2),当域为 (38)时返回 。所有其他套接字调用均原样传递给真实实现。

许可证

MIT

下载工具
检查项检查内容严重程度
进程上下文当前 UID/GID 及有效能力低
AF_ALG 加密套接字通过 socket(AF_ALG, ...) 访问内核加密 API 的能力高
kptr_restrict内核指针在用户空间的可视性中
dmesg_restrict内核环形缓冲区访问限制中
SELinux强制 / 宽容 / 禁用状态中
/proc hidepid/proc 是否隐藏其他进程的信息低
AF_ALG
EAFNOSUPPORT

此方法主要适用于 WSL2,因为其单用户语义和重启即重置的行为使系统范围的 LD_PRELOAD 切实可行。在传统的多用户 Linux 系统上,请优先使用方法 1(模块黑名单)——通过 /etc/ld.so.preload 注入会影响系统上的每个进程,并可能静默破坏依赖 AF_ALG 的服务。

注意: 需要 glibc(不支持 musl)。修改 /etc/ld.so.preload 需要 root 权限。移除时需删除文件中的相应行。