【问题标题】:Change integrity level of System32 folder in Vista在 Vista 中更改 System32 文件夹的完整性级别
【发布时间】:2011-07-29 04:02:25
【问题描述】:

我没有成功获得一个 Java WebStart 应用程序,该应用程序应该具有 AllPermissions 以在 Vista 或 Windows 7 上将文件写入 Windows/System32。虽然我不相信这是可能的,但也许有一种方法可以降低完整性级别将这个文件夹移到 Medium?

我越来越绝望了,我并没有超越疯狂的注册表黑客来实现这一点。我们有一个在 Windows XP 上运行良好的生产应用程序,但是一个新的潜在客户坚定地决心只维护 Windows 7 或 Vista 工作站。

感谢任何帮助或建议,如果这是不可能的,我特别愿意听取任何人的意见。请不要告诉我这有多不安全和危险,我知道风险。

【问题讨论】:

  • 为什么您的应用程序需要写入 System32?有没有办法改变你的应用程序写入另一个目录?这将减少在 Windows 7 XP 上成为管理员的需要。
  • 需要来自 Java SDK 的第三方外围设备,该设备将不具名。这个 SDK 当然由几个 DLL 和本地设备驱动程序组成,显然需要在这个文件夹中。我想也许只是因为这些需要在 PATH 环境变量上,但还是有问题。此外,该设备具有极其特殊的用途,基本上是同类设备中唯一带有 Java SDK 的设备。

标签: windows security windows-7 windows-vista


【解决方案1】:

我想出了如何为 Vista 做到这一点,但对我所做的事情感到非常不安。

有一个免费程序可供您下载,它可以让您更改文件夹的完整性级别。 http://www.minasi.com/apps/

在尝试将 System32 更改为中等完整性时,从命令行使用此程序会导致访问被拒绝。这是因为管理员对此目录没有明确的权限。

这才是真正可怕的地方,要让自己完全控制 System32,您必须让管理员成为该目录的所有者。当前所有者最初是 TrustedInstaller。

所以,我将 System32 的所有者更改为管理员,给予管理员完全控制权,然后使用管理员命令提示符中的 chml 来赋予 System32 中的完整性。

我现在想知道 System32 拥有不同的所有者会产生什么后果,但是如果 Vista 允许您开箱即用地执行此操作,那么它不会那么糟糕。对吗???

【讨论】:

  • 好吧,将 System32 设置为中等完整性并不能解决我的问题。问题显然出在其他地方,但这完全是一个不同的问题,出于所有意图和目的,这个特定问题得到了回答。
  • 更改 System32 上的 ACL 是破坏 Windows 的最简单方法之一(如使 Windows 停止工作)。您还可以将您的客户机器开放给互联网上任何想要写入 System32 的恶意软件。
  • 顺便说一句,知识库文章 885409 在这里有一些指导:support.microsoft.com/kb/885409。阅读“文件系统和注册表访问控制列表修改”部分。
  • 感谢您的信息!我现在同意这是一件坏事,即使考虑到它我也觉得很脏。
  • 现在我遇到了一个重大问题,在将 System32 的完整性级别设置为 Medium 后,我现在无法将其设置回 System!尽管我是该目录的所有者并且现在拥有该目录的全部权限,但我还是被拒绝访问。伟大的。我完全出于令人作呕的好奇而对我的机器进行了检查。在我重新映像我的电脑之前,您有什么建议可以修复它吗?
【解决方案2】:

正确的解决方案是将所需的 DLL 从您的安装程序放在 system32 文件夹中。

您的 MSI 安装程序将知道如何提示用户提升为管理员,因此您有权将文件添加到用户 System32 文件夹。

如果用户没有成为(或提升为)管理员,您将无法修改用户 System32 中的文件;这是安全操作系统的基本约束。

【讨论】:

  • 这是一个很好的观点,但是应用程序不是从 MSI 安装的,而是从 Java WebStart 安装的。这样做的好处是,当我更新网络服务器上的软件版本时,每个工作站都会将它下载到 WebStart 缓存并在下次运行它。我知道有些服务也可以通过 MSI 安装程序执行此操作,但最后我检查了它们是专有的且价格昂贵。
  • 如果您希望您的应用程序能够在没有提升的情况下安装,您需要在其他地方安装它。你应该按照谷歌浏览器的做法,安装在C:\Users\MapleShaft\AppData\Local\SuperCoolJavaApp\CoolBeans.exe。这是您应该存储每个用户的非漫游应用程序数据的地方。
【解决方案3】:

首先,作为 CHML(您提到的应用程序)的作者,很遗憾降低 Windows 文件夹的完整性并不是一个好主意(如您所见)。

也就是说,有一种方法可以让事情以你想要的方式恢复 - 实际上有几种方法,但最简单的方法是

1) 创建可启动的 WinPE CD 或 U 盘 2)添加我的 chml.exe 可执行文件 3) 启动你的系统

此时您可以使用 chml 重新提高完整性级别。它之所以有效,是因为在 WinPE 下您作为系统运行,并且可以提高您的 IL。 (文档(咳咳)确实提到了这一点。:-)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-07
    • 1970-01-01
    • 1970-01-01
    • 2011-11-07
    • 1970-01-01
    • 1970-01-01
    • 2012-06-05
    • 1970-01-01
    相关资源
    最近更新 更多