您现在的位置是:首页 > Javascript
当前栏目
利用Com组件绕过UAC
2023-03-15 22:03:39 时间
Com组件绕过UAC是一个很古老的话题了,这边以UACMe项目中索引为41的方法为例,看一下如何使用Com组件绕过UAC。
其中UACMe的41号概述为:
Author: Oddvar Moe
Type: Elevated COM interface
Method: ICMLuaUtil
Target(s): Attacker defined
Component(s): Attacker defined
Implementation: ucmCMLuaUtilShellExecMethod
Works from: Windows 7 (7600)
Fixed in: unfixed
How: -
该方法的目标接口是ICMLuaUti,首先我们要知道的是,什么样的接口可以被用来做UAC绕过,简单来说有两个要求:
- elevation属性启用,且开启Auto Approval;
- COM组件中的接口存在可以命令执行的地方,例如ICMLuaUtil的ShellExec;
而这两个条件我们一般都可以使用OleViewDotNet和IDA来进行查看。首先直接用OleViewDotNet搜索你想要搜索的com组件的名字
查看属性可以看到条件1皆为true,表示这个组件可以用来绕过UAC认证
当鼠标悬停到时可以看到其调用的dll。
然后我们使用IDA打开这个dll,可以在函数列表中看到ShellExec字样的函数
其中调用了ShellExecuteExW来进行命令执行
其函数原型如下:
BOOL ShellExecuteExW(
[in, out] SHELLEXECUTEINFOW *pExecInfo
);
该有的都有了,下面就是写代码了,这里直接选择https://github.com/0xlane/BypassUAC该项目进行开发节约时间。
但是在执行时还是触发了UAC。
这是因为:如果执行COM提升名称代码的程序身份是不可信的,还是会触发UAC弹窗;若是可信程序,则不会触发UAC弹窗。因此,必须使这段代码在WIndows可信程序中运行。可信程序有计算器、记事本、资源管理器、rundll32.exe等。但本质还是校验的PEB,把CommandLine和imagepath修改为指定进程的即可。
其代码中也有相关实现。
再次执行,即可不弹框获取shell
但由于ShellExecuteExW的问题,无法获取命令输出,我们可以借助文件重定向命令结果来实现,
即可得到一个命令交互的程序。
请严格遵守网络安全法相关条例!此分享主要用于学习,切勿走上违法犯罪的不归路,一切后果自付!
相关文章
- iOS 16首张演示截图曝光!这风格,跟安卓没区别
- 开发者注意了,WebKit迎来新升级!
- 毛玻璃 CSS 特效的兼容性方案探究
- web前端技术
- HTTP 与 HTTPS
- 疑似苹果iOS 16系统界面截图曝光,“大组件”惹眼
- 苹果 iOS / iPadOS 15.3 正式版发布:修复 Safari 浏览器泄露隐私漏洞
- Rails 框架默认 JavaScript 打包器 “Webpacker” 正式退役
- HTML 标签 Input 在 iOS 15 的改变,惊呆了
- Vsync 信号机制和 UI 刷新流程
- iFixit分享iPhone 13 Pro拆解报告:可维修性仅5/10分
- 微信安卓版 8.0.14 内测版发布,附开发者更新内容
- 从三个方面,帮你快速掌握「设计系统」的完整框架
- 下个月就来!谷歌安卓12正式版即将推送:国内用户不用等了!
- 有哪些组件值得学习?我梳理了八个大厂的设计组件!
- 华为鸿蒙继续开放:方舟JS运行时正式开源
- iOS文本的多语言适配和实践
- 12306网站进行适老化改造:验证码终于优化、界面简化
- 良心的好功能!12306网站爱心模式详细体验
- 源码进阶之lifecycle组件原理分析