如何实现Disk Pulse Eneterprise Window应用程序的漏洞分析


小编今天带大家了解如何实现Disk Pulse Eneterprise Window应用程序的漏洞分析,文中知识点介绍的非常详细。觉得有帮助的朋友可以跟着小编一起浏览文章的内容,希望能够帮助更多想解决这个问题的朋友找到问题的答案,下面跟着小编一起深入学习“如何实现Disk Pulse Eneterprise Window应用程序的漏洞分析”的知识吧。Disk Pulse Eneterprise是一款监视磁盘变化的软件,它可以通过一个管理端口9120或者web管理窗口80对软件进行连接管理,从而监视磁盘的变化情况。在Disk Pulse Eneterprise中有一个动态链接库libspp.dll ,其中有一些负责HTTP操作的函数,问题就出现在这个动态链接库中,在处理后数据时,由于对于后数据没有进行严格的长度控制,导致在执行获取后数据时向无效内存拷贝数据造成缓冲区溢出,触发SEH异常行为处理,最后控制EIP,执行任意代码。软件下载链接:https://[www.exploit-db.com/apps/a679e77e57bf178b22bff5e86409a451-diskpulseent_setup_v9.0.34.exe](http://www.exploit-db.com/apps/a679e77e57bf178b22bff5e86409a451-diskpulseent_setup_v9.0.34.exe)漏洞披露地址:https://[www.exploit-db.com/exploits/40452](http://www.exploit-db.com/exploits/40452)windows 7 x86:系统环境IDA pro:静态分析工具免疫调试器:漏洞分析专用调试器WinDbg的:漏洞调试器先简单看一下POC,是一个比较综合的缓冲区溢出漏洞。其中涉及了SEH结构化异常处理程序,以及egghunter技术。结构化异常处理(SEH)是一种用于处理硬件和软件异常的窗口机制,熟悉编程的人可能熟悉异常处理结构。它通常表示为尝试/除和的try / catch代码块。简单来说就是一种寻址技术,通过设计标记,然后去跳转到另一个标记所在的位置,执行的shellcode。当缓冲区太小不能放下我们的shellcode的存放,这时就需要egghunter技术。首先,我们先分析一下POC攻击者构建了http请求包,可以看出post请求,url是/ login,content-length:17000。发送了12292个“ x41”字节,然后发送了“w00tw00t”8个字节,之后发送了20个 “ X90” NOP字节,之后发送的buf,再加50个NOP,1614个 “ X42”,接下来就是SEH的异常处理机制(不太懂的同学可以去深入了解一下),接下来是egghunter执行代码,大概意思就是去跳转到含有双重 “w00t” 的地方执行。剩下就是对缓冲区的填充。接下来我们使用文DBG打开带有漏洞版本的应用程序。发送有效载荷,触发漏洞。输入克,返回地址被覆盖,KB查看堆栈调用。这里调用了libspp.dll的SCA_HttpParser的GetNextString函数,接下来程序进入SHE异常行为处理,通过覆盖SEH Handler打到代码执行。打开IDA,分析10092822处,在libspp中SCA_HttpParse类负责处理HTTP的一些相关操作,其中有一个函数名为ExtractPostData负责处理后数据,在这个函数入口下断点。这个函数的入口地址为10092510发送缓冲区全用一个代替的POC,触发漏洞,如下图所示:查看传参情况,后期数据作为第二个参数传入,注意是完整传入。这里继续单步跟踪,到达之前说到的GetNetString函数。这个函数会做一件事情,就是将第一个参数,也就是后期数据进行拆分,将每一部分分离出来作为后续处理,单步步过,可以看到第一次进入GetNextString之后,拆分了第一个数据。第一次分离出来了用户名,接下来,再次进入GetNextString开始拆分第二个字符串,这个拆分过程会执行一系列的拷贝操作。这个LOC块负责拷贝,其中10092822地址就是触发漏洞的关键位置,ESI是待拷贝的缓冲区首地址,EDX是拷贝长度,CL是拷贝内容,这里是一个字一个字拷贝的。因此,当超过开辟缓冲区大小的时候,就会引发向无效地址拷贝的问题。看一下EDX + ESI的值,可以看到,后面已经超过了开辟缓冲区的大小,后面就是无效缓冲区了。之后看一下ECX的值CL就是将ECX的低地址一个字节一个字节拷贝,这里由于向无效地址拷贝,引发SEH异常处理,最后达到代码执行,来看一下伪代码。再来看一下GetNextString函数的伪代码。首先发送poc,触发漏洞,使用免疫调试器,查看她链,被成功覆盖。我们需要找到SHE的偏移量。利用蒙娜丽莎命令生成20000个字符运行完在C:日志 FTPServer的 pattern.txt中找到。重启程序,将其加入到脚本中的BUF中运行使用蒙娜丽莎命令来寻找SEH偏移量查看蒙娜丽莎的控制台输出,找到它的描述SHE偏移量的部分。偏移量是14292。接下来,要寻找pop pop ret的地址使用!mona seh打开seh.txt日志查找指向POP POP RET序列的代码块地址。设置的shellcode里面的利用msf生成通用的shellcode,命令如下在POC中写入的shellcode,再写入过程中,要根据BUF的长度,修改后面偏移量的值。重启程序,打开的Metasploit选择开发模式输入命令,设置参数发送poc,触发漏洞,查看metasploit反应,输入shell,可以连到到存在漏洞主机的shell。请求方式:POST请求路径:/登录漏洞特征:POST +任意路径+内容长度:> 14292+ | eb | +任意字节+ | 90 90 |升级应用程序,对应用程序打补丁或者下载新版本的应用程序,或者装载杀毒软件。下载地址:https://www.diskpulse.com/downloads.html感谢大家的免费云主机域名阅读,以上就是“如何实现Disk Pulse Eneterprise Window应用程序的漏洞分析”的全部内容了,学会的朋友赶紧操作起来吧。相信云编程开发博客小编一定会给大家带来更优质的文章。谢谢大家对云编程开发博客网站的支持!

相关推荐: centos7手把手教你搭建zabbix监控

Centos7安装部署zabbix3.4centos系统版本:1、安装前需要先关闭selinux和firewall.1.1[root@zabbix ~]# vi /etc/selinux/config 将SELINUX=enforcing改为SELINUX=d…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 02/06 17:35
下一篇 02/06 17:40