用于改进 EXTRABACON 漏洞利用的公共仓库
针对 EXTRABACON 漏洞利用的公开改进库,这是一个由方程集团(NSA)编写并由影子经纪人泄露的 Cisco ASA 远程代码执行漏洞。
包含改进的 shellcode、一个 LINA 偏移量查找脚本、一个 Metasploit 模块,以及 extrabacon-2.0。
我们将在不久的将来,在对所有版本进行真实硬件测试后,为大多数 8.x 和 9.x 版本添加补丁。
该版本使用了改进的 shellcode,阶段数少于方程集团版本,因此更加可靠。这将 SNMP 载荷包减少了约 150 字节。此外,泄露的版本仅支持 8.x,而我们已经使其在 9.x 版本上运行。
使用 Lina 偏移量查找脚本,应该可以轻松支持所有易受攻击的 x86 版本。我们正在朝这个方向努力。注意:x64(9.6+?)引入了 DEP 和 ASLR。偏移量查找器和通用载荷将无法工作。不过,仍然可以轻松对这些版本进行拒绝服务攻击。
如果您希望我们支持特定版本,请提交一个问题。该问题将获得优先处理。
8.x
****** ********9.x
******** 新版本支持,不属于原始影子经纪人泄露内容
** 我们目前无法从 SNMP 字符串中区分正常版本和 NPE 版本。我们已经注释掉了 NPE 偏移量,因为 NPE 非常罕见(用于出口到加密能力较差的地区),但未来我们希望纳入这些版本。或许作为一个布尔选项?
use auxiliary/admin/cisco/cisco_asa_extrabacon
https://github.com/rapid7/metasploit-framework/pull/7359
我们的初始拉取请求已合并到 Metasploit 主分支。我们还将贡献更多偏移量,这些偏移量可能会更早在此处提供,具体取决于未来拉取请求的延迟。
如果您能够测试 ASA 版本,请考虑复刻此项目并生成载荷。我们可以批量生成载荷,但我们希望测试确保每个载荷都能干净退出。
在使用 lina-offsets.py 生成文件后,您可以将新载荷添加到 extrabacon-2.0/improved/ 文件夹中。模块命名为 shellcode_verstring.py,其中 verstring 是 ASA 返回的版本字符串,句点 . 替换为下划线 _。
同时,提交拉取请求,剥离 ExtraBacon 2.0 代码中不必要的 Python 部分。
python2 ./lina-offsets.py asa_lina_XXX.elf
将自动生成将漏洞利用移植到其他 ASA 版本所需的偏移量。
目前,加载 ASA 固件版本并测试所需的时间,比生成特定版本的偏移量还要长。
脚本唯一未计算的是 FIX_EBP,通常为 0x48 (72) 或 0x58 (88)。看起来 8.4(1) 及更高版本使用 0x48。
您可以通过以下方式提取 Lina:
binwalk -e asaXXX-k8.bin
cd _asaXXX-extracted
cpio -idv < rootfs.img
cp asa/bin/lina /tmp/linaXXX