xfocus logo xfocus title
首页 焦点原创 安全文摘 安全工具 安全漏洞 焦点项目 焦点论坛 关于我们
English Version

Microsoft Windows NT 4.0 MSIEXEC注册表权限问题


发布时间:2000-10-26
更新时间:2000-10-26
严重程度:
威胁程度:权限提升
错误类型:配置错误
利用方式:服务器模式

受影响系统
Microsoft Windows NT 4.0
详细描述
由于对Microsoft Installer Service (MSIEXEC)注册表键值处理不够强壮,
可能导致本地用户提升自己的权限。

于Microsoft Installer Service (MSIEXEC)关联的文件后缀名是*.msi,
一但*.msi文件被执行,DLL就读下面的键值:

HKLM\Software\Classes\CLSID\{000C103E-0000-0000-C000-000000000046}\InProcServer32

默认情况下是使用C:\winnt\system32\msi.dll. 任意用户可以登陆系统来修改
注册表键值。一个恶意用户可以获得全部控制权限,如果他们能建立自己的DLL文件
来输出DllGetClassObject() 函数并把键值指向自己的DLL文件,而不是msi.dll
文件。

测试代码
下面的代码是插入了一DLL的文件,可以通过执行MSI文件来交互的执行CMD程序。

#include <stdio.h>

__declspec(dllexport)int DllGetClassObject()
{
system("cmd.exe");
return 0;
}

解决方案
确定只有管理员能修改HKLM\Software\Clsid的键值。

相关信息