F-Secure Internet Gatekeeper堆溢出RCE漏洞分析
0x01 环境配置
所有测试应在具有至少1个处理器和4GB RAM 的CentOS虚拟机中可重复进行。
需要安装F-Secure InternetGatekeeper,可以从https://www.f-secure.com/en/business/downloads/internet-gatekeeper下载。但是据我们所知,供应商不再提供粗存在漏洞的版本。
受影响的程序包具有以下SHA256哈希值:
1582aa7782f78fcf01fccfe0b59f0a26b4a972020f9da860c19c1076a79c8e26。
继续安装:
1. 如果使用的是x64版本的CentOS,请执行 yum install glibc.i686;
2. 使用以下命令安装Internet Gatekeeper文件: rpm -I < fsigkbin >.rpm;
3. 为获得更好的调试体验,安装gdb 8+和https://github.com/hugsy/gef。
现在可以使用GHIDRA / IDA反编译器开始逆向Internet Gatekeeperl了!
0x02 漏洞分析
如F-Secure所述,Internet Gatekeeper是“在网关级别针对企业网络的高效且易于管理的保护解决方案”。
F-Secure Internet Gatekeeper包含一个在端口9012 /tcp上运行的管理面板。这可用于控制产品中所有可用的服务和规则(HTTP代理,IMAP代理等)。这个管理面板由fsikgwebui二进制文件通过HTTP服务,该二进制文件是用C编写的。实际上,整个Web服务器都是用C/ C ++编写的。有一些关于civetweb的参考,这表明可能正在使用定制版本的CivetWeb。
它是用C / C ++编写的事实使我们走上了寻找通常在该语言中常见的内存破坏漏洞的道路。
很快,就可以通过使用Fuzzotron对管理面板进行模糊处理来发现本篇文章中描述的问题,而Fuzzotron使用Radamsa作为底层引擎。fuzzotron内置的TCP支持可轻松模糊测试网络服务。对于种子,我们提取了一个有效的POST请求,该请求用于更改管理面板上的语言。该请求可以由未经身份验证的用户执行,因此非常适合作为模糊测试的种子。
分析突变的输入时,通过radamsa我们可以很快看到漏洞的根本原因是Content-length标题。导致软件崩溃的生成的测试具有以下标头值:Content-Length: 21487483844,这表明是由于不正确的整数导致溢出的。
通过在gdb测试运行后,我们发现导致崩溃的代码位于fs_httpd_civetweb_callback_begin_request函数中。此方法负责处理传入的连接,并将它们分配给相关的函数,具体取决于所使用的HTTP,路径或cookie。
为了演示该问题,我们将向运行管理面板的POST端口9012发送请求,我们设置了很大的Content-Length标题值。
该应用程序将解析该请求并执行该fs_httpd_get_header函数以检索内容长度,稍后,内容长度将传递给函数strtoul(String ToUnsigned Long)
以下伪代码提供了控制流的摘要:
strtoul通过阅读相应的man页面,可以了解函数中发生了什么。返回值 strtoul是一个无符号的longint,它可能具有最大值2^32-1(在32位系统上)。
由于我们提供的数据Content-Length对于无符号longint而言太大,因此strtoul将返回对应0xFFFFFFFF于32位系统的ULONG_MAX值。
到目前为止,一切都很好,当fs_httpd_civetweb_callback_begin_request函数尝试发出malloc请求以为我们的数据腾出空间时,它首先将1加到content_length变量中,然后调用malloc。
可以在下面的伪代码中看到:
这会导致问题,因为该值0xFFFFFFFF + 1将导致整数溢出,结果为0x00000000,因此,malloc调用将分配0字节的内存。
Malloc确实允许使用0字节参数进行调用,当malloc(0)为有效的指针的堆空间将被返回,指向一个分配的0×10字节的最小块大小,细节也可以在手册页中阅读:
如果我们进一步浏览Internet Gatekeeper代码,可以看到对mg_read的调用。
在溢出期间,此代码将任意数量的数据读取到堆上,没有任何限制。对于漏洞利用而言,这是一个很好的原语,因为我们可以停止将字节写入HTTP流,并且软件将关闭连接,在这种情况下,我们可以完全控制要写入的字节数。
总而言之,我们可以利用Malloc大小为0x10的块以及任意数据的溢出来覆盖现有的内存结构,以下PoC证明了这一点。尽管非常原始,但它通过将标志翻转到来利用堆上的现有结构should_delete_file= true,然后使用要删除的文件的完整路径对堆进行喷射。InternetGatekeeper内部处理程序具有一种decontruct_http用于查找此标志并删除文件的方法。通过利用此漏洞,攻击者可以获得任意文件删除,足以证明漏洞的严重性。
当前的漏洞利用可靠性大约占总尝试次数的60-70%,我们的漏洞利用PoC依赖于前提条件中列出的特定主机版本。
可以进行RCE,因为我们可以控制确切的块大小,并覆盖想要的块上尽可能多的数据。此外,该应用程序使用多个线程,可以利用这些线程进入干净的堆区域并尝试多次利用。
此漏洞已在F-Secure Internet Gatekeeper版本5.40 – 5.50修补程序8(2019-07-11)中修复。
0x03 学习堆利用资源
利用
· Linux Heap Exploitation Intro Series: Set you free() – part 1
·Linux Heap Exploitation Intro Series: Set you free() – part 2
GLibC
· GLibC Malloc for Exploiters - YouTube
· Understanding the GLibC Implementation - Part 1
· Understanding the GLibC Implementation - Part 2
工具
· GEF -GDB的附件,此外,它还有一些有用的命令,可进行堆漏洞利用调试
·Villoc -在HTML中图形化显示堆
本文翻译自:https://blog.doyensec.com/2020/02/03/heap-exploit.html如若转载,请注明原文地址:
推荐系统
番茄花园 Windows 10 极速企业版 版本1903 2022年7月(32位) ISO镜像快速下载
语言:中文版系统大小:3.98GB系统类型:Win10新萝卜家园电脑城专用系统 Windows10 x86 企业版 版本1507 2022年7月(32位) ISO镜像高速下载
语言:中文版系统大小:3.98GB系统类型:Win10笔记本&台式机专用系统 Windows10 企业版 版本1903 2022年7月(32位) ISO镜像快速下载
语言:中文版系统大小:3.98GB系统类型:Win10笔记本&台式机专用系统 Windows10 企业版 版本1903 2022年7月(64位) 提供下载
语言:中文版系统大小:3.98GB系统类型:Win10雨林木风 Windows10 x64 企业装机版 版本1903 2022年7月(64位) ISO镜像高速下载
语言:中文版系统大小:3.98GB系统类型:Win10深度技术 Windows 10 x64 企业版 电脑城装机版 版本1903 2022年7月(64位) 高速下载
语言:中文版系统大小:3.98GB系统类型:Win10电脑公司 装机专用系统Windows10 x64 企业版2022年7月(64位) ISO镜像高速下载
语言:中文版系统大小:3.98GB系统类型:Win10新雨林木风 Windows10 x86 企业装机版2022年7月(32位) ISO镜像高速下载
语言:中文版系统大小:3.15GB系统类型:Win10
相关文章
- 电脑老是断网怎么办 快速修复网络的方法【解决方法】
- 在xp系统中,为什么浏览器自动弹出拨号连接窗口?
- 关于智能投影要火的3个假象
- 如何禁止玩电脑游戏、不让电脑运行游戏、屏蔽网络游戏的方法
- Win10无法访问局域网电脑怎么办
- DDoS 攻击者竟会“黑吃黑”?关于DDoS 你不知道的还有这些
- 安全地删除掉使用U盘后电脑只能记录的信息保护我们的隐私
- Windows 7系统如何创建硬盘分区?
- 网络安全基础之网络协议与安全威胁的关系介绍
- 推特是如何识别恐怖主义的账号的?
- Win10突然跳出提示网络发现已关闭问题的解决方法
- Palo Alto 对近些年 DNS 历史漏洞的整理分析(下)
- 利用Ping命令判定网络故障
- 看清黑客穿透ADSL路由入侵内网
热门系统
热门文章
常用系统
- 1番茄花园 Ghost XP SP3 海量驱动装机版 2021年4月 ISO镜像高速下载
- 2电脑公司 GhostXPSP3 电脑城海驱专业版 2018年5月 ISO镜像下载
- 3深度技术Ghost Win8.1 x32位 特别纯净版2019年10月(免激活) ISO镜像高速下载
- 4深度技术Ghost Win8.1 x32位 特别纯净版2021年6月(免激活) ISO镜像高速下载
- 5笔记本&台式机专用系统 GHOSTXPSP3 2021年6月 六一节 海驱版 ISO镜像高速下载
- 6电脑公司Ghost Win8.1 x32 精选纯净版2022年5月(免激活) ISO镜像高速下载
- 7笔记本&台式机专用系统 Windows10 企业版 2018年10月(32位) ISO镜像快速下载
- 8笔记本&台式机专用系统GhostWin7 64位六一节 旗舰版2021年6月(64位) 高速下载
- 9深度技术最新版 GHOSTXPSP3 电脑城万能装机版下载 2018年7月