UAC绕过初探
笔者最近在学习UAC绕过的技术,通过对其他师傅的文章进行总结,成功利用DLL劫持绕过了UAC,并且可以以High Mandatory Level来启动进程。在此记录下学习过程,笔者也是初次接触,若各位师傅发现文章中的错误,望各位师傅斧正。
一、基础知识简述
UAC:
用户帐户控制(User Account Control,简写作UA C)是微软公司在其Windows Vista及更高版本操作系统中采用的一种控制机制,保护系统进行不必要的更改,提升操作系统的稳定性和安全性。
管理员一般以较小的权限去运行管理员任务,低权限的管理员被称为被保护的管理员,这些管理员在执行管理员任务时,可以通过用户交互界面来提升权限去执行任务。
普通用户执行管理员任务时会被要求提升到管理员权限,再去执行任务
DLL文件:动态链接库文件,多数可执行文件并不是一个完整的文件,它被分为多个DLL文件,大多数EXE程序执行的时候均会调用DLL文件。
当程序运行时调用DLL文件的过程:
1.程序所在目录
2.系统目录即 SYSTEM32 目录
3.16位系统目录即 SYSTEM 目录
4.Windows目录
5.加载 DLL 时所在的当前目录
6.PATH环境变量中列出的目录
可执行程序在调用DLL文件的过程中会在高优先级目录中查找(首先查找程序所在目录),当无法找到时会依次在较低优先级的目录中查找,当程序在高优先级的目录中找到所需的DLL文件后,则不会在低优先级的目录中查找。
可执行程序的提权执行:
一些可执行文件在执行时会自动提权运行,而且不会触发UAC机制。这些应用程序清单中都有<autoElevate>元素。
如何查看可执行文件清单中是否有<autoElevate>元素:
1、findstr/C:”<autoElevate>true” xxx.exe
2、使用sigcheck(微软数字签名工具)
附上工具链接:
https://docs.microsoft.com/zh-cn/sysinternals/downloads/sigcheck
这里使用一种可自动提权运行的可执行文件,且其调用dll的目录可以被写入恶意的dll文件,从而进行dll劫持:
C:\Windows\SysWOW64\SystemPropertiesAdvanced.exe
二、通过DLL劫持成功绕过UAC机制
这里使用的是C:\Windows\SysWOW64\SystemPropertiesAdvanced.exe文件,进行dll劫持从而绕过UAC机制
1、首先查看文件清单是否有<autoElevate>元素,可以默认提权执行
2、通过process monitor工具来查看SystemPropertiesAdvanced.exe执行时调用dll文件的过程
添加过滤器方便查找dll的调用过程:
Windowsapps目录是win10应用商店的缓存/下载应用程序的目录,允许用户对其进行写操作,可以通过构造恶意的DLL文件并将其放入,进行DLL劫持并绕过UAC机制
3、通过msfvenom构造payloads,将构造好的srrstr.dll放入到windowssapps目录下,通过构造的CMD.exe来绕过UAC
4、再次运行SystemPropertiesAdvanced.exe,查看DLL劫持效果,发现成功绕过UAC机制(备注:这里在运行时没有进行二次调用,无法正常运行原来的程序,可能会影响被劫持程序的稳定性,这里的恶意DLL仅仅弹出CMD,就算被劫持的程序崩掉,CMD已经成功弹出,对实验结果影响不大),新的CMD不会触发UAC提示可以用regedit命令进行测试:
可以看到,此时的cmd.exe具有高完整性级别:
除此以外还可以通过同样的方式由DLL劫持来创建会话,效果如下:
参考资料链接:
https://egre55.github.io/system-properties-uac-bypass/
https://blog.csdn.net/vlily/article/details/47338327
https://payloads.online/archivers/2018-06-09/1#0×02-%E5%AF%BB%E6%89%BE%E8%BF%87%E7%A8%8B
https://docs.microsoft.com/zh-cn/windows/win32/uxguide/winenv-uac
UAC绕过初探的更多相关文章
- UAC绕过思路(未完)
---恢复内容开始--- What is UAC?
- 关于父进程和子进程的关系(UAC 绕过思路)
表面上看.在windows中. 假设是a进程创建了b进程,那么a进程就是b进程的父进程.反之,假设是b创建了a,那么b进程就是a的父进程,这是在windows出现以来一直是程序员们都证实的,可是在在w ...
- UAC 实现原理及绕过方法-打洞专用
首页 新随笔 订阅 管理 随笔 - 7 文章 - 0 评论 - 0 UAC 实现原理及绕过方法 目录 0x01 UAC 实现方法(用户登陆过程)0x02 UAC 架构0x03 触发UAC0x0 ...
- 20165310 NetSec Week4 Exp2 后门原理与实践
20165310 NetSec Exp2后门原理与实践 一.基础问题 例举你能想到的一个后门进入到你系统中的可能方式? 网页木马等访问网页导致 下载非官方源软件 随意下载邮件中不明程序等 例举你知道的 ...
- VC6.0 工程转到VS2010一些问题的描述及解决方法
下列为VC6.0 工程转到VS2008一些问题的描述及解决方法 //////////////////////////////////////////////////////////////////// ...
- Powershell 渗透测试工具-Nishang
Powershell 渗透测试工具-Nishang 分享到: 作者:V1ct0r 稿费:500RMB(不服你也来投稿啊!) 投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿 传送门 ...
- PowerShell攻击:nishang
nishanhg 下载地址:https://github.com/samratashok/nishing 1.简介 nishang的使用是要在PowerShell 3.0以上的环境中才可以正常使用 ...
- UAC新解(有非正常手段可以绕过)
360第一次注册是需要弹,可是以后就不弹了开机自启动不弹框,开机自启动不弹框 服务是system权限再说一句,一般程序也不需要过UAC系统启动项白名单.UAC有一个白名单机制.还有UAC也可以通过wu ...
- 使用Metasploit绕过UAC的多种方法
一.用户帐户控制(UAC)简介 在本文中,我们将简要介绍一下用户帐户控制,即UAC.我们还将研究它如何潜在地保护免受恶意软件的攻击并忽略UAC提示可能给系统带来的一些问题. 1.什么是用户帐户控制 ...
随机推荐
- 在 ubuntu 中安装python虚拟环境
直接看命令一路操作(注:python3 下): 1.安装虚拟环境: sudo pip3 install virtualenv 2.安装虚拟环境扩展管理工具: sudo pip3 install vir ...
- spring demo
参考: https://www.tutorialspoint.com/spring/spring_applicationcontext_container.htm
- Java--API解读之Method Summary
参考来源:Java 中静态方法 实例方法 具体方法区别与联系 JAVA Method Summary网页 * Static Method :"静态方法",直接引用,无需创建对象: ...
- JS 数组相关
数组 function SelectLoadTable() { var mids = $("#mids").val(); var halls = $("#halls&qu ...
- Windows密码安全性测试
一.本地管理员密码如何直接提取 1.1直接通过mimikatz读取管理员密码 (不能交互式,不能在webshell下用,图形化界面很好用) 第一条:privilege::debug ...
- 问题解决 : MyBatis一对一查询时,打印结果只有一条数据
问题截图:修改后,结果返回条数正确 问题解决: 因为有重名的列,建议起个别名
- Python—数据类型之集合(Set)
1.集合是一个无序的,且不重复元素的集合.它里面的元素是可哈希的(不可变类型),但是集合本身是不可哈希(所以集合做不了字典的键)的. 2.基本功能包括关系测试和消除重复元素.注意:集合存在的意义就是去 ...
- 使用element-ui组件el-table时需要修改某一行或列的样式(包含解决选择器无效问题)
在后台管理系统项目中,经常会使用element-ui中的组件el-table(表格)来展示列表数据. 当展示数据的时候,可能就需要给给某一行或者列设置特殊的样式,在查询文档是我遇到了一些问题:包括设置 ...
- KMP(模板)
kmp算法是解决单模匹配问题的算法,难点在于求next[]数组 求next[]数组:对于模板串的所有前缀子串的最长公共前后缀的长度,就是next[]数组的值 eg:主串为cbbbaababac 子串 ...
- input文件类型上传,或者作为参数拼接的时候注意的问题!
1.ajax请求参数如果为文本类型,直接拼接即可.如果为file类型就需要先获取文件信息 2.获取文件信息: HTML代码: <div class="form-group"& ...