Windos提权笔记
系统常见命令
参考链接:https://www.cnblogs.com/kekec/p/3662125.html
1 | ipconfig /all 查询网络配置 |
具体操作
内核溢出漏洞提权
systeminfo 根据缺失补丁进行判断
提权辅助页面:https://i.hacking8.com/tiquan/
将补丁号输入,查询可利用的 windows 提权
利用 windows-Exploit Suggester 进行检测
https://github.com/AonCyberLabs/Windows-Exploit-Suggester
MS16-032
补丁:KB3139914
exp:https://raw.githubusercontent.com/FuzzySecurity/PowerShell-Suite/master/Invoke-MS16-032.ps1
注意这里是 .空格.\xxx.ps1
在弹出来的 cmd 中执行 whoami 发现成功提权
服务权限配置错误
当碰到无法通过内核溢出漏洞来提权的时候可以尝试利用系统中的错误配置来进行提权,例如管理员配置错误,服务器凭证配置错误等
PowerUp
地址:https://raw.githubusercontent.com/PowerShellEmpire/PowerTools/master/PowerUp/PowerUp.ps1
1 | powershell.exe -exec bypass -Command "& {Import-Module .\PowerUp.ps1; Invoke-AllChecks}" |
注册表键 AlwaysInstallElevated
AlwaysInstallElevated是一个策略设置项,Windows 允许低权限用户以 system 权限运行安装文件,如果开启了这个策略的话那么任何权限的用户都能以 system权限来安装恶意 MSI
当设置了该项之后,注册表的这里会置1
可信服务路径漏洞
简介:如果一个服务的可执行文件的路径没有被双引号引起来且包含空格,那么这个服务就是有漏洞的。
原理:对于C:\Program Files\Some Folder\Service.exe文件路径中的每一个空格,windows都会尝试寻找并执行名字与空格前的名字向匹配的程序。操作系统会对文件路径中空格的所有可能进行尝试,直到找到一个匹配的程序。以上面的例子为例,windows会依次尝试确定和执行下面的程序:
C:\Program.exe
C:\Program Files\Some.exe
C:\Program Files\Some Folder\Service.exe
所以如果我们能够上传一个适当命名的恶意可执行程序在受影响的目录,比如这里我把木马名字改了Program.exe,放在c盘小,一旦此服务重启,因为优先级的缘故,服务会优先选择我们木马Program.exe,而不是C:\Program Files\Some Folder\Service.exe,那么我们的恶意程序就会以system权限运行
可以利用如下命令来进行检测
1 | wmic service get name,displayname,pathname,startmode |findstr /i "Auto" | findstr /i /v "C:\Windows\\" |findstr /i /v """ |
令牌窃取
令牌(token)是系统的临时秘钥,相当于账号和密码,用来决定是否允许这次请求和判断这次请求是属于哪一个用户的。它允许你在不提供密码或其他凭证的前提下,访问网络和系统资源,这些令牌将持续存在于系统中,除非系统重新启动
SweetPotato
编译好的版本:https://github.com/lengjibo/RedTeamTools/tree/master/windows/SweetPotato
BypassUAC
bypassUAC已经是老生长谈的话题了,用户帐户控制(UAC),它是Windows的一个安全功能,它支持防止对操作系统进行未经授权的修改,UAC确保仅在管理员授权的情况下进行某些更改
msf 的payload 中有对应的 bypass 模块