千家信息网

SetSPN是什么

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要为大家展示了"SetSPN是什么",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"SetSPN是什么"这篇文章吧。Kerberos是一种支持票证身
千家信息网最后更新 2026年11月02日SetSPN是什么

这篇文章主要为大家展示了"SetSPN是什么",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"SetSPN是什么"这篇文章吧。

Kerberos是一种支持票证身份验证的安全协议。如果客户端计算机身份验证请求包含有效的用户凭据和服务主体名称 (SPN),则 Kerberos 身份验证服务器将授予一个票证以响应该请求。然后,客户端计算机使用该票证来访问网络资源。在内部网络中,SPN扫描通过 查询向域控制器执行服务发现。这对于红队而言,可以帮助他们识别正在运行重要服务的主机,如终端、交换机、微软SQL等,并隐藏他们。此外,SPN的识别也是kerberoasting攻击的第一步。

Tim Medin在他的Kerberos攻击演讲中很好地解释了SPN。Sean Metcalf还提供了一些有关SPN的资源,其中包括有关Active Directory服务主体名称的系列资源,可在本文结尾处找到。

SetSPN

SetSPN是一个本地windows二进制文件,可用于检索用户帐户和服务之间的映射。该实用程序可以添加,删除或查看SPN注册。

setspn -T pentestlab -Q */*

由于用户已经选择了密码,因此绑定到域用户帐户而不是计算机帐户的服务更可能被配置为弱密码,而对用户有规范名称的服务应该会成为Kerberoasting攻击的针对目标。以下SPN列表中, PENTESTLAB_001服务与用户帐户相关联。

GetUserSPNs

Tim Medin开发了一个PowerShell脚本,它是kerberoast工具包的一部分,可以帮助我们查询活动目录,以发现仅与用户帐户相关联的服务。

powershell_import /root/Desktop/GetUserSPNs.ps1

还有一个VBS脚本也是该工具的一部分,可以为我们提供相同的信息。该脚本可以通过使用本机Windows二进制cscript从Windows命令提示符执行。

cscript.exe GetUserSPNs.vbs

PowerShell AD Recon

除了Tim Medin开发的工具外,Sean Metcalf也开发了各种PowerShell脚本来执行Kerberos侦察。这些脚本是PowerShell AD Recon存储库的一部分,可以在Active Directory中查询服务,例如Exchange,Microsoft SQL,Terminal等。Sean将每个脚本绑定到一个特定的服务,具体取决于你想要发现的SPN。以下脚本将标识网络上的所有Microsoft SQL实例。

powershell_import /root/Discover-PSMSSQLServers.ps1powershell_execute Discover-PSMSSQLServers

还可以使用PSMSExchangeServers脚本来查找Microsoft Exchange服务器。

powershell_import /root/Discover-PSMSExchangeServers.ps1powershell_execute Discover-PSMSExchangeServers

枚举服务帐户很重要,因为这些帐户可能配置了弱密码。PasswordLastSet和LastLogon属性,可以为我们提供那些较有可能会设置弱密码的服务指示。

powershell_import /root/Find-PSServiceAccounts.ps1powershell_execute Find-PSServiceAccounts

Empire

PowerShell Empire还有一个可显示域帐户的服务主体名称(SPN)的模块。

usemodule situational_awareness/network/get_spn

这些服务将以下列格式呈现。

PowerShellery

Scott Sutherland在将Get-SPN模块实现到Empire之前,已经创建了多个Powershell脚本作为PowerShellery的一部分,可以为各种服务收集SPN。其中一些需要PowerShell v2.0的环境,还有一些则需要PowerShell v3.0环境。

Get-SPN -type service -search "*"

结果我们也可以将其转换为表格的形式,以便于我们的浏览。

Get-SPN -type service -search "*" -List yes | Format-Table

这里我再告诉大家一个脚本,可以为我们获取UserSID,服务和实际用户。

Import-Module .\Get-DomainSpn.psm1Get-DomainSpn

Impacket

服务主体名称(SPN)也可以从未加入域的系统中发现,impacket工具包下的python版GetUserSPNs可以为我们做到这点。但是,无法使用基于token的身份验证,因此与Active Directory进行通信需要获取有效的域凭证。

./GetUserSPNs.py -dc-ip 10.0.0.1 pentestlab.local/test

以上是"SetSPN是什么"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

服务 脚本 帐户 用户 名称 主体 密码 工具 身份 帮助 验证 内容 票证 篇文章 计算机 资源 开发 攻击 查询 有效 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网的科技 今日互联网科技 互联网最新的科技有限公司 互联网科技未来 北京禾田雨橡互联网科技 金融科技和互联网金融 互联网科技公司的市场部门 茂名市互联网科技产业园 武汉健翔互联网络科技有限公司 千方科技属于互联网企业吗 和信科技工业互联网 消费医药和互联网科技 互联网保险科技创业 华夏恒生科技与互联网科技 南博望互联网科技有限公司 广州千川互联网科技有限公司 张召忠谈中国互联网科技 江苏互联网科技小贷 济南小医互联网科技有限公司招聘 安徽零酒互联网科技有限公司 深圳九邦互联网科技有限公司 互联网科技宣传片 海南购全球互联网科技 深圳国际航运科技和互联网 科技类公司包括互联网吗 世界互联网领先科技成果获奖 互联网硬科技公司 湖北辰鑫科技互联网 版纳互联网科技选哪家 广西泛欧互联网科技有限公司
0