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

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

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

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

工具目录

分类

查看所有分类
Loading categories
iptable_evil — Kernel-level iptables backdoor that accepts all packets with the RFC 3514 evil bit set, bypassing firewall rules. Includes in-tree and out-of-tree builds for Linux. 内核级 iptables 后门,接受所有设置了 RFC 3514 邪恶位的数据包,绕过防火墙规则。包含适用于 Linux 的内核树内和树外构建。 | Kitploit
工具/GitHubGitHub/flamingspork/iptable_evil
漏洞利用IDS/IPS规避网络安全学习与教育红队
GitHubflamingspork/iptable_evil

iptable_evil

Kernel-level iptables backdoor that accepts all packets with the RFC 3514 evil bit set, bypassing firewall rules. Includes in-tree and out-of-tree builds for Linux. 内核级 iptables 后门,接受所有设置了 RFC 3514 邪恶位的数据包,绕过防火墙规则。包含适用于 Linux 的内核树内和树外构建。

查看仓库
54135年前Kitploit 审核通过

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

iptable_evil

iptable_evil 是一个针对 iptables 的特定后门,它允许所有设置了邪恶比特的数据包通过,无论防火墙规则如何。

初始实现在 iptable_evil.c 中,它为 iptables 添加了一个表,并且需要修改一个内核头文件来为其插入一个位置。 第二个实现是修改后的 ip_tables 核心模块及其依赖项,以允许所有邪恶数据包通过。

我已在 Linux 内核版本 5.8.0-48 上进行了测试,但这应该适用于几乎所有具有完整 iptables 实现的内核版本。

邪恶比特解释

RFC3514(2003年4月1日发布)将 IP 分片偏移字段中先前未使用的高位定义为安全标志。 对于符合 RFC 的系统,该位位置的 1 表示恶意意图,并将导致数据包被阻止。

默认情况下,此位是关闭的,但如果你在组装完整的 IP 数据包(就像某些黑客工具所做的那样),或者在内核中使用此补丁(已镜像到此仓库此处),则可以在你的软件中打开它。

后门如何工作?

当 Linux 内核收到一个数据包时,它会由 iptables 处理,并根据配置的规则发送到用户空间、丢弃或修改。

具体来说,每个 iptables 表使用 ip_tables.c 中的 ipt_do_table 函数来决定是否接受某个数据包。 我已修改该函数,使其自动接受任何设置了邪恶比特的数据包,并跳过所有后续处理。

我还尝试添加另一个表(iptable_evil.c),它会接受所有邪恶数据包,并将其他数据包交给标准表处理,但我一直没弄清楚如何将数据包传递给下一个表,并认为将 ipt_do_table 作为后门已经足以作为概念验证。

你为什么这样做?

我需要为我的一个课程编写一个相当大的计算安全项目并撰写报告,这似乎是个很酷的主意。 这可能比他预期的要多得多的工作,但 ¯\_(ツ)_/¯。

构建

树内构建

evil 表需要修改内核头文件,因此要安装它,必须运行通过完整树构建生成的内核。

  • 将 replace-existing 的内容复制到你的内核源代码树中,覆盖现有文件。
  • 将 iptable_evil.c 复制到 linux-X.Y.Z/net/ipv4/netfilter
  • (可选)将 ip_tables.c 复制到 linux-X.Y.Z/net/ipv4/netfilter
  • 根据你发行版的流程编译内核(应生成一个软件包)
  • 安装软件包文件
  • 重新启动进入新内核
  • iptables -t filter -L
  • iptables -t evil -L(输出会混乱,但会加载模块)

树外构建

这要简单得多,也快得多,但不支持 evil 表,并且会将内核标记为“污染”。 应该可以将此构建产生的 ko 文件复制到具有完全相同内核版本的另一台计算机上,但我还没有测试过。

  • 运行 make
  • rmmod iptable_*
  • rmmod ip_tables
  • insmod ip_tables.ko
  • insmod iptable_filter.ko

测试/演示

要测试此功能,你需要使用此补丁重新构建整个内核,或者使用像 Scapy 这样的工具创建自己的数据包。 我选择了第一个选项,因为我正在为 evil 表构建内核。

在第一张截图中,我已在 iptables 中阻止了到此虚拟机的所有流量,但我仍然能够通过 SSH 连接,因为我的数据包设置了邪恶比特,如第二张截图所示。 本应被阻止的 SSH 连接的截图 Wireshark 显示保留位已设置的截图

当从未设置邪恶比特的虚拟机连接到打过后门的虚拟机时,SSH 连接最终会超时。 SSH 连接超时的截图 Wireshark 显示保留位未设置的截图

后门和非后门的 SSH 连接的数据包捕获文件位于此仓库的 docs/ 文件夹中,供你查阅。

内核版本

  • 5.8.0-48-generic (Ubuntu 20.04)

更多信息和资源

  • 发明邪恶比特的 RFC 3514:https://tools.ietf.org/html/rfc3514
  • Ben Cox 对邪恶比特的介绍:https://blog.benjojo.co.uk/post/evil-bit-RFC3514-real-world-usage
  • Ben Cox 的 iptables_uwu(主要用于提供研究方向的名称):https://github.com/benjojo/iptables-uwu
  • 一份虽有些过时但非常详细的关于 iptables 工作原理以及如何向其中添加目标和模块的说明:https://inai.de/documents/Netfilter_Modules.pdf
  • https://upload.wikimedia.org/wikipedia/commons/3/37/Netfilter-packet-flow.svg
  • Bootlin 的 Elixir 搜索比 grep 更容易查找内核中的标识符:https://elixir.bootlin.com/linux/v5.8/source/net/ipv4/netfilter/ip_tables.c#L225
  • Ubuntu 的文档解释了如何构建内核:https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel
下载工具