第一范文网 - 专业文章范例文档资料分享平台

基于Metasploit利用GHOST漏洞最终版

来源:用户分享 时间:2025/9/6 11:51:34 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

首先,我们溢出的gethostbyname的基于堆的缓冲区,以及部分覆盖下一个相邻空闲块的大小字段,使之具有稍微更大的尺寸(我们只覆盖3字节的大小;因为,我们不能在32位溢出超过4个字节,或64位机器上8个字节):

|< malloc_chunk |

-----|----------------------|---+--------------------|----- ... | gethostbyname buffer |p|s|f|b|F|B| free chunk | ... -----|----------------------|---+--------------------|----- | X| |------------------------->| overflow

#!cpp

struct malloc_chunk {

INTERNAL_SIZE_T prev_size; /* Size of previous chunk (if free). */ INTERNAL_SIZE_T size; /* Size in bytes, including overhead. */

struct malloc_chunk* fd; /* double links -- used only if free. */ struct malloc_chunk* bk;

/* Only used for large blocks: pointer to next larger size. */

struct malloc_chunk* fd_nextsize; /* double links -- used only if free. */ struct malloc_chunk* bk_nextsize; };

X标记了内存损坏发生的位置。

其结果是,该glibc的malloc管理的空闲块被人工增大,导致内存与另一块Exim 的current_block重叠。而current_block是由Exim的的内部内存分配器管理的。

|< malloc_chunk |< storeblock | |

-----|----------------------|------------------------|---------------+---|-----

... | gethostbyname buffer |p|s|f|b|F|B| free chunk |n|l| current_block | ... -----|----------------------|------------------------|---------------+---|----- | |

|<-------------------------------------->| artificially enlarged free chunk

#!cpp

typedef struct storeblock { struct storeblock *next; size_t length; } storeblock;

然后,我们部分地分配已经释放的空闲块,然后使用任意数据覆盖Exim的current_block的起始部分(“storeblock”结构)。特别是,我们需要覆盖其“next”字段:

|< malloc_chunk |< storeblock | |

-----|----------------------|------------------------|--------+----------|-----

... | gethostbyname buffer |p|s|f|b|F|B| aaaaaaaaaa |n|l| current_block | ... -----|----------------------|------------------------|--------+----------|----- | X |

|<------------------------------->|

这有效地把gethostbyname的缓冲区溢出变成随便往哪儿写东西的问题,因为我们控制了两个指针:Exim分配器会返回的下一块内存块(被劫持“next”指针)和分配的数据(null终止字符串,我们发送Exim的SMTP命令的参数)。

最后,我们用这个随意写的漏洞来覆盖Exim的运行时配置,这个配置是存在堆中的。确切地说,我们覆盖Exim的访问控制列表(ACL),并实现任意代码执行。这要感谢Exim的 \字符串扩展机制。

|< storeblock |

-----|-------------------------------|---------------|-------------------|----- ... | Exim's run-time configuration | ... .. .. ... |n|l| current_block | ... -----|----x--------------------------|---------------|x------------------|----- | |

'<------------------------------------------' hijacked next pointer

#!cpp

|< ACLs >|

-----|----+-----+--------+------+----|---------------|-------------------|----- ... | Exim's run-time configuration | ... .. .. ... | old current_block | ... -----|----+-----+--------+------+----|---------------|-------------------|----- | XXXXXXXX | |<------------------->| new current_block

==============

渗透过程 ==============

1. 渗透环境搭建:KaliLinux与Metasploit

关于KaliLinux,它是Kali Linux是基于Debian的Linux发行版,它里面本来就预装了许多渗透测试软件,可以说是信息安全人士的专用操作系统,其中就有我们要使用的Metasploit。而Metasploit则是一款开源的安全漏洞检测与攻击开发平台,在Security Tools TOP10中排名第五。

首先,请到KaliLinux的官网 https://www.kali.org/downloads/ 下载最新的KaliLinux的iso(最好64位)并进行安装,实际操作都在KaliLinux下进行。安装好KaliLinux后,启动KaliLinux如下:

注意:由于我们主要使用的工具是Metasploit,而当今Metasploit已经可以说在黑客攻防或者说信息安全领域,是一种公认的标准了,绝大部分的漏洞触发工具或者漏洞的利用程序,都是以Metasploit为标准来将漏洞触发工具或者程序开发成一个Metasploit的渗透攻击模块来使用了。

所以在打开KaliLinux之后第一步要做的事情就是对Metasploit进行更新! 更新:直接打开终端,输入命令:msfupdate 即可!

更新过后,先通过终端输入:msfconsole 进入Metasploit,如下图:

打开后要注意的是,看上图红色圈的部分,开是否更新到15年4月2号后者之后 因为GHOST漏洞的利用模块已经在3月末被更新到Metasploit的模块库中了! 更新好后便可进行下一步。

2. 使用Nmap对目标进行端口扫描及服务查点

这里的目标是指一台带有GHOST漏洞而且启动了Exim邮件服务的Linux电脑。 Nmap是目前最流行的端口扫描与服务查点工具,作为Security Tools TOP10中的第

搜索更多关于: 基于Metasploit利用GHOST漏洞最终版 的文档
基于Metasploit利用GHOST漏洞最终版.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c2ygnl84tj33jk4g7snlq_2.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top