目录
0x01 简介
服务主体名称(SPN)是Kerberos客户端用于唯一标识给特定Kerberos目标计算机的服务实例名称。Kerberos身份验证使用SPN将服务实例与服务登录帐户相关联。如果在整个林中的计算机上安装多个服务实例,则每个实例都必须具有自己的SPN。如果客户端可能使用多个名称进行身份验证,则给定的服务实例可以具有多个SPN
0x02类型
SPN 可以分为两种:
-
当一个服务的权限为Local System或Network Service,则SPN注册在域内机器帐户(Computers)下
-
当一个服务的权限为一个域用户,则SPN注册在域内用户帐户(Users)下
特点
通过SPN,可快速定位开启了关键服务的机器,这样就不需要去扫对应服务的端口,有效规避端口扫描动作,且隐蔽性更高
原理
在 SPN 扫描时我们可以直接通过脚本,或者命令去获悉内网已经注册的 SPN 内容
LDAP协议全称是 Lightweight Directory Access Protocol,一般翻译都是翻译成 轻量目录访问协议。通俗点可以把 LDAP 协议理解为一个关系型数据库,其中存储了域内主机的各种配置信息。
在域控中默认安装有 ADSI 编辑器,它是 LDAP 的编辑器
可以通过在域控中运行adsiedit.msc
来打开
我们的 SPN 查询,实际上就是就是查询LDAP中存储的内容
SPN格式
服务类和FQDN(对应机器名)是必需参数,端口和服务名是可选的
setSPN
setspn是系统自带的查找和设置spn的命令
setspn -l
参数接受计算机名或者用户名
setspn –q */*
查询当前域下的所有SPN
setspn –T KAIXIN –q */*
指定域
为域机器或者域用户创建SPN
语法
setspn -S <service>/<computername>.<domainname>