首页
社区
课程
招聘
MS08-067复现与简单分析
发表于: 2019-5-7 11:53 10093

MS08-067复现与简单分析

2019-5-7 11:53
10093

kali 无需准备,直接可使用

运行metasploit

设置exp

设置利用方式

最终设置结果如图:

执行,观察返回结果,成功返回shell

shell:

metasploit

CVE-2008-4250微软编号为MS08-067,根据微软安全漏洞公告,基本可以了解其原理:
MS08-067漏洞是通过MSRPC over SMB通道调用Server服务程序中的NetPathCanonicalize函数时触发的,而NetPathCanonicalize函数在远程访问其他主机时,会调用NetpwPathCanonicalize函数,对远程访问的路径进行规范化(将路径字符串中的'/'转换为'\',同时去除相对路径"\.\"和"\..\"),而在NetpwPathCanonicalize函数中发生了栈缓冲区内存错误,造成可被利用实施远程代码执行。

从该部分poc代码可以明显看出,漏洞发生的位置位于Server服务调用的NetAPI32.dll动态链接库中,进行path canonicalization的代码,此模块甚至可以绕过一些版本系统的DEP数据执行保护。

exploit建立了TCP连接,然后进行SMB空会话连接。构建恶意路径,先初始化一些变量,填补字符串pad、服务器名称server以及前缀prefix、路径path。函数使用rop技术构建shellcode,将payload进行编码之后,构造触发漏洞的unicode相对路径"\..\..\",然后填充字符串,添加字符串结尾'\0'。
而在前面提到的target初始化部分:

定义且赋值了变量Ret、Scratch,且Ret对应的是ACGENRAL.DLL中的JMP ESI指令地址,可知该模块利用ESI寄存器中指向栈空间的地址,覆盖返回地址,并通过ACGENRAL.DLL中的JMP ESI指令进行中专跳转,最终执行栈中的Shelllcode。

然后和远程服务器进行交互,发送构造的数据:

Stub是符合NetPathCanonicalize结构的标准调用包头,将触发远程主机上的Server服务去调用规范化路径处理函数NetpwPathCanoncalize,从而触发漏洞。

在防火墙中进行流量监测,主要是针对数据包中存在的形如"\**\..\..\*"这样的恶意路径名进行检测,最为保险的方法是使用pcre正则去匹配。

 
 root@kali:~/pocs/cve-2008-4250# msfconsole

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2019-5-7 18:47 被有毒编辑 ,原因:
收藏
免费 1
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//