浙江省委宣传部副部长、省委网信办主任赵磊:守正创新 辩证施策 全力推动网络生态治理工作迈上新台阶
2026-02-10
美创产品全面入围中直机关2025年网络设备框架协议采购项目
2026-02-04
连续5年!美创再获中国网络安全产业联盟“先进会员单位”表彰
2026-01-21
每周安全速递³⁷¹ | 勒索软件攻击导致心理健康机构超11万人数据泄露
2026-01-06
四年同行,韧性共铸:西南某商行携手美创科技再度通过年度容灾大考
2025-12-26
存储域
数据库加密 诺亚防勒索访问域
数据库防水坝 数据库防火墙 数据库安全审计 动态脱敏流动域
静态脱敏 数据水印 API审计 API防控 医疗防统方运维服务
数据库运维服务 中间件运维服务 国产信创改造服务 驻场运维服务 供数服务安全咨询服务
数据出境安全治理服务 数据安全能力评估认证服务 数据安全风险评估服务 数据安全治理咨询服务 数据分类分级咨询服务 个人信息风险评估服务 数据安全检查服务相信大家通过对前几篇的内网渗透文章的阅读已经具备一定的渗透经验了,那么本期美创安全实验室将给大家带来关于内网渗透的进阶技巧,SPN与Kerberoast攻击,话不多说直接开始。
01、什么是SPN
相信大家可能对SPN这个概念有些模糊,在开始之前我们先来简单了解一下什么是SPN?
SPN(ServicePrincipal Names)又名服务主体名称,是服务实例的唯一标识符,所谓的服务实例就类似于HTTP、SMB、MySQL等服务。说到这可能有些同学还是不清楚,SPN跟我们要讲的Kerberoast攻击到底有什么关系,别急,他们之间确实存在关系。
说到Kerberos认证,我们在前几期文章中也详细分析过了,是内网中常见的一种认证手段。Kerberos认证过程需要使用SPN将服务实例与服务登录账户相关联,也就是说如果想使用 Kerberos 协议来认证服务,那么必须正确配置SPN。
SPN分为两种类型:
一种是注册在活动目录的机器账户(Computers)下,当一个服务的权限为 Local System 或 Network Service,则SPN注册在机器账户(Computers)下。
一种是注册在活动目录的域用户账户(Users)下,当一个服务的权限为一个域用户,则SPN注册在域用户账户(Users)下。
02、什么是Kerberoast攻击
简单直白的说,Kerberoast攻击就是攻击者为了获取目标服务的访问权限,而设法破解Kerberos服务票据并重写它们的过程。这是红队当中非常常见的一种攻击手法,因为它不需要与服务目标服务进行任何交互,并且可以使用合法的活动目录访问来请求和导出可以离线破解的服务票据,以获取到最终的明文密码。
之所以出现这种情况,是因为服务票据使用服务账户的散列(NTLM)进行加密,所以任何域用户都可以从服务转储散列,而无需将shell引入运行该服务的系统中。攻击者通常会选择那些可能设置了弱密码,破解成功率较高的票据来尝试破解。一旦攻击者成功破解出了票据,他们有时不仅仅获取的只是服务访问权限,如果服务被配置为在高权限下运行,那么整个域都将可能被攻击者拿下。
一般来说Kerberoast攻击涉及以下几个步骤:
SPN发现
请求服务票据
导出服务票据
破解服务票据
接下来我们进行一次模拟实验,依次完成以上步骤。
03、Kerberoast攻击实验
网络环境:
内网目标机:192.168.210.102(Win10 处于HZMC域下)
内网域控机:192.168.210.38(Win Server 2012)
攻击机:192.168.20.35
开始攻击:
1. SPN发现
攻击者在内网目标机上执行以下命令即可检索用户账户和服务之间的映射。利用SetSPN文件(Windows本地的二进制文件)还可以添加、删除SPN注册。
Setspn -T <域名> -Q */*

2. 请求服务票据
攻击者在内网目标机上利用PoweShell脚本来实现特定的SPN请求服务票据,执行以下命令即可。其中<服务名称>指的是第一步中所列出的SPN服务,例如我们使用kadmin/changepw来作为测试,那么我们在最后需要加上kadmin/changepw即可。
Add-Type -AssemblyName System.IdentityModel
New-ObjectSystem.IdentityModel.Tokens.KerberosRequestorSecurityToken -ArgumentList "<服务名称>"

3. 导出服务票据
攻击者在请求完对应的服务票据后,可以利用Mimikatz来将票据进行导出,除了Mimikatz外还有一些其他的工具也可以实现这个目的,例如PowerShell、Empire等,如果是要使用Mimikatz的话需要执行以下命令即可。
mimikatz # kerberos::list /export

可以看到我们所需要的票据kadmin/changepw已经被成功导出。
4. 爆破服务票据
接下来攻击者为了避免爆破动静太大会引起防守人员警觉,可以将刚刚导出的票据复制到攻击机上,执行爆破。所依赖的爆破脚本可以采用一个开源的脚本来实现:
https://github.com/nidem/kerberoast
执行该脚本目录下的tgsrepcrack.py在构造一份用来爆破的密码字典,执行爆破即可。可以看到如果成功破解了kerberos票据会把域账户的明文密码显示出来。
