SPN(Service Principal Names)

SPN

服务主体名称(Service Principal Names)是Kerberos客户端用于唯一标识给特定Kerberos目标计算机的服务实例名称。Kerberos身份验证使用SPN将服务实例与服务登录帐户相关联。如果在整个林中的计算机上安装多个服务实例,则每个实例都必须具有自己的SPN。SPN分为两种:

(1)机器账户(Computers)注册:服务权限通常是Local System或者Network Service

(2)域用户账户(Users)注册:注册在一个域用户权限下

  1. 域内常见的SPN实例
* MSSQLSvc/adsmsSQLAP01.adsecurity.org:1433
* ExchangeMDB/adsmsEXCAS01.adsecurity.org
* TERMSERV/adsmsEXCAS01.adsecurity.org
* WSMAN/adsmsEXCAS01.adsecurity.org

* ……

2. 常见的服务主体名称和对应的服务
* AcronisAgent:针对Acronis备份和数据恢复软件
* Afpserver:Apple归档协议
* AgpmServer:Microsoft高级策略管理(AGPM)
* ExchangeAB:Exchange通讯簿服务
* ExchangeRFR:交换通讯簿服务
* ExchangeMDB:RPC客户端访问服务器角色
* MSSQLSvc:Microsoft SQL Server
* MSOMHSvc:Microsoft 系统中心运营经理管理服务器
* MSOMSdkSvc:Microsoft System Center Operations Manager 管理服务器
* MSServerCluster:Windows集群服务器
* MSServerClusterMgmtAPI:集群的API需要此SPN才能使用Kerberos向服务器进行验证
* MSClusterVirtualServer:Windows 集群服务器
* TERMSRV:Microsoft 远程桌面协议服务
* WSMAN:Windows远程管理服务

* ……

注册SPN

使用setspn命令可以注册、查询SPN,该命令在Win 7 和 Win Server 2008以上版本系统自带

setspn -A MSSQLSvc/my.domain.com:1433 accountname

SPN查询

setspn.exe

setspn.exe -q */*  # 查询当前域内的所有SPN
setspn.exe -T test -q */* # 查看test域的所有SPN

PowerShell-AD-Recon

https://github.com/PyroTek3/PowerShell-AD-Recon/
powershell -ExecutionPolicy Bypass
Import-Module .\Discover-PSInterestingServices.ps1
Discover-PSInterestingServices -GetAllForestSPNs # 列出所有SPN

GetUserSPNS

https://github.com/nidem/kerberoast
powershell -ExecutionPolicy Bypass -File .\GetUserSPNs.ps1
cscript GetUserSPNs.vbs

PowerView.ps1

该脚本的功能是搜集域信息,包括了GPO、Domain Trust、User-Hunting等模块,相比上面的工具,该脚本提供更详细的信息

https://github.com/PowerShellMafia/PowerSploit/tree/master/Recon
powershell -ExecutionPolicy Bypass
Import-Module .\powerview.ps1
Get-NetUser -SPN

除了上面的工具,也可以通过dsquery、ldifde、csvde、adfind、Adexplorer等工具从域内机器或者工作组机器上查询|导出LDAP内容筛选serviceprincipalname字段来确定SPN。例如:可以通过搜索ServicePrincipalName= MSSQL* 来快速发现Active Directory域或者林中的SQL服务器

利用

  1. SPN扫描可以发现重要的服务器机器,如:终端、交换机、邮服、数据库之类;不需要进行主动扫描相比之下隐蔽性更高

  2. 所有的域用户都可以通过LDAP获取到域内所有SPN,进而通过Kerberoasting攻击完成域内提权等

  3. 在获得SPN修改权限后可以为制定域用户添加SPN,通过随时获取该用户的TGS破解明文密码,作为域内持久化手段

参考文章

https://www.cnblogs.com/backlion/p/8082623.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值