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

news2024/12/23 15:44:03

说明

  • 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.coloradmin.cn/o/2210344.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

拆解学习【STC宏晶MCU-CM1020电池保护】(一)

MIJIA米家USB-C充气宝1S: 米家这款充气宝内置2串18650锂电池为电机和控制板供电。控制板采用STC宏晶MCU进行气压测量和电机控制以及压力显示,内部电池保护板采用创芯微CM1020进行电池保护,并采用捷捷微MOS管进行开关控制。 LED数码管采用贴片LED二极管…

NVM 切换Node.js版本工具

大家好我是苏麟,今天聊聊NVM切换版本工具。 切换 node 版本工具 : GitHub - nvm-sh/nvm: Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions 查看node版本 node -v 查看 nvm 版本 nvm -v 查看可安装的Nod…

JavaScript进阶笔记--深入对象-内置构造函数及案例

深入对象 创建对象三种方式 利用对象字面量new Object({…})利用构造函数 // 1. 字面量创建对象const obj1 {name: pig,age: 18};console.log(obj1); // {name: "pig", age: 18}// 2. 构造函数创建对象function Pig(name, age) {this.name…

RVIZ2可视化移动机器人模型

RVIZ2可视化移动机器人模型 上一节讲完joint和link,我们来把我们上面定义的简单的URDF(包含身体和雷达)用RVIZ2显示出来,直观的感受下,我们的机器人模型。 URDF可视化的步骤如下: 1建立机器人描述功能包 2建立urdf文件夹编写…

子组件向父组件传值$emit

点击子组件的按钮&#xff0c;将子组件的值传递给父组件&#xff0c;并进行提示。 子组件 <template><div><button click"emitIndex">clickme</button></div> </template> <script> export default {methods: {emitInde…

计算机毕业设计Django+Vue.js豆瓣图书推荐系统 图书评论情感分析 豆瓣图书可视化大屏 豆瓣图书爬虫 数据分析 图书大数据 大数据毕业设计 机器学习

《DjangoVue.js豆瓣图书推荐系统》开题报告 一、研究背景与意义 1. 研究背景 随着数字化时代的来临&#xff0c;图书资源日益丰富&#xff0c;用户面临着信息过载的问题。如何在海量图书中快速找到符合个人兴趣和需求的书籍成为了亟待解决的问题。传统的图书检索方式往往基于…

【含开题报告+文档+PPT+源码】基于SpringBoot的景区酒店点评系统的设计与实现

开题报告 旅游业的快速发展使得越来越多的人选择旅游作为休闲和放松的方式。景区酒店作为旅游的重要组成部分&#xff0c;承担着提供住宿和服务的重要角色。然而&#xff0c;对于游客来说&#xff0c;在选择合适的景区酒店时往往存在信息不对称的问题&#xff0c;缺乏可靠的点…

Windows 下安装 jdk8

一、简介 JDK&#xff1a;Java SE Development Kit&#xff08;Java 开发工具&#xff09;。JRE&#xff1a;Java Runtime Environment &#xff08;Java 运行环境&#xff09;。 如果想进行 Java 编程&#xff08;开发人员&#xff09;&#xff0c;需要安装 JDK&#xff1b;如…

【含开题报告+文档+PPT+源码】基于过滤协同算法的城市旅游网站的设计与实现

开题报告 几年的疫情对生活的各个领域都产生了巨大的影响&#xff0c;疫情之后&#xff0c;随着国内经济的加速复苏&#xff0c;旅游业也迅速回暖。2023 年我国旅游需求迅速增多&#xff0c;一季度旅游人次为12.16 亿人次&#xff0c;较 2022 年同期增长了 46.5%。在当今数字化…

79 NAT-NAT444端口块静态映射

NAT444&#xff08;Network Address Translation 444&#xff09;是一种网络地址转换技术&#xff0c;用于将私有IP地址转换为公有IP地址&#xff0c;实现私有网络与公有网络之间的通信。 端口块静态映射是NAT444中的一种映射方式&#xff0c;它将一组端口范围映射到一个公有I…

GO 语言协程知识点学习笔记

GO 语言协程知识点学习笔记 是个人从互联网上学习整理的笔记。因个人技艺不精&#xff0c;如有纰漏&#xff0c;还请斧正。 协程&#xff1f; 协程并不是 GO 语言特有的机制&#xff0c;像 Lua、Ruby、Python、Kotlin、C/C 也都有协程的支持。区别在于有些是从语言层面支持&a…

【2024最新】基于springboot+vue的xxxx平台lw+ppt

作者&#xff1a;计算机搬砖家 开发技术&#xff1a;SpringBoot、php、Python、小程序、SSM、Vue、MySQL、JSP、ElementUI等&#xff0c;“文末源码”。 专栏推荐&#xff1a;SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;Java精选实战项…

linux源码安装slurm以及mung和openssl

一、源码安装munge 1、编译安装munge &#xff08;1&#xff09;下载munge地址&#xff1a;https://github.com/dun/munge/releases &#xff08;2&#xff09;解压编译安装&#xff1a; 1 2 3 4 5 6 7 8 创建/data目录 复制文件munge-0.5.15.tar.xz 到/data目录下 tar -Jx…

模型 知识诅咒

系列文章 分享 模型&#xff0c;了解更多&#x1f449; 模型_思维模型目录。知者难悟无知惑。 1 知识诅咒案例 1.1 会议室的误解 李经理是一家科技公司的产品经理&#xff0c;他负责领导一个新产品的开发项目。项目团队由不同背景和经验的成员组成&#xff0c;包括新入职的员…

php 生成随机数

记录:随机数抽奖 要求:每次生成3个 1 - 10 之间可重复(或不可重复)的随机数,10次为一轮,每轮要求数字5出现6次、数字4出现3次、…。 提炼需求: 1,可设置最小数、最大数、每次抽奖生成随机数的个数、是否允许重复 2,可设置每轮指定数字的出现次数 3,可设置每轮的抽奖…

(32)噪声信号的时域分析:均值、方差、与功率

文章目录 前言一、生成噪声信号并画图二、计算信号的均值、方差、与功率三、结果分析 前言 本文对叠加了高斯白噪声的一段整周期余弦信号进行时域分析&#xff0c;使用MATLAB进行信号生成&#xff0c;并计算其均值、方差、与功率。最后给出对计算结果的分析&#xff0c;阐明均…

组装首页:其他组件html、css移入JS中再引入首页

组装首页 <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>组装首页</title><style>* …

Java-Exception与RuntimeException

&#x1f496;简介 &#x1f4d6;Exception Exception 类是所有非致命性异常的基类。这些异常通常是由于编程逻辑问题或外部因素&#xff08;如文件不存在、网络连接失败等&#xff09;导致的&#xff0c;可以通过适当的编程手段来恢复或处理。Exception 可以进一步分为两大类…

分享一些常用的数据库性能监测工具

以下是一些常用的数据库性能监测工具&#xff1a; 一、MySQL MySQL Enterprise Monitor&#xff1a; 由 MySQL 官方推出&#xff0c;提供全面的数据库性能监控、诊断和优化功能。可以监控数据库的各种指标&#xff0c;如查询性能、连接数、缓存命中率等&#xff0c;并提供警报…

目标检测——YOLO11算法解读

作者&#xff1a;Ultralytics公司 代码&#xff1a;https://github.com/ultralytics/ultralytics YOLO系列算法解读&#xff1a; YOLOv1通俗易懂版解读、SSD算法解读、YOLOv2算法解读、YOLOv3算法解读、YOLOv4算法解读、YOLOv5算法解读、YOLOR算法解读、YOLOX算法解读、YOLOv6算…