幽灵漏洞(GHOST)远程利用EXP

  • A+
所属分类:神兵利刃

免责声明:本站提供安全工具、程序(方法)可能带有攻击性,仅供安全研究与教学之用,风险自负!

本文演示一个幽灵漏洞(GHOST)的EXP,这个EXP是Metasploit的一个模块。这个Metasploit模块可以远程利用CVE-2015-0235(glibc库中gethostbyname函数的堆溢出漏洞)漏洞,目标是运行了Exim邮件服务的linux服务器。

关于GHOST

GHOST漏洞存在于linux的核心库glib中的gethostbyname函数中,可以在本地触发也可以在远程触发。这个名为幽灵(GHOST)的高危安全漏洞出现在2015年,这个漏洞可以允许攻击者远程获取操作系统的最高控制权限,影响市面上大量Linux操作系统及其发行版。该漏洞CVE编号为CVE-2015-0235。

最早受此漏洞影响的glibc版本是glibc-2.2,于2000年9月10日发布。并且该漏洞于2013年5月21日被修复(在glibc-2.17 — glibc-2.18之间),然而,这次更新并没有以安全更新的名义发布,所以,很多稳定版&长期支持版的linux依然受影响,包括Debian7(wheezy),RedHatEnterpriseLinux6&7,CentOS6&7,andUbuntu12.04.

Qualys和各个linux发行厂商紧密合作,于2015年1月27日发布了一篇报道,并发布了一篇博文,文章和各主流发行版及补丁紧密相关。Qualys直到现在才放出这一模块,希望各个IT团队有足够的时间为此漏洞打补丁。点我查看更多关于GHOST漏洞

漏洞利用(EXP)演示

这个Metasploit模块可以利用运行了Exim邮件服务的服务器,获得shell,远程执行代码,如果这个模块的check方法或者exploit方法检测到一个远程服务器存在漏洞,也是可以利用的。

正如EXP中所描述的,如果要成功利用改漏洞,需要如下前提条件才能利用成功:

服务端利用条件(Exim):
--
远程目标服务器必须使用的是存在漏洞的 glibc 库:
最初的存在漏洞的版本是 glibc-2.6,最后一个存在漏洞的版本是glibc-2.17,一些老版本可能也存在该漏洞,但是本文中所提供的模块只支持前面提到的几个新版本中的fd_nextsize结构(malloc_chunk 的一个成员结构),才能远程获取Exim的smtp_cmd_buffer在堆中的地址。
--
远程目标服务器必须比如运行Exim邮件服务器,最初的存在漏洞的版本是exim-4.77,老版本可能也存在漏洞,但是本文中提供的模块依赖新版本中16KBsmtp_cmd_buffer空间来可靠的建立堆空间。
--
远程目标服务器Exim邮件服务必须配置了正对其SMTP客户端的额外的安全检查,helo_try_verify_hosts或helo_verify_hosts选项开启均可,ACL中的verify = helo选项可能也可以利用,但是由于不可预测,所以本文提供的模块没有提供这个支持。
--
客户端利用条件(Metasploit):
--
模块的exploit方法需要SENDER_HOST_ADDRESS设置为本地SMTP客户端的IPv4地址,也是Exim可见的 IP地址。另外,这个IPv4地址必须必须支持正向和反向DNS查询。
-- 
即使Metasploit客户端没有FCrDNS ,Exim服务端也可能被利用成功,但是本文中的模块需要Exim设置了sender_host_name,才能可靠的控制堆的状态。

Metasploit模块

该模块是一个单独的文件,可以导入Metasploit中,所以如果你想使用这个模块,将这个文件拷贝到modules/exploits/linux/smtp/目录下面

Exploit地址:

https://www.qualys.com/research/security-advisories/exim_ghost_bof.rb

这个模块在CoreSecurityAttack情报平台上也可以使用。

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: