内网学习之SPN
作者:互联网
SPN简介
SPN(Server Principal Names)服务主体名称,是服务实例的唯一标识符(例如:HTTP、SMB、Mysql等)。Kerberos身份验证使用SPN将服务实例与服务登录账户想关联。如果在整个林或者域中的计算机上安装多个服务实例,则每个实例都有必须具有自己的SPN,如果客户端可能使用多个名称进行身份验证,则给定服务实例可以具有多个SPN。SPN始终包含运行服务实例的主机的名称,因此服务实例可以为其主机的每个名称或别名注册SPN
如果想使用Kerberos协议来认证服务,那么必须正确配置SPN
当计算机加入域时,主 SPN 会自动添加到域的计算机账号的ServicePrincipalName 属性中。在安装新的服务后,SPN 也会被记录在计算机账号的相应属性中。
SPN分为两种类型:
1)注册在活动目录的机器账户(computer)下,当一个服务的权限为Local System 或 NetworkServer,则SPN注册在机器账户(Computers)下。
2)一种是注册在活动目录的域用户账户下,当一个服务的权限为一个域用户,则SPN注册在域用户账户下。
LADP协议
想要理解SPN就不得不先说明一下LDAP(Lightweight DirectoryAccessProtocol)[轻量级目录访问协议]
简单来说LDAP是一个协议,这个协议约定了Client(客户机)和Server(服务器)之间的信息交付格式,使用的端口号,认证方式等内容。而LDAP协议的实现,有着众多版本,例如微软的AD是在LDAP在Windows上的实现。
LDAP协议能解决什么问题?
用户服务:管理用户的域账号、用户信息、企业通信录(与电子邮箱系统集成)、用户组管理、用户身份认证、用户授权管理。按需实施管理策略等。
在Windows下,有组策略管理器,如果启用域账户认证,那么这些组策略可以统一管理,方便的限制用户的权限。
计算机管理:管理服务器及客户端计算机账户、所有服务器及客户端计算机加入域管理并按需实施组策略,甚至可以控制计算机禁止修改壁纸。
资源管理:管理打印机、文件共享服务、。网络资源等实施组策略。
SPN格式
在SPN的语法中存在四种元素,两个必须元素和两个额外元素
其中
<service class>:标识服务类的字符串
<host>:服务所在的主机名称
<port>:服务端口
<service name>:服务名称
SPN的利用
简单来说,SPN的利用就在于针对域内进行信息搜集,通过刚才SPN格式的介绍,可以看到,通过搜集setspn命令发现域内存在的SPN,可以大概的清楚域内的服务器结构,在不进行扫描的时候简单的进行域内情况的探测。
常用命令
setspn -Q */* 查看当前域内所有的spn
setspn -T o3rr0r.first -q */* 查看指定域o3rr0r.first注册的spn
setspn -X 查找本域内重复的spn
setspn -L username/hostname 查找指定用户/主机名注册的spn
setspn -U -A VNC/DC1.test.com Administrator 在指定账户或主机名下注册spn(需要域管理员权限)
setspn -D MSSQLSvc/WIN-dc.o3rr0r.com:hello Administrator 删除指定spn (需要域管理员权限)
setspn -A work/WIN-WORK.o3rr0r.first WIN-WORK 创建新的SPN
标签:服务,SPN,用户,学习,实例,setspn,spn 来源: https://www.cnblogs.com/vir-k/p/16287224.html