Kerberoasting攻击

一. Kerberoasting攻击原理

1. 原理

Kerberoasting 是域渗透中经常使用的一项技术,是Tim Medin 在 DerbyCon 2014 上发布的一种域口令攻击方法,Tim Medin 同时发布了配套的攻击工具 kerberoast。此后,不少研究人员对 Kerberoasting 进行了改进和扩展,在 GitHub 上开发发布了大量工具,使得Kerberoasting 逐渐发展成为域攻击的常用方法之一。Kerberoast攻击是在TGS_REP的过程中用户将会收到由目标服务实例的NTLM hash加密生成的ST(service ticket),如果获得这个ST票据,我们可以尝试穷举口令,模拟加密过程,进行破解。

2. 条件
ST票据的加密方式没有强制采用aes256,可以使用MD5的加密
在TGS认证TGT的时候,不管提供的用户是否具有访问目标服务的权限都会返回目标服务的ST

二. 服务主体名SPN介绍

1.介绍

服务主体名称SPN(Server principal Name SPN),是服务实例(可以理解为一个服务,比如 HTTP、MSSQL)的唯一标识符。Kerberos 身份验证使用SPN将服务实例与服务帐户相关联。(在域中如果有多个服务,每个服务必须有自己的SPN和用户,一个用户可以有多个SPN,但是SPN只能对应一个用户,SPN必须注册的用户下)

这里有三个概念:

SPN:服务主体名称,将服务用户和服务联系起来
服务用户:用于登录运行服务的用户
服务:计算机运行的服务
2. 格式

SPN的格式:

<serviceclass>/<host>:<port>/<service name>

SPN 的语法中存在四种元素,两个必要元素和非必要两个元素
其中<service class>和<host>为必须元素<port>/<service name>是非必要元素

必要:
Service class:服务类(HOST )
Host:服务所在的主机名字
比如:MSSQLSvc/SQL.hack.com

常见服务名称及功能:https://blog.csdn.net/wangdeq/article/details/818280

3. SPN分类
查询命令:setspn -Q */*

注册在机器账户下
电脑加入域之后,机器用户会同步到域控(主机名$),什么样子的服务会注册到这个账户呢? 服
务权限为local system 或者Network service时,比如HOST服务(其中的SPN /<hos
在这里插入图片描述

注册在域用户下
SPN可以注册在域中的用户,默认只有机器用户或者域管理员用户才有权限去注册SPN(将服务注册在域
用户的权限),域中的普通用户如果要注册需要修改权限(一般默认的一些工具软件会注册到机器用户下)

在这里插入图片描述

三. SPN的注册注意事项

在使用kerberos访问对方电脑的服务之前,KDC上必须有服务对应的SPN,并且注册到了用户上

注册SPN有两种方式:

系统自动完成注册比如我们安装EX邮箱,SQL等
手动注册,可以根据SPN的格式手动注册

注册SPN的用户有两种

注册在机器用户下(机器名$)
注册在域用户下

这里需要注意的是:在注册SPN的时候只有 机器用户或者域管理员用户才有权限普通的域用户默认是没有权限的,除非修改相关的设置;

接下来使用setspn命令在不同用户下注册服务:
在这里插入图片描述
域用户

setspn -U -S web/ONE-PC.HACK.COM:80 LEE
将HTTP服务的SPN注册到域用户LEE下

在这里插入图片描述
机器用户

setspn -C -S web/ONE-PC.HACK.COM:80 ONE-PC
将HTTP服务的SPN注册到当前机器用户下

在这里插入图片描述

server hash是什么

server hash是Kerberos认证中用来解密ST的
在这里插入图片描述
SPN注册在机器用户下:

A电脑提供TGT和需要访问的服务
TGS检查服务名字和对应的SPN
TGS发现SPN中该服务对应的服务是web1
SPN中对应的用户是机器用户ONE-PC$
生成ST票据(使用one-pc$-hash进行加密)

这个中注册我们无法使用kerberoasting,这个是白银票据的

SPN注册在域用户下:

A电脑提供TGT和需要访问的服务
TGS检查服务名字和对应的SPN
TGS发现SPN中该服务对应的机器是web
SPN中对应的用户是机器用户LEE
生成ST票据(使用LEE-Hash进行加密)

四. 域内SPN探测技术

在控制了一台内网主机的时候,我们可以探测域中注册的SPN,原理上还是使用LDAP协议进行查询,这里分为域内主机查询和非域内主机查询

1. 域内

如果当前电脑加入了域,并且使用域用户进行登录,如果没有登录就提权到system用户,可以进行查询

setspn命令

Setspn –Q */* 查询所有的SPN
Setspn –T hack.com –Q */* 查询指定域中的SPN

在这里插入图片描述
PowerView脚本

Import-Module .\PowerView.ps1
Get-NetUser –SPN
这个脚本可以查询域用户注册的SPN,机器用户注册的查不了

在这里插入图片描述

2. 非域

对于非域内的主机,可以通过adfind,但是必要提供一个域中的账号密码,没有办法通过kerberos协议,自己写脚本也不行,除非发现kerberos的漏洞

域内机器:Adfind.exe -b "dc=hack,dc=com" -f "&(servicePrincipalName=*)" servicePrincipalName
非域机器:Adfind.exe -h 192.168.41.10:389 -u hack\ONE-PC -up Lyp010822 -f "&(servicePrincipalName=*)" servicePrincipalName

在这里插入图片描述

我们的获取的方式没有对用户进行过滤,是所有的用户的SPN都会都会显示出来,我们在进行渗透的时候肯定是需要管理员用户,只需要将LDAP的条件变一下即可

Adfind.exe -h 192.168.41.10:389 -u hack\ONE-PC -up Lyp010822 -f "&(servicePrincipalName=*)(admincount=1)" servicePrincipalName

在这里插入图片描述

五. 获取高权限SPN服务票据

我们为什么要获取SPN,就是用来破解SPN对应账户的密码但是SPN可以注册在机器用户下和
域用户下

机器用户下(机器用户的密码是不可能获取到的,他是随机的,是无法进行破解的)
域用户下(SPN可以注册在任何的域用户下,所以需要查询高权限的域用户下的SPN)

过滤出来的SPN之后我们就要针对这些用户进行ST的申请,正常申请ST进行破解密码这个是
kerberoasting,如果是伪造ST那就是白银票据了

1. GetUserSPNs工具
在非域主机上获取域中所有注册SPN的用户ST票据:
GetUserSPNs.exe -request -dc-ip 192.168.41.10 hack.com/ONE-PC:Lyp010822 -outputfile 1.txt
GetUserSPNs.exe -request -dc-ip 192.168.41.10 hack.com/ONE-PC:Lyp010822 -outputfile 1.txt -request-user ONE-PC 指定用户

在这里插入图片描述

可以看到该ST票据中的加密算法采用HMAC_MD5所以可以破解,如果是ASE256就不行了
在这里插入图片描述

2. Rebeus工具

这个工具不能用于工作组的电脑,因为不支持认证,在域中的电脑,执行如下:

Rubeus.exe kerberoast /format:john /outfile:1.txt
3. mimikatz

可以使用mimikatz直接申请ST票据,然后从内存中导出来

kerberos::ask /target:web1/ONE-PC申请票据
kerberos::list /export 导出所有票

在这里插入图片描述
在这里插入图片描述
这种方式导出的整个封装好的ST票据,不像之前的工具导出的数据

六. 破解用户ST票据Hash

因为获取的的ST因为工具的不同有kirbi格式的也有hash格式的使用不同的工具去进行破解
Kirbi格式的:
使用tgsrepcrack脚本

Python2 tgsrepcrack.py 密码字典 票据

Hash格式的(分为john格式和hacat格式一般都是hashcat):

Hashcat –m 13100 hash pass --force

七. 通过Kerberoasting控制域控

基本步骤如下:
1、检查电脑是否加入域

 如果是工作组(先用喷洒得到一个域用户和密码)
 然后使用Adfind查询可以利用的SPN
 如果加入了域直接使用工具查询高权限的SPN

2、找到可利用的SPN用户获取该用户的ST票据(这里使用加入域的电脑)
3、使用hashcat破解密码
4、得到用户的hash值之后,获取该用户的PTT票据
5、使用mimikatz将票据注入的内存中
6、横向移动进行上线

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

揭秘Facebook:数字时代的社交奥秘

前言 在当今的数字时代&#xff0c;社交网络已经深刻改变了人们的沟通方式、信息获取方式和社交方式。其中&#xff0c;Facebook作为全球最大的社交网络平台之一&#xff0c;扮演了至关重要的角色。从一个大学生项目发展成覆盖全球的社交巨头&#xff0c;Facebook不仅见证了互…

大尺寸图像分类检测分割统一模型:Resource Efficient Perception for Vision Systems

论文题目&#xff1a;Resource Efficient Perception for Vision Systems 论文链接&#xff1a;http://arxiv.org/abs/2405.07166 代码链接&#xff1a;https://github.com/Visual-Conception-Group/Localized-Perception-Constrained-Vision-Systems 作者设计了一个统一的模…

2024年想转行WebGIS前端开发还有就业前景吗?

当然有。 无论是测绘外业、数据处理&#xff0c;还是城乡规划、遥感等等专业&#xff0c;只要你的行业就业水平一直停留在“工资低、工作条件差、对身体消耗大、没发展”的现状&#xff0c;我都劝你果断转GIS开发。 在新中地学习的学生无非就是因为上述原因&#xff0c;选择放…

Springboot 在线学习交流平台-计算机毕业设计源码46186

摘 要 随着科学技术的飞速发展&#xff0c;社会的方方面面、各行各业都在努力与现代的先进技术接轨&#xff0c;通过科技手段来提高自身的优势&#xff0c;在线学习交流平台当然也不能排除在外。在线学习交流平台是以实际运用为开发背景&#xff0c;运用软件工程原理和开发方法…

乡村振兴的乡村环境综合整治:加强农村环境综合整治,改善农村人居环境,打造干净整洁的美丽乡村

目录 一、引言 二、农村环境问题的现状与挑战 &#xff08;一&#xff09;农村环境问题的现状 &#xff08;二&#xff09;农村环境问题的挑战 三、加强农村环境综合整治的必要性 &#xff08;一&#xff09;提升农民生活质量 &#xff08;二&#xff09;促进农村经济发…

AI工具:如何通过智能助手简化工作流程?

工欲善其事&#xff0c;必先利其器。 随着AI技术与各个行业或细分场景的深度融合&#xff0c;日常工作可使用的AI工具呈现出井喷式发展的趋势&#xff0c;AI工具的类别也从最初的AI文本生成、AI绘画工具&#xff0c;逐渐扩展到AI思维导图工具、AI流程图工具、AI生成PPT工具、AI…

【C/C++】——小白初步了解——内存管理

目录 1. C/C内存分布 代码区&#xff08;Code Segment&#xff09;&#xff1a; 数据区&#xff08;Data Segment&#xff09;&#xff1a; 堆区&#xff08;Heap&#xff09;&#xff1a; 栈区&#xff08;Stack&#xff09;&#xff1a; 常量区&#xff08;Constant Seg…

GE的六西格玛是怎么成功的?

六西格玛作为一种先进的质量管理方法&#xff0c;旨在通过消除缺陷、提高流程效率来降低成本、增强客户满意度。GE作为最早采用六西格玛的公司之一&#xff0c;其成功的原因首先离不开高层领导对精益六西格玛理念的坚定支持和推动。公司高层不仅亲自参与培训和项目实践&#xf…

Android电量优化,让你的手机续航更持久

节能减排&#xff0c;从我做起。一款Android应用如果非常耗电&#xff0c;是一定会被主人嫌弃的。自从Android手机的主人用了你开发的app&#xff0c;一天下来&#xff0c;也没干啥事&#xff0c;电就没了。那么他就会想尽办法找出耗电量杀手&#xff0c;当他找出后&#xff0c…

河南劳务资质申请到拿证,时间规划全攻略

河南劳务资质申请到拿证&#xff0c;时间规划全攻略如下&#xff1a; 一、前期准备阶段 材料准备 准备企业营业执照、企业章程、人员身份证明、职称或技能证书、社保证明等相关材料。特别注意准备《建筑业企业资质申请表》、建筑业企业资质申报材料承诺书、标准要求的主要设备…

藏汉翻译通app:藏文OCR文字识别提取是怎么提高你学习藏语的效率的?今天手把手教会你使用!

工作上的沟通、出门旅游的沟通、学习过程中的沟通&#xff0c;都离不开语言。而语言也是连接不同文化的桥梁。当你还是一个萌新&#xff0c;刚开始接触并使用藏语时&#xff0c;一个趁手的翻译工具&#xff0c;将帮助你快速掌握藏语这门语言。 藏汉翻译通小程序&#xff0c;不仅…

使用DLL还是通讯协议进行LabVIEW设备集成

在使用LabVIEW进行设备集成时&#xff0c;可以选择通过设备提供的DLL或直接使用通讯协议。选择方法取决于开发效率、性能、灵活性和维护成本等因素。本文将从这几个方面详细分析两种方法的优劣&#xff0c;帮助做出最佳决策。 分析角度 1. 开发效率&#xff1a; DLL&a…

EAP设备自动化系统基本功能与概念

EAP&#xff08;Equipment Automation Programming&#xff09;实现了对生产线上机台的实时监控&#xff0c;是工厂自动化不可缺少的控制系统。EAP系统与FAB中的机台紧密相关&#xff0c;系统的设计与开发必须与生产线的机台实际生产流程相一致&#xff0c;才能达到自动化控制机…

SG5032CAN晶体振荡器适用于单片机应用

单片机晶振的作用是为系统提供基本的时钟信号。通常一个系统共用一个晶振&#xff0c;便于各部分保持同步。有些通讯系统的基频和射频使用不同的晶振&#xff0c;而通过电子调整频率的方法保持同步。晶振是为单片机提供一个基本震荡源&#xff0c;也就相当于人体的心跳&#xf…

ThingsKit:智能物联网平台的创新者

在数字化浪潮的推动下&#xff0c;物联网&#xff08;IoT&#xff09;正在迅速改变我们的生活和工作方式。ThingsKit&#xff0c;一个领先的物联网平台&#xff0c;致力于通过其创新的技术和服务&#xff0c;为用户提供一个全面、灵活且易于使用的解决方案。 核心特点 设备连接…

【30天精通Prometheus:一站式监控实战指南】第19天:haproxy_exporter从入门到实战:安装、配置详解与生产环境搭建指南,超详细

亲爱的读者们&#x1f44b;   欢迎加入【30天精通Prometheus】专栏&#xff01;&#x1f4da; 在这里&#xff0c;我们将探索Prometheus的强大功能&#xff0c;并将其应用于实际监控中。这个专栏都将为你提供宝贵的实战经验。&#x1f680;   Prometheus是云原生和DevOps的…

如何充分利用代理IP扩大网络接触面

目录 前言 第一部分&#xff1a;什么是代理IP&#xff1f; 第二部分&#xff1a;如何获取代理IP&#xff1f; 1. IP质量 2. 匿名性 3. 限制 第三部分&#xff1a;如何使用代理IP&#xff1f; 第四部分&#xff1a;如何充分利用代理IP&#xff1f; 总结&#xff1a; 前…

SqlServer: 如何产生没有重复的报名编号

背景&#xff1a; 某一期的报名过程中&#xff0c;希望报名能做到报名从1开始&#xff0c;从小到大依次来。但实际生产环境中&#xff0c;用户集中大并发式报名&#xff0c;报名编号非常容易重复。 下面我们用简单的SQL来模拟和重现这个过程&#xff1a; USE tempdb GO DROP…

城规跨考地信:你需要知道的几件事

24考研结束&#xff0c;25地信考研的小伙伴也开始准备。 在这期间发现一个现象&#xff0c;城规跨考GIS的讨论度非常高。 对这一点&#xff0c;我并不感到意外&#xff0c;因为随着地产行业的节节败退&#xff0c;很多单位不需要那么多规划人和建筑人&#xff0c;乃至土木人。…

【前端Vue3】——JQuery知识点总结(超详细)

&#x1f3bc;个人主页&#xff1a;【Y小夜】 &#x1f60e;作者简介&#xff1a;一位双非学校的大二学生&#xff0c;编程爱好者&#xff0c; 专注于基础和实战分享&#xff0c;欢迎私信咨询&#xff01; &#x1f386;入门知识专栏&#xff1a;&#x1f387;【MySQL&#…