[译]Windows提权:ahcache.sys/NtApphelpCacheControl

原文地址:[url]https://code.google.com/p/google-security-research/issues/detail?id=118[/url]

平台:Windows 8.1 Update 32/64 bit(其他版本未测试)
Windows8更新的系统函数NtApphelpCacheControl(位于ahcache.sys)当新进程创建时允许缓存程序通用数据来达到快速重复使用的目的。普通用户可以查询缓存但是不能添加缓存实体,因为这个操作被限制为管理员权限。这是通过AhcVerifyAdminContext函数检查的。
但是该函数存在漏洞--它不正确检查调用者的伪装token来确定用户是否是管理员。它使用PsReferenceImpersonationToken函数读取调用者的伪装token,然后比较token中的user SID和LocalSystem的SID。它不检查token的伪装级别所以可以从本地系统进程中获得一个token来绕过检查。本PoC使用BITS服务和COM来获得伪装token,但是仍有可能存在其他办法来绕过。
在PoC中,创建一个缓存实体来进行UAC自动提权可执行文件(omputerDefaults.exe)。然后把缓存指向regsvr32的app compat实体,用来强制RedirectExe shim来重载regsvr32.exe。然而,可以使用任何可执行文件,技巧是找到一个合适的预存在的app compat配置。

[url]步骤:
1. 把AppCompatCache.exe和Testdll.dll放到磁盘
2. 确保使用了UAC,当前user是一个split-token admin,UAC设置为默认设置
3. 在命令行中运行AppCompatCache.exe c:\windows\system32\ComputerDefaults.exe testdll.dll
4. 如果成功,那么将会出现一个以管理员权限运行的计算器。否则,重新运行步骤三,有时第一次运行的时候会出现caching/timing问题[/url]

AppCompat介绍:[url]http://technet.microsoft.com/en-us/library/cc728440%28v=ws.10%29.aspx[/url]
split-token admin:[url]http://michaelkleef.blogspot.com/2011/09/understanding-whats-in-user-token.html[/url]
[color=red]split-token admin:概要的说,即使你是管理员,你也只能访问部分权限。[/color]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值