此外,SPN的识别也是kerberoasting攻击的第一步。 0x02关于spn 服务主体名称(SPN:Service Principal Names)是服务实例,可以将其理解为一个服务(比如 HTTP、MSSQL)的唯一标识符,服务在加入域中时是自动注册的。 如果在整个林或域中的计算机上安装多个服务实例,则每个实例都必须具有自己的 SPN。如果客户端可能使用多个名称进行身份验证,则给定服务实例可以具有多个 SPN。 SPN 始终包含运行服务实例的主机的名称,因此服务实例可以为其主机名称或别名注册 SPN。 如果用一句话来说明的话就是SPN是服务器上所运行服务的唯一标识,每个使用Kerberos的服务都需要一个SPN,如果想使用 Kerberos 协议来认证服务,那么必须正确配置 SPN。
slow-spn spn slow-spn 本题里面cacheLine是一个缓存单元的类型,__maccess()函数负责检查cacheLine是否命中,以及置换掉最少命中次数的cacheLine 思路 length=8, method='fixed') p.sendline(proof) def getflag(key , m): p.recvuntil(b'Input possible spn key (hex):') p.sendline(key) p.recvuntil(b'Input possible spn plaintext (hex):') p.sendline /SPN_ENC", env = {"LD_PRELOAD": "./libc-2.27.so"}) #p = process(". /SPN_ENC") p = remote("124.71.194.126", 9999) context.log_level = "debug" sbox = [0xE, 4, 0xD, 1, 2,
对于内置帐户,SPN将自动进行注册。但是,如果在域用户帐户下运行服务,则必须为要使用的帐户手动注册SPN。 如果客户端可能使用多个名称进行身份验证,则给定的服务实例可以具有多个SPN。例如,SPN总是包含运行服务实例的主机名称,所以服务实例可以为其主机的每个名称或别名注册一个SPN。 2.获取SPN方法 我们可以使用以下但不限于这些方法:如使用Windows自带的setspn.exe获取SPN信息、Linux跨Windows的python场景使用Impacket获取SPN信息、通过 LDAP获取SPN信息、高版本Windows的Powershell获取SPN信息、低版本Windows可以使用第三方VBS脚本获取SPN信息,利用常用的C2 Empire自带的模块进行获取SPN信息。 也可以输入setspn.exe –l dm1命令获取指定用户账户的所有SPN信息。2)可以在Windows中导入AD模块GET-SPN.psm1,利用Powershell获取SPN信息。
服务主体名称 (SPN) 是 Active Directory (AD) 数据库中的记录,显示哪些服务注册到哪些帐户: 具有 SPN 的帐户示例 如果一个帐户有一个 SPN 或多个 SPN,您可以通过 SPN 和更多 解释它是如何工作的。 使用不正确 SPN 的 Kerberoasting 帐户 KDC 禁止退票的 SPN 有两种类型: 错误的语法 SPN 重复的 SPN,即当相同的 SPN 值分配给多个帐户时 如果 KDC 发现其中之一是这种情况 将帐户列表从 LDAP 包装到 NT-MS-PRINCIPAL 类型,并且不使用 SPN,因此您甚至可以从误解的 SPN 中获取哈希值: 使用新的 GetUserSPNs.py 对 SPN 不正确的帐户进行 通过 Forest Trusts 使用 NetBIOS 名称 SPN 对帐户进行 Kerberoasting 当您从另一个域请求 SPN 的服务票证,并且此 SPN 具有 NetBIOS 名称格式的主机名时
4.SPN实例名称如表1-1所示,例举出一些常见的SPN实例名称。 ,如果指定域不存在,默认切换查找本域的SPN或本域重复的SPN5)注意:以普通域用户注册SPN服务主体时,需要域管理员的权限,以普通的域账户进行SPN注册会提示权限不够,如图1-7所示。 6.SPN 服务主体配置一般情况下,我们都是通过Set SPN的方式对SPN进行手动注册,但手动注册的SPN存在一定的丢失问题,解决SPN丢失最好的办法是让一些“服务”的启动域账号拥有自动注册SPN的权限 7.SPN服务查询我们在内网域环境中进行信息收集的最好方式就行通过“SPN扫描”,对于红队来讲,通过“SPN扫描”进行信息收集的方式比通过“端口扫描”的方式更加隐蔽,因为SPN扫描查询实际上就是对LDAP 1)查看当前域内的所有SPN。setspn.exe -q */* //查询当前域内所有的SPN2)查看指定用户或者主机名注册的SPN。
如果客户端使用多个名称进行身份验证,则给定服务实例可以具有多个SPN。SPN 始终包含运行服务实例的主机名,因此服务实例可以为其主机的每个名称或别名注册SPN。 一个用户账户下可以有多个SPN,但一个SPN只能注册到一个账户。如果想使用 Kerberos 协议来认证服务,那么必须正确配置SPN。 在 Kerberos 身份验证服务使用 SPN 对服务进行身份验证之前,必须在服务实例用于登录的帐户对象上注册 SPN。 只能在一个帐户上注册给定的 SPN。 而使用机器账号注册SPN时,注册的SPN的必须为当前主机的DNS名称。使用域管理员账号注册SPN无任何限制! 如图所示,通过切换到本地System权限窗口来使用机器账号注册SPN,注册的SPN的为当前主机的DNS名称。 如果使用机器账号注册SPN,注册的SPN的不为当前主机的DNS名称,会提示失败。
此外,SPN的识别也是kerberoasting攻击的第一步。 Tim Medin在他的Kerberos攻击演讲中很好地解释了SPN。 该实用程序可以添加,删除或查看SPN注册。 setspn -T pentestlab -Q */* ? 以下SPN列表中, PENTESTLAB_001服务与用户帐户相关联。 ? Empire PowerShell Empire还有一个可显示域帐户的服务主体名称(SPN)的模块。 SPN。
什么是 SPN SPN,ServicePrincipal Names,即服务主体名称,是服务实例(比如:HTTP、SMB、MySQL等服务)在使用 Kerberos 身份验证的网络上的唯一标识符,其由服务类 Kerberos 认证过程使用 SPN 将服务实例与服务登录账户相关联,如果想使用 Kerberos 协议来认证服务,那么必须正确配置SPN。 在使用 Kerberos 身份验证的网络中,必须在内置计算机帐户或域用户帐户下为服务器注册 SPN。对于内置机器帐户,SPN 将自动进行注册。 但是,如果在域用户帐户下运行服务,则必须为要使用的帐户手动注册 SPN。 SPN 分为两种类型: •一种是注册在活动目录的机器帐户(Computers)下。 然后,域控制器开始查找哪个帐户在 ServicedPrincipalName(SPN)字段中注册了所请求的 SPN。•用户收到包含了服务票据的 TGS 响应数据包。
但是,如果攻击者对与目标 SPN 关联的帐户以及另一台计算机/服务帐户拥有 WriteSPN 权限,则攻击者可以临时劫持 SPN(一种称为 SPN 劫持的技术),将其分配给另一台计算机/服务器,并执行完整的 在完全修补的环境中,仅允许域管理员配置冲突的 SPN,这意味着 SPN 与两个或多个不同的帐户相关联。 攻击链如下图所示: 使用 HOST 服务类进行 SPN 劫持 当目标 SPN 没有明确定义时,它会变得更有趣。 攻击者首先必须从 ServerB 中删除 HOST SPN,然后将目标 SPN 显式添加到 ServerC。 然而,在将目标 SPN 添加到 ServerC 后,攻击者可以将 HOST SPN 添加回 ServerB 而不会遇到任何验证错误,尽管已经有与 ServerC 关联的映射 SPN,如下面的屏幕截图所示
Kerberos认证过程使用SPN将服务实例与服务登录账户相关联,如果想使用 Kerberos 协议来认证服务,那么必须正确配置SPN。 SPN 始终包含运行服务实例的主机的名称,因此服务实例可以为其主机的每个名称或别名注册SPN。一个用户账户下可以有多个SPN,但一个SPN只能注册到一个账户。 但是在Windows域里,默认普通机器账号有权注册SPN,但是普通域用户账号是没有权注册SPN的。 如果SPN下次丢了,又要再次手动注册。 所以比较好的方法,是让SQL Server当前启动域账号有注册SPN的权力。 查看当前域内所有的SPN:setspn -Q */* 查看指定域xie.com注册的SPN:setspn -T xie.com -Q */* 如果指定域不存在,则默认切换到查找本域的SPN
Future work includes more extensive experiments with SPN structures and VAE variants. stelzner/supair http://www.mlmi.eng.cam.ac.uk/foswiki/pub/Main/ClassOf2018/thesis_PingLiangTan.pdf “An SPN W.r.t. all the above mentioned neural models, one can learn one SPN structure from data and obtain a awesome spn https://github.com/arranger1044/awesome-spn#structure-learning 内置图网络? ?
章内容 IPC,WMI,SMB,PTH,PTK,PTT,SPN,WinRM,WinRS,RDP,Plink,DCOM,SSH;Exchange,LLMNR投毒,Kerberos_TGS,GPO&DACL 192.168.3.32 /ntlm:518b98ad4178a53695dc997aa02d455c "/run:mstsc /restrictedadmin" #mimikatz使用HASH连接 域横向移动-Spn &Kerberos-请求&破解&重写 Kerberoasting 攻击的利用流程: •SPN服务发现 •请求服务票据(工具判断与powershell脚本判断) •服务票据的导出(mimikatz导出 DC在活动目录中查找SPN,并使用与SPN关联的服务帐户加密票证,以便服务能够验证用户是否可以访问。 如果我们有一个为域用户帐户注册的任意SPN,那么该用户帐户的明文密码的NTLM哈希值就将用于创建服务票证。
下文通过简述Kerberos认证过程、SPN的组成,引出由SPN错误引发报错的解决方法。Kerberos认证1. SPN(Server Principal Name)1.SPN的组成SPN是服务器上所运行服务的唯一标示,每个使用Kerberos的服务都需要一个SPN,这样客户端才可以辨认这个服务。 SPN。 解决方法:删除计算机账户下的SPN后,添加域用户账户下的SPN。 解决方法:注册正确的SPN,或者删除相应SPN放弃使用Kerberos认证。"
SPN作为中国移动自主创新的新一代综合承载网络,相比PTN设备,SPN的单机容量及性能有大幅提升,整机功耗也相应变大。在当前国家双碳政策的目标下,SPN设备的节能降耗也日益成为中国移动关注的焦点。 鉴于SPN AI动态节能现网试点的显著效果,中国移动集团在2023年SPN城域集采中首次将AI动态节能纳入网管技术规范进行测试并下发集采清单,在全国范围内推广应用。 通过对总计超4000多台已部署AI节能的SPN设备进行功耗测试,结果表明平均单机节能效率可达17.0%,仅2023年一年就节省电费近1000万元。 按此效率,中国移动全网SPN设备规模部署AI节能后,预计可年节约电费亿元以上,减少数十万吨的二氧化碳排放,为双碳目标实现、经济可持续发展贡献力量。 展望未来,中兴通讯跟中国移动将会继续保持良好合作,更加深入且全面地部署SPN AI动态节能技术,共同打造绿色低碳的SPN综合承载网络,为实现“双碳”目标贡献力量。
如果在整个域或林中的计算机上安装多个服务实例,则每个实例都必须有自己的SPN。如果客户端可能使用多个名称进行身份验证,则给定服务实例可以具有多个SPN。 SPN始终包含运行服务实例主机的名称,因此服务实例可以为其主机名称或别名注册SPN。 如果想使用Kerberos协议进行认证服务,那必须正确配置SPN SPN分类: 1.注册在域内机器账户(computer)下 当一个服务的权限为Local System 或 Network Service 时,SPN会注册于域内机器账户下(Computers) 注册在域内用户账户(User)下 当一个服务的权限为一个域用户,则此时SPN注册在域用户账户下(Users) 二、SPN标准格式 在 SPN 的语法中存在四种元素 对于解析的明文口令,只有域用户账户(Users)的口令存在价值,不必考虑机器账户的口令(无法用于远程连接) 利用思路如下: 查询SPN,找到有价值的SPN,需要满足如下条件 SPN注册在域用户账户下
因为员工都是个人电脑,所以上面查到的基本都是域计算机账户加入域时自动注册的SPN,这里便需要我们尝试为员工的域账户注册SPN。 可以通过setspn -A ServiceClass/注册SPN ? SPN,使用mimikatz导出缓存的上面各个SPN的服务凭据 或使用Invoke-Kerberoast以Hashcat格式导出每个SPN的ST的Hash 利用tgsrepcrack.py爆破上面的服务凭据 \result\sucUserList.txt" Write-Host "保存注册SPN成功的SPN到. 注册SPN Read-Host "为每一个域用户账号注册SPN" $sucUserList,$sucSPNList,$faiUserList = Set-SPN 删除SPN Read-Host "下面将要为注册SPN成功的域用户账户删除SPN" Del-SPN $sucSPNList $sucUserList
近日,中国移动公布2020-2021年SPN设备新建部分集采项目结果,该项目计划在28个省级分公司招标145663端SPN设备,但是,由于内蒙古移动和宁夏移动尚未公布集采结果,其余26个省级分公司集采招标共计 据了解,SPN标准是由中国移动提出,国际通信标准组织ITU-T已在SPN标准体系领域先后完成G.mtn “MTN接口及帧结构”、 G.mtn-arch “MTN功能架构”、G.mtn-eqpt “MTN MTN标准是SPN的核心标准,ITU-T的标准体系的建立将全面推动SPN产业链成熟,为5G商用部署提供坚实保障。 在立项过程中,中国移动联合SPN产业链各成员共提交了数百篇技术文稿,多位来自中国企业的代表获得了标准Editor席位,充分体现了中国企业在面向5G承载SPN标准系列中的主导作用。 此次中国移动SPN大规模集采落地,标志着中国移动正在推进全国范围内SPN的规模部署,是全国5G进入大规模实质建设的重要里程碑。
4.术语 SPN–特定参数–特定参数对应的号码,例如: SPN 190 = 发动机转速 SPN 513 = % 扭矩 PGN – 参数 组号码 –总线上的信息被以 “ 组 ” 的形式广播,例如: PGN 61444 = 发动机控制器 #1 (EEC1) PGN 61444 = SPN 190, SPN 513, 等等 . (对应的SPN号) ->数据域分布 1.1 2 bits Accelerator Pedal Low Idle Switch 如下: SPN175: 其他类同。
此SPN在域中应该是唯一的,并且在用户或计算机帐户的servicePrincipalName 字段中注册。 然后,域控制器查找哪个帐户在 ServicedPrincipalName 字段中注册了所请求的 SPN。 由于服务票证是用链接到请求 SPN 的帐户的哈希加密的,所以攻击者可以离线破解这个加密块,恢复帐户的明文密码。 SPN服务主体名称的发现 传送门:域渗透之SPN服务主体名称 请求服务票据 使用Rubeus请求 Rubeus里面的kerberoast支持对所有用户或者特定用户执行kerberoasting操作,其原理在于先用 以下的命令会打印出注册于用户下的所有SPN的服务票据的hashcat格式。
我们发现,这种简单策略所获得的测试似然值,竟意外地接近 ID-SPN [46]——目前最复杂的 SPN 结构学习方法之一。 结果令人惊讶:RAT-SPN 的对数似然常与 ID-SPN 相当。 事实上,在 20 个数据集中,ID-SPN 仅在其中 7 个显著优于 RAT-SPN;RAT-SPN 在仅 5 个数据集上比 ID-SPN 差超过 5%(相对差距)。 考虑到 RAT-SPN 完全不进行结构学习,而 ID-SPN 是高度复杂的结构学习器,二者性能差距如此之小确实出人意料。 更有甚者,在 3 个数据集上 RAT-SPN 甚至略优于 ID-SPN(虽不显著)。