SPN 简介:服务主体名称(SPN:ServicePrincipal Names)是服务实例(可以理解为一个服务,比如 HTTP、MSSQL)的唯一标识符。Kerberos 身份验证使用 SPN 将服务实例与服务登录帐户相关联。如果在整个林或域中的计算机上安装多个服务实例,则每个实例都必须具有自己的 SPN。如果客户端可能使用多个名称进行身份验证,则给定服务实例可以具有多个 SPN。SPN 始终包含运行服务实例的主机的名称,因此服务实例可以为其主机的每个名称或别名注册 SPN。
如果用一句话来说明的话就是如果想使用 Kerberos 协议来认证服务,那么必须正确配置 SPN。
如何查看已经注册的SPN
查找top.pentest.top域下注册的SPN:
第一种:setspn -T top.pentest.top -Q */*
第二种:setspn -Q */*
SPN 扫描:
介绍:在一个大型域中通常会有不止一个的服务注册 SPN,所以可以通过「SPN 扫描」的方式来查看域内的服务。
优点:比如想知道域内哪些主机安装了什么服务,我们就不需要再进行批量的网络端口扫描。相对于通常的网络端口扫描的优点是不用直接和服务主机建立连接,且隐蔽性更高。
扫描工具:
1.GetUserSPNs.ps1:
GetUserSPNs 是 Kerberoast 工具集中的一个 powershell 脚本,用来查询域内注册的 SPN。
扫描二维码关注公众号,回复:
7519953 查看本文章
2.GetUserSPNs.vbs:
cscript .\GetUserSPNs.vbs