WEB开发网
开发学院网络安全安全技术 使用协议转换 - 防御提示 阅读

使用协议转换 - 防御提示

 2009-02-09 13:52:49 来源:WEB开发网   
核心提示: string admin = "administrator@mydomain.local";using (WindowsIdentity id = new WindowsIdentity(admin)) // S4U logonusing (WindowsImperso

string admin = "administrator@mydomain.local";
using (WindowsIdentity id = new WindowsIdentity(admin)) // S4U logon
using (WindowsImpersonationContext ctx = id.Impersonate()) {
  string SAM = @"c:windowsrepairsam";
  Console.WriteLine(File.ReadAllText(SAM));
}

假设,她正通过将其权限暂时升级到域管理员级别来攻击本地计算机中的安全帐户数据库。

很显然,如果攻击得逞,后果是很严重的。但这是绝对不可能的。您可以看到,虽然这个黑客能够成功执行最初几行代码,但她执行 S4U 登录时所收到的安全令牌权限非常弱,不会支持用户模拟。她对 File.ReadAllText 的调用将失败,因为她所收到的管理员帐户令牌只可用于识别管理员,而不能模拟管理员。

只有具有更高权限的用户才可以使用 WindowsIdentity 中的 S4U 登录构造函数来获得可成功用于模拟的令牌。在后台,此构造函数调用的 Win32® API (LsaLogonUser) 将检查调用进程的标识是否含有 SeTcbPrivilege,默认情况下,SYSTEM 是包含 SeTcbPrivilege 的。这是 Windows 中的最高权限,因为它表明了您有效地成为了操作系统本身或者“可信计算基础”(Trusted Computing Base,首字母缩写为 TCB)的一部分。如果您获得了这项权限,您将“无所不能”,安全系统将颁发可以模拟的 S4U 登录票证。

这正是读者开始遇到麻烦的地方。他们想使用协议转换,但很快发现除非他们的网关进程以 SYSTEM 来运行,否则,他们通过此功能建立的任何登录都毫无用处。他们不能通过模拟来获取后端资源。有些人先行一步,将网关提升以 SYSTEM 权限来运行,但感觉到这样做不妥,而另一些人则拒绝这样做并寻求其他更传统的解决方案。

上一页  1 2 3 4 5 6 7 8  下一页

Tags:使用 协议 转换

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接