34

UAC绕过初探

 4 years ago
source link: https://www.tuicool.com/articles/rqAja2J
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

笔者最近在学习UAC绕过的技术,通过对其他师傅的文章进行总结,成功利用DLL劫持绕过了UAC,并且可以以High Mandatory Level来启动进程。在此记录下学习过程,笔者也是初次接触,若各位师傅发现文章中的错误,望各位师傅斧正。

一、基础知识简述

UAC:

用户帐户控制(User Account Control,简写作UA C)是 微软 公司在其 Windows Vista 及更高版本操作系统中采用的一种控制机制,保护系统进行不必要的更改,提升操作系统的稳定性和安全性。

管理员一般以较小的权限去运行管理员任务,低权限的管理员被称为被保护的管理员,这些管理员在执行管理员任务时,可以通过用户交互界面来提升权限去执行任务。

YrqIbqe.jpg!web

普通用户执行管理员任务时会被要求提升到管理员权限,再去执行任务

NV7Jbin.jpg!web

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>元素,可以默认提权执行

JJbiemz.jpg!web

JnEJRjn.jpg!web

2、通过process monitor工具来查看SystemPropertiesAdvanced.exe执行时调用dll文件的过程

添加过滤器方便查找dll的调用过程:

qQjQFn7.jpg!web

j6riuqy.jpg!web

Windowsapps目录是win10应用商店的缓存/下载应用程序的目录,允许用户对其进行写操作,可以通过构造恶意的DLL文件并将其放入,进行DLL劫持并绕过UAC机制

3、通过msfvenom构造payloads,将构造好的srrstr.dll放入到windowssapps目录下,通过构造的CMD.exe来绕过UAC

eERz2qR.jpg!web

i63uamr.jpg!web

4、再次运行SystemPropertiesAdvanced.exe,查看DLL劫持效果,发现成功绕过UAC机制(备注:这里在运行时没有进行二次调用,无法正常运行原来的程序,可能会影响被劫持程序的稳定性,这里的恶意DLL仅仅弹出CMD,就算被劫持的程序崩掉,CMD已经成功弹出,对实验结果影响不大),新的CMD不会触发UAC提示可以用regedit命令进行测试:

yeQJfuE.jpg!web

7n6FryV.jpg!web

可以看到,此时的cmd.exe具有高完整性级别:

quuEneY.jpg!web

除此以外还可以通过同样的方式由DLL劫持来创建会话,效果如下:

6naYbam.jpg!web


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK