AD渗透中服务账号相关攻击手法总结(Kerberoasting、委派)

在Windows域环境中,服务账号因其与服务主体名称(Service Principal Name,SPN)的关联、高权限特性和在Kerberos认证中的关键作用,成为Active Directory(AD)渗透攻击的首要目标。服务账号通常用于运行关键服务(如SQL Server、Exchange、Web服务等),但其配置不当(如弱密码、不合理的委派设置)为攻击者提供了利用Kerberoasting、委派攻击(包括非约束委派、约束委派和基于资源的约束委派,RBCD)等技术实现权限提升或横向移动的机会。本文将全面探讨服务账号相关的攻击手法,旨在帮助读者深入理解攻击原理和机制。

一、服务账号与SPN的核心概念

1.1 服务账号的分类与特性

服务账号是为运行特定服务而创建的账号,在AD环境中分为以下类型:

账号类型 描述 特点 SPN关联 攻击风险 典型场景
域用户账号 sqlsvc,用于运行特定服务 本质是普通域用户,需手动配置密码 需注册SPN(如MSSQLSvc/sqlserver.corp.local:1433 易被Kerberoasting攻击,弱密码风险高 SQL Server、IIS服务
机器账号 WEB01$,代表加入域的计算机 系统生成128位随机密码,30天轮换 可注册SPN,密码难以破解 可被委派攻击利用 文件服务器、Web服务器
组托管服务账号(gMSA) 由AD自动管理的账号 密码复杂,自动更新 可注册SPN,安全性高 攻击难度大 高安全需求的现代化服务

图表解读

  • 域用户账号:因手动配置密码,易因弱密码或长期不变被攻击。
  • 机器账号:密码随机性强,Kerberoasting难以直接破解,但委派设置可能被利用。
  • gMSA:通过AD管理密码,降低破解风险,适合高安全场景。

1.2 SPN与Kerberos认证的机制

SPN是Kerberos协议中用于标识服务实例的唯一标识符,格式为服务类型/主机名:端口(如HTTP/webserver.corp.local:80)。Kerberos认证流程如下:

认证阶段 流程 涉及组件 攻击点
TGT请求 用户凭据向KDC请求TGT 用户、KDC 需有效域用户凭据
TGS请求 使用TGT请求SPN的TGS 客户端、KDC、服务账号 可请求任意SPN的TGS
服务认证 TGS(加密部分使用服务账号NTLM哈希)发送到服务端 客户端、服务端 TGS可被导出,离线破解

图表解读

  • TGS加密:TGS的加密部分使用服务账号的NTLM哈希,攻击者可通过Kerberoasting导出并破解。
  • 低权限要求:任何域用户均可请求TGS,无需直接访问服务,降低攻击门槛。
  • SPN的作用:SPN将服务账号与服务绑定,成为攻击者枚举和攻击的入口。

1.3 服务账号的典型应用场景

服务账号广泛应用于企业环境中,以下为常见场景:

服务类型 服务账号 SPN示例 功能 潜在风险
SQL Server sqlsvc MSSQLSvc/sqlserver.corp.local:1433 运行数据库服务 Kerberoasting、横向移动
IIS websvc HTTP/webserver.corp.local 运行Web服务 委派攻击、权限提升
文件共享 filesvc CIFS/fileserver.corp.local 提供文件访问 数据泄露、委派攻击
Exchange exsvc exchangeMDB/exserver.corp.local 运行邮件服务 邮件数据泄露、权限提升

图表解读

  • 多样性:服务账号覆盖多种关键服务,控制其等于控制相关资源。
  • 高价值:服务账号常具有本地管理员权限或访问敏感数据的权限。

二、Kerberoasting攻击的原理和流程

2.1 攻击原理

Kerberoasting利用Kerberos协议允许域用户请求任意SPN的TGS的特性,攻击者可导出TGS并离线破解服务账号的密码。其核心特点如下:

特性 描述 攻击优势 限制
TGS加密 使用服务账号的NTLM哈希加密 可离线破解,无需与服务交互 需弱密码
低权限要求 普通域用户即可请求TGS 攻击门槛低 需有效域用户凭据
弱密码风险 服务账号密码常较弱 破解成功率高 强密码增加破解难度

图表解读

  • 攻击可行性:无需高权限,普通域用户即可发起。
  • 目标选择 :优先攻击高权限服务账号(如Domain Admins成员)以快速提权。
  • 加密算法:支持RC4(较弱,易破解)和AES(较强,破解耗时)。

2.2 攻击流程

Kerberoasting攻击流程简明高效,以下为各阶段说明:

阶段 动作 工具 输出 风险点
枚举SPN 扫描域内SPN账号 GetUserSPNs.py, PowerView SPN列表 暴露服务账号
请求TGS 请求目标SPN的TGS Impacket, Mimikatz TGS文件 可被导出
离线破解 暴力破解NTLM哈希 hashcat, John the Ripper 明文密码 弱密码易破解
权限利用 使用密码登录服务 PsExec, sqlcmd 服务控制 权限提升

图表解读

  • 自动化程度:工具如Impacket支持批量枚举和请求TGS,效率高。
  • 高回报:破解成功可直接控制关键服务,如数据库或Web服务器。

2.3 案例分析

场景 :域内服务账号sqlsvc运行SQL Server,SPN为MSSQLSvc/sqlserver.corp.local:1433,密码为Passw0rd!

攻击阶段 动作 结果 后续利用
枚举 发现sqlsvc的SPN 锁定攻击目标 确定高价值服务
请求TGS 获取TGS 提取加密哈希 无需服务访问权限
破解 得到密码Passw0rd! 控制sqlsvc 登录SQL Server
利用 登录SQL Server 获取数据库权限 提取敏感数据,横向移动

图表解读

  • 攻击路径:从低权限用户到控制关键服务,仅需破解弱密码。
  • 后续风险sqlsvc可能具有本地管理员权限,攻击者可提取其他凭据(如域管理员的NTLM哈希)。

2.4 优化攻击的策略

策略 描述 效果
筛选高权限目标 优先攻击AdminCount=1的SPN账号 快速提权至域管理员
强制弱加密 请求RC4加密的TGS 提高破解速度
批量攻击 批量请求域内所有SPN的TGS 覆盖更多目标
结合钓鱼 获取初始域用户凭据 降低攻击门槛

图表解读

  • 高效性:通过筛选和批量操作,攻击者可快速锁定高价值目标。
  • 隐蔽性:结合社会工程学,获取初始凭据后即可发起攻击。

三、委派攻击的机制与类型

委派攻击利用Kerberos委派机制,允许服务账号以用户身份访问其他服务。以下通过图表解析三种委派类型及其攻击点。

3.1 委派账号的权限地图

账号类型 是否能委派别人 是否能被委派 备注 攻击场景
域用户账号 (如sqlsvc ✅(需SPN+委派权限) 服务账号,运行特定服务 Kerberoasting、约束委派
机器账号 (如WEB01$ ✅(需非约束/约束委派) 代表域内计算机 非约束委派、RBCD
普通域用户 (如alice ❌(除非特殊配置) 普通用户账号 被冒充的对象

图表解读

  • 委派者:域用户账号和机器账号可通过委派设置冒充其他用户。
  • 被委派者:普通域用户和机器账号可被冒充,服务账号(域用户账号)不可被委派。
  • 攻击焦点:服务账号因SPN和委派设置,成为攻击核心。

3.2 委派类型的权限与攻击点

委派类型 权限范围 攻击点 典型场景 风险级别
非约束委派 最大:冒充用户访问任意服务 导出TGT,冒充高权限用户 控制启用了非约束委派的主机
约束委派 中等:仅限指定SPN 伪造票据访问指定服务 控制服务账号,访问文件服务器
RBCD 最小:目标资源控制委派 配置RBCD,伪造票据 控制机器账号,访问目标资源 中低

图表解读

  • 非约束委派:权限最大,攻击者可直接提权至域管理员。
  • 约束委派:限制服务范围,但可冒充任意用户访问指定服务。
  • RBCD:需控制资源或创建机器账号,适合横向移动。

3.3 非约束委派攻击

原理:服务账号可获取访问者的TGT,攻击者控制服务主机后导出TGT,冒充用户访问任意服务。

流程简述

  1. 发现启用了非约束委派的账号。
  2. 诱导高权限用户(如域管理员)访问。
  3. 导出TGT,伪造用户身份。
  4. 访问域控或其他服务。

案例 :攻击者控制WEB01$(启用了非约束委派),诱导域管理员访问,导出TGT,冒充域管理员运行dcsync,提取所有用户哈希。

图表:非约束委派攻击路径

阶段 动作 结果 风险 典型工具
发现 查找非约束委派账号 锁定WEB01$ 暴露目标 PowerView
诱导 诱导域管理员访问 TGT存储在内存 凭据泄露 Printer Bug
导出 提取TGT 域管理员票据 直接提权 Mimikatz
利用 访问域控 控制域环境 完全失陷 dcsync

图表解读

  • 高危性:TGT可用于任意服务,攻击者可直接提权。
  • 诱导技术:如Printer Bug(CVE-2020-1048),通过漏洞触发高权限用户访问。

3.4 约束委派攻击

原理:服务账号通过S4U2self和S4U2proxy协议冒充用户访问指定SPN。

流程简述

  1. 发现启用了约束委派的账号。
  2. 伪造票据访问指定服务。

案例 :服务账号svc-web允许访问CIFS/fileserver.corp.local,攻击者控制svc-web,伪造域管理员票据,访问文件服务器,下载敏感文件。

图表:约束委派攻击路径

阶段 动作 结果 风险 典型工具
发现 查找约束委派账号 锁定svc-web 暴露目标 PowerView
伪造 生成伪造票据 冒充域管理员 访问受限服务 Mimikatz
利用 访问文件服务器 获取敏感文件 数据泄露 dir

图表解读

  • 受限性:攻击范围限于指定SPN,需精准目标。
  • 灵活性:可冒充任意用户,适合针对性攻击。

3.5 基于资源的约束委派(RBCD)

原理 :目标资源通过msDS-AllowedToActOnBehalfOfOtherIdentity属性控制委派权限,攻击者修改配置后伪造票据。

流程简述

  1. 创建或控制机器账号(默认配额10个)。
  2. 配置目标资源的RBCD权限。
  3. 伪造票据访问资源。

案例 :攻击者创建ATTACKER-PC$,配置TARGET-PC允许其委派,伪造域管理员票据,获取TARGET-PC的SYSTEM权限。

图表:RBCD攻击路径

阶段 动作 结果 风险 典型工具
创建 创建ATTACKER-PC$ 新机器账号 利用配额 New-ADComputer
配置 修改RBCD 允许委派 控制资源 Set-ADComputer
伪造 生成伪造票据 冒充域管理员 访问资源 Mimikatz
利用 执行远程命令 SYSTEM权限 横向移动 Invoke-Command

图表解读

  • 低权限利用:普通用户可创建机器账号,降低门槛。
  • 横向移动:适合从低权限账号扩展到关键资源。

四、横向移动与服务账号的利用

服务账号的高权限特性使其成为横向移动的理想跳板。以下为主要利用方式:

利用方式 描述 攻击目标 潜在结果 典型场景
服务控制 使用服务账号凭据登录主机 SQL Server、文件服务器 本地管理员权限 控制数据库服务器
票据伪造 使用TGT/TGS冒充高权限用户 域控、关键服务 权限提升 冒充域管理员
漏洞利用 攻击服务漏洞 SQL Server RCE 直接提权 执行系统命令

图表解读

  • 多路径攻击:服务账号连接低权限用户与高权限目标。
  • 高回报:控制服务账号常可访问敏感资源或提权。

案例 :攻击者破解sqlsvc密码,登录SQL Server,提取域管理员的NTLM哈希,通过Pass-the-Hash攻击访问域控,完成域提权。

五、总结

服务账号在AD环境中是Kerberos认证的核心,但其SPN绑定、高权限特性和委派配置使其成为攻击者的目标。Kerberoasting通过TGS破解弱密码,非约束委派、约束委派和RBCD通过伪造票据实现权限提升和横向移动。通过图表和案例分析,读者可清晰理解"谁能委派谁"以及各攻击类型的权限范围和风险点。攻击者仅需普通域用户权限即可发起这些攻击,凸显了服务账号管理的重要性。

相关推荐
一点都不方女士12 小时前
《无畏契约》游戏报错“缺少DirectX”?5种解决方案(附DirectX修复工具)
windows·游戏·microsoft·动态链接库·directx·运行库
0wioiw012 小时前
Python基础(①⑧Queue)
windows·python
寒水馨13 小时前
Windows 11 手动下载安装配置 uv、配置国内源
windows·python·国内源·uv·windows11
Mintind14 小时前
windows找不到gpedit.msc(本地组策略编辑器)
windows
Bruce_Liuxiaowei14 小时前
Linux系统提权之计划任务(Cron Jobs)提权
linux·运维·服务器·网络安全·系统安全
love530love1 天前
【保姆级教程】阿里 Wan2.1-T2V-14B 模型本地部署全流程:从环境配置到视频生成(附避坑指南)
人工智能·windows·python·开源·大模型·github·音视频
Chukai1231 天前
Windows 和 Linux 系统下修改防火墙机制开放端口
linux·运维·windows
IT小农工1 天前
Windows 文件资源管理器无法预览文件内容word、ppt、excel、pdf
windows·word·powerpoint