`

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

 
阅读更多
原文地址:https://code.google.com/p/google-security-research/issues/detail?id=118

平台: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介绍:http://technet.microsoft.com/en-us/library/cc728440%28v=ws.10%29.aspx
split-token admin:http://michaelkleef.blogspot.com/2011/09/understanding-whats-in-user-token.html
split-token admin:概要的说,即使你是管理员,你也只能访问部分权限。
分享到:
评论

相关推荐

    golang.org/x/sys/windows

    golang.org/x/sys/windows

    win10 null.sys 文件 fatal:open /dev/null or dup failed: No such file or directory

    win10安装git报错 fatal:open /dev/null or dup failed: No such file or directory错误,将该文件复制到C:\Windows\System32\drivers 替换掉原有的null.sys文件重启即可

    程序员需要经常刷题吗-glide:https://github.com/Masterminds/glide

    修复错误:Windows 操作系统无法将依赖项导出到供应商目录。 修复镜像导出子包到供应商目录错误。 错误 1 修复错误:Windows 操作系统无法将依赖项导出到供应商目录。 因为获取包后的 Windows 文件系统权限将无法...

    量产自动加载USB-CD驱动

    device=himem.sys /testmem:off devicehigh=ramfd.sys DEVICEHIGH=QCDROM.SYS /D:PATACD01 DEVICEHIGH=GCDROM.SYS /D:SATACD01 /C0 DEVICEHIGH=GCDROM.SYS /D:SATACD02 /C1 DEVICEHIGH=GCDROM.SYS /D:SATACD03 /C2 ...

    CI框架PHP漫画小说二合一CMS网站系统源码

    │─sys //系统核心目录 │ │─apps //应用目录 │ │─class //第三方库类目录 │ │─errors //系统错误提示目录 │ │─libs //系统常量配置目录 │ │─system //CI框架目录 │─template //模板目录 ...

    ORA-29541: class SYS.oracle/jpub/runtime/dbws/DbwsProxy could not be resolved

    NULL 博文链接:https://lyh7609.iteye.com/blog/516672

    golang.org/x

    golang.org/x 包容易被墙,所以上传上来。 使用时解压到 gopath 目录的go\src 文件夹下。

    适用于Java,kotlin的mastodon客户端https://github.com/tootsuite/documentation/blob/master/Using-the-API/API.md-Android开发

    官方API文档https://github.com/tootsuite/documentation/blob/master/Using-the-API/API.md示例应用程序Android应用程序https://github.com/sys1yagi/DroiDon入门Mastodon4j在jitpack中发布。 将其添加到存储库末尾...

    Android代码-PicCrop

    注: 图片选择/拍照->裁剪->压缩 整个流程的操作已经串起到下面的库中 PhotoOut PicCrop 对ucrop的封装工具类,让其使用更加快捷. ...如果以后ucrop以后升级,那么本工具类只需要改CropConfig里字段就可以....

    rxtx-2.2pre2.zip

    2. 修改 vim /usr/local/rxtx/rxtx-2.2pre2/./src/RawImp.c 中把#include <sys/io.h> 改成 #include <sys/uio.h> 3. 在/usr/include/linux/version.h 文件中添加 #define UTS_RELEASE "4.9.201-tegra" 其中 4.9.201-...

    MS15-034:HTTP.sys 远程执行代码

    在微软4月14日补丁日发布的补丁中,有一个针对IIS服务器的远程代码执行漏洞危害非常大, 漏洞信息 远程执行代码漏洞存在于 HTTP 协议堆栈 (HTTP.sys) 中,当 HTTP.sys 未正确分析经特殊设计的 HTTP 请求时会导致此...

    MySQL中报错:Can’t find file: ‘./mysql/plugin.frm’的解决方法

    主要给大家介绍了关于在MySQL中报错:Can't find file: './mysql/plugin.frm'的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...

    Linux与Windows双系统安装.rar

    Linux与Windows双系统安装,让你体验双系统相互编程的乐趣

    mayfly-go.zip

    说明:实现 liunx shell终端,在线文件编辑查看,脚本管理执行,mysql,redis在线数据操作以及...6、linux版本需要对mayfly-go-linux 添加可执行权限chmod +x mayfly-go-linux,执行:nohup ./mayfly-go-linux & 即可

    sogou_toolchain.tar.gz

    arm-openwrt-linux-g++ -c record.c -I./include -o ./obj/record.o In file included from ./include/alsa/asoundlib.h:32:0, from record.c:13: /home/rootroot/sogou/toolchain/include/sys/poll.h:1:2: warning...

    serenum.sys文件

    最近买了个80C51单片机,在安装USB转串口CH340驱动的时候,安装失败,解决过程中不小心替换了/windows/system32/drivers/serenum.sys文件导致数字签名问题,现找到对应于win7,win8和xp系统的该文件,win7系统亲测...

    golang.org.zip

    lint net sys text time tools 解决依赖报错! go语言 下载依赖 package golang.org/x/net/http2/hpack: unrecognized import path "golang.org/x/net/http2/hpack" (https fetch: Get ...

    fatal: open /dev/null or dup failed: No such file or directory 修复

    使用git Bash here闪退并生成mintty.exe.stackdump文件 cmd使用git 报错 fatal:open /dev/null or dup failed: No such file or directory 并弹出mitty.dump文件 使用方法见我的CSDN

    DOSBOX无法输入符号的解决方法:rover.sys

    先别急着拷进诺基亚N900,要作一个改动,下载附件解压,把附件中的rover.sys复制进软件包中名为dosbox的文件夹中(此文件夹中应该包含pal文件夹,rich3文件夹及dosbox-0.73.conf,mapper.txt),  (这个rover.sys...

    asp.net比赛评分系统源码

    登录地址:http://xxx.com/sys_admin/sys_login.aspx 测试用户名及密码:admin admin 系统功能模块:管理员用户、部门、角色、用户,菜单,配置,系统日志等。 比赛功能模块:大赛设置,大赛评分项设置,大赛评委...

Global site tag (gtag.js) - Google Analytics