SPN发现与利用

本文介绍了服务主体名称(SPN)在Kerberos身份验证中的作用,包括其类型、特点和原理。通过SPN,可以避开端口扫描,提高隐蔽性。文章详细阐述了如何使用setSPN命令添加和查询SPN,并讨论了Kerberoasting攻击,这是一种通过爆破TGS-REP获取NTLM hash并破解密码的技术。文中列举了多种工具和利用方法,强调了SPN在域渗透中的重要性。
摘要由CSDN通过智能技术生成

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> 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值