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的键值。 相关信息 |