鱼C论坛

 找回密码
 立即注册
查看: 3283|回复: 13

在Windows7 以上的操作系统中如何提升User的访问权限

[复制链接]
发表于 2016-7-14 16:22:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
问题描述:
1. 在Windows 2012 操作系统上,使用标准User用户登录,使用API CreateFile去打开USB的驱动句柄时,返回-1。原因就是User权限不足
2. 测试在Windows 2008操作系统上执行同样的操作,结果一样是权限不足
3. 尝试降低了UAC没用
4. 尝试使用进程中提权的办法,使用API AdjustTokenPrivileges“提升”权限(其实就是打开Debug权限),报错,令牌没有该权限。
    原因:Windows 7 以后的系统中,普通用户下并没有Debug的权限,而AdjustTokenPrivileges实质就是打开Debug权限而已,所以自然也就提升不了
              User的权限,结果也就是依然无法打开USB驱动句柄

提问:
想请教各位大牛们一下:
1. 有没有办法临时提升User权限到Adminstrator,并且不弹出UAC的提示框
2. 有没有办法绕过权限的问题,直接打开USB驱动句柄
3. 跟USB设备通信,打开USB驱动句柄,在Windows上是不是有单独的权限对其设置


最后,还请各位大牛们帮帮忙,提出你们的想法,谢谢啦!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-7-14 16:31:18 | 显示全部楼层
1.不行的,不能跳过UAC提示框
2.绕过去也不
3.不一定,写个驱动试试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-7-14 16:35:52 | 显示全部楼层
无符号整形 发表于 2016-7-14 16:31
1.不行的,不能跳过UAC提示框
2.绕过去也不
3.不一定,写个驱动试试

首先感谢你的回答,但是说实话...写驱动有点儿把问题扩大化了,还是想单纯的从应用层来解决这个问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-14 16:39:28 From FishC Mobile | 显示全部楼层


没办法的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-14 18:27:38 | 显示全部楼层
绕是能绕,github上就有很多源码。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-7-15 16:47:52 | 显示全部楼层
康小泡 发表于 2016-7-14 18:27
绕是能绕,github上就有很多源码。

不使用CreateFile这个API的话,有没有其他方式去打开USB的驱动句柄呢?最好可以不要求管理员权限的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-15 17:46:29 | 显示全部楼层
FlyCode 发表于 2016-7-15 16:47
不使用CreateFile这个API的话,有没有其他方式去打开USB的驱动句柄呢?最好可以不要求管理员权限的

打开驱动不要管理员权限?我还不知道哇。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-15 17:46:33 | 显示全部楼层
FlyCode 发表于 2016-7-15 16:47
不使用CreateFile这个API的话,有没有其他方式去打开USB的驱动句柄呢?最好可以不要求管理员权限的

打开驱动句柄不要管理员权限?我还不知道哇。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-15 22:15:38 | 显示全部楼层
康小泡 发表于 2016-7-15 17:46
打开驱动不要管理员权限?我还不知道哇。

肯定要的,标准用户的令牌没有这个权限
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-7-18 12:32:23 | 显示全部楼层
无符号整形 发表于 2016-7-15 22:15
肯定要的,标准用户的令牌没有这个权限

有办法在令牌中加入这个权限么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-18 14:33:23 | 显示全部楼层
FlyCode 发表于 2016-7-18 12:32
有办法在令牌中加入这个权限么?

没办法
标准用户用的是筛选过的令牌,所以他得令牌没权限
管理员用户就不是,他的令牌是没有被筛选过的,所以说他有权限
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-7-18 14:42:24 | 显示全部楼层
无符号整形 发表于 2016-7-18 14:33
没办法
标准用户用的是筛选过的令牌,所以他得令牌没权限
管理员用户就不是,他的令牌是没有被筛选过的 ...

好吧,谢啦,看来正当途径是无法使用User用户打开驱动句柄的了...
有没有其他非正常手段让User用户可以打开驱动句柄呢?比如通过查找系统漏洞之类的,或者需要屏蔽掉Windows的一些检测?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-18 14:55:12 | 显示全部楼层
FlyCode 发表于 2016-7-18 14:42
好吧,谢啦,看来正当途径是无法使用User用户打开驱动句柄的了...
有没有其他非正常手段让User用户可以 ...


首先  你钻漏洞是没用的(即使可以实现),因为很快微软就会出补丁把他补上的。
屏蔽掉windows的一些检测,微软还是会出补丁的。
所以 我建议你 把UAC的执行级别调到最高(requireAdministrator),虽然 会弹出提示框,但是,记住一点:
千万不要钻漏洞!
还有 就是如果你怕用户拒绝提权的话 你就可以这样
1.手动调用ShellExecuteEx函数 通过把lpVerb成员设为runas实现手动提权,另外,为了防止无限打开并提权,将Parameters成员设为一个命令行参数 如果为某某参数 就停止提权
2.如果返回True,表示提权成功,原程序退出
3.如果返回False,表示提权失败,重新执行第一步

那样 用户就不得不提权了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-7-18 17:15:50 | 显示全部楼层
无符号整形 发表于 2016-7-18 14:55
首先  你钻漏洞是没用的(即使可以实现),因为很快微软就会出补丁把他补上的。
屏蔽掉windows的一些 ...

恩,明白了,真的很感谢!
客户的需求是这样的,它把服务器上的管理员和用户做了区分,他们本意上是不想看到UAC弹出的,不给用户提供管理员密码,也不让提权,我能想到的办法也就这么多了,看来有些无解了,只能跟客户继续商议了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-29 16:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表