当前位置: 首页 > news >正文

渗透测试 之 AD域渗透 【Kerberoasting】 攻击技术讲解 对应得工具详细介绍哟~ 以及相关示例 按照步骤做你也会哟

说明

  • Kerberoasting 攻击发生在Kerberos协议的TGS_REP阶段,KDC的TGS服务返回一个由服务Hash加密的ST给客户端。
  • 由于该ST是用服务Hash进行加密的,因此客户端在拿到该ST后可以用于本地离线爆破

攻击的过程

  • 攻击者提供一个正常的域用户密码对域进行身份认证,KDC在验证账户和密码的有效性后,会返回一个TGT。该TGT用于以后的ST请求
  • 攻击者使用获得的TGT请求针对指定SPN的ST。在请求服务票据的TGS-REQ进程中,攻击者可以指定其支持的Kerberos 加密类型为RC4_HMAC_MD5(ARCFOUR-HMAC MD5),因为RC4_HMAC_MD5加密算法相比于其他加密算法更容易被破解。

Kerberoasting攻击在实战中主要分为如下4步

  • 查询域内注册于域用户下的SPN;
  • 请求指定SPN的ST;
  • 导出请求的ST;
  • 对该导出的ST进行离线爆破。

选择攻击主机

  • 攻击主机必须是域控主机内的user,而不是当前主机下的用户,如果是当前主机下的用户,那么当前主机只是加入了域,而并非和域控相关联。 
  • xie\hack
    • 321@qq.com

SPN的发现

  1. 这是Kerberoasting攻击的第一步。首先,发现域内所有注册于域用户下的SPN认情况下。
    1. 域内会有一个注册在用户krbtgt下的SPN kadmin/changepw。但该SPN对于Kerberoasting 攻击是没有意义的,因为用户krbtgt的密码是随机生成的,几乎不可能爆破出来。
  • RiskySPN

    • RiskySPN 是一个PowerShell 脚本的集合,专注于检测与SPN相关的账户是否滥用。
    • 该脚本可以帮助我们自动识别弱密码服务票据,根据用户账户和密码过期时间来查找最容易包含弱密码的票据。
    • 执行如下命令,该脚本会自动查找并过滤出(自动去除注册于krbtgt下的kadmin/changepw)当前域内注册于域用户下的可能包含弱密码的SPN的详细信息。
      • Import-Module .\Find-PotentiallyCrackableAccounts.ps1;
      • Find-PotentiallyCrackableAccounts -FullData
    • #PowerShell脚本用法
      • Import-Module .\GetUserSPNs.ps1
  • PowerView.ps1

  • PowerView.ps1是 PowerSnolit 中Recon 目录下的一个PowerShell脚本,该脚本可用于查询过滤出域用户下注册了SPN的用户,包括krbtgt用户,并返回用户的详细信息。
    • 执行命令如下:
      • Import-Module .\PowerView.ps1
      • Get-NetUser -SPN

请求服务票据

  • 当过滤出注册于用户下的SPN之后,我们就需要请求这些SPN的服务票据了。
  • Impacket 请求

    • Impacket中的GetUserSPNs.py脚本可以请求注册于用户下的所有SPN的服务票据,也可以请求注册于指定用户下的SPN的服务票据。该脚本使用命令如下:
    • 请求注册于用户下的所有SPN的服务票据,并以hashcat能破解的格式保存为hash.txt文件
      • python .\GetUserSPNs.py -request -dc-ip 192.168.1.88 xie.com/administrator:321@qq.com -outputfile a.txt
  • Rubeus 请求

    • Rubeus 中的Kerberoast 支持对所有用户或特定用户执行Kerberoasting 操作,它的原理在于先用LDAP查询域内所有注册在域用户下的SPN(除了kadmin/changepw)
    • 再通过发送TGS包,直接输出能使用John或 hashcat爆破的Hash。该工具使用命令如下:
      • #请求注册于用户下的所有SPN的服务票据,并以hashcat能破解的格式保存为hash.txt文件
        • Rubeus.exe kerberoast /format:john /outfile:hash.txt
  • mimikatz 请求

    • 使用mimikatz请求指定SPN的服务票据的命令如下,请求的服务票据将保存在内存
      中。
    • #请求指定SPN的服务票据
      • kerberos::ask/target:MSSQLSvc/WIN-08U6QBF1C4U.xie.com:1433

导出服务票据

  • 在请求服务票据的过程中,有的工具可以直接将票据打印出来保存为文件。
  • 有的工具会将票据保存在内存中,对于保存在内存中的票据我们可以使用工具将其从内存中导出来。


查看内存中的票据

  • 首先,我们需要查看内存中保存的票据。可以使用以下命令进行查看:
  • #直接在cmd窗口执行
    • klist
    • 查看了内存中的票据后,我们就需要将其导出为文件了。

使用mimikatz导出票据

  • 使用mimikatz将内存中的票据导出来的命令如下,执行完成后,会在mimikatz同目录下导出 .kirbi格式的票据文件。

    • mimikatz.exe "kerberos::list /export" "exit"

离线破解服务票据

  • 通过前面几步取得了.kirbi票据文件或 hashcat、John能直接破解的文件,接下来就需要本地离线破解服务票据了。

kerberoast

  • kerberoast 是用于攻击Kerberos实现的一些工具的集合。该工具中的 tgsrepcrack.py脚本可以对mimikatz导出的.kirbi格式的票据进行爆破。
  • 使用 tgsrepcrack.py脚本离线破解.kirbi文件的命令如下
    • python2 tgsrepcrack.py pass.txt 3-40a40000-hack@LDAP\~WIN-08U6QBF1C4U.xie.com\~xie.com-XIE.COM.kirbi
      • 这里我报错了 自己去安装对应得库 去试试

hashcat

  • 针对Impacket和Rebeus 请求的票据格式,可以使用hashcat执行如下命令来进行爆
    • hashcat -m 13100 hash.txt pass.txt --force

Kerberoasting 攻击防御

  • 对防守方或蓝队来说,针对检测和防御来说
    • 确保服务账户和密码为强密码,具有随机性并定期修改。
    • Kerberoasting 能成功的最大因素就是KDC返回的ST是用RC4_HMAC_MD5加密算法加密的,攻击者可以比较简单地进行爆破
      • 如果配置强制使用AES256_HMAC方式对Kerberos 票据进行加密,那么即使攻击者获取了ST,也无法将其破解。但这种加密方式存兼容性问题
  • 可以定期使用zBang工具检测当前域内危险的SPN。首先运行zBang,在弹出的界面中选择 Risky SPNs,再单击Launch按钮。
  • 过一会儿就可以看到zBang运行成功,然后我们通过RiskySPN Results页面就可以看到结果,得到2个危险得spn

http://www.lryc.cn/news/459561.html

相关文章:

  • 如何在Ubuntu上更改MySQL数据存储路径
  • Cortex-M 内核的 OS 特性
  • 第十六章 RabbitMQ延迟消息之延迟插件优化
  • [单master节点k8s部署]32.ceph分布式存储(三)
  • git 相关问题解决一一记录
  • UE4 材质学习笔记04(着色器性能优化)
  • 3、Redis Stack扩展功能
  • Flythings学习(二)控件相关
  • 关于multiprocessing使用freeze_support()方法
  • 基于rk356x u-boot版本功能分析及编译相关(一)
  • Jenkins---01
  • 第十五届蓝桥杯C++B组省赛
  • 线程 vs 虚拟线程:深入理解及区别
  • 【WEB应用安全测试指南–蓝队安全测试2】--超详细-可直接进行实战!!!亲测-可进行安全及渗透测试
  • 使用HTML、CSS和JavaScript创建滚动弹幕效果
  • 【C语言】--数组
  • 面向B2B市场的Spring Boot医疗病历系统开发
  • 闭着眼学机器学习——支持向量机分类
  • 今日指数项目day8实战权限管理器(上)
  • 《机器学习与数据挖掘综合实践》实训课程教学解决方案
  • linux中软连接和硬链接的区别
  • #Swift 对比 Static 在Swift 和 OC中的用法
  • yakit使用教程(三,端口探测和指纹扫描)
  • 一维数组的引用
  • Vue3 watch 监视属性
  • 大数据-158 Apache Kylin 安装配置详解 集群模式启动
  • PHP商会招商项目系统一站式服务助力企业腾飞
  • pnpm 和 npm
  • 笔试算法总结
  • mybatisPlus对于pgSQL中UUID和UUID[]类型的交互