はじめに
このハンズオンラボでは、Rsync の列挙と悪用(exploitation)に焦点を当てます。Rsync は、ネットワーク経由で 2 つの場所間でファイルやディレクトリを同期するために広く使用されているユーティリティです。強力ですが、設定ミスがあると機密データを公開してしまう可能性があります。
このラボでは、バックアップサービスが不適切に設定されている、ペネトレーションテストでよくあるシナリオをシミュレートします。まず、基本的なネットワーク偵察(reconnaissance)を実行して、ターゲットがオンラインであることを確認します。次に、nmap ツールを使用して Rsync サービスのスキャンを行います。特定できたら、利用可能な共有(shares)を列挙し、匿名アクセス設定を悪用してターゲットからファイルをダウンロードし、最終的に隠されたフラグを取得します。
完了すると、以下の方法を理解できるようになります。
pingを使用してネットワーク接続を確認する。- デフォルトポートで Rsync サービスを
nmapを使用してスキャンする。 - 匿名 Rsync 共有を列挙し、接続する。
- リモートターゲットからローカルマシンにファイルを同期する。
それでは始めましょう。
Ping によるターゲットへの接続確認
このステップでは、まずターゲットシステムがご自身のマシンから到達可能であることを確認します。ping コマンドは標準的なネットワーク診断ツールで、ホストに ICMP Echo Request パケットを送信して接続性をテストします。これは、あらゆるネットワーク偵察タスクにおける最初かつ最も基本的なステップです。
ご自身の環境には、ホスト名 target 経由でアクセス可能なターゲットシステムが含まれています。
ターゲットに 4 つのパケットを送信し、オンラインであることを確認するために、ターミナルで以下のコマンドを実行してください。
ping -c 4 target
以下のような出力が表示され、ターゲットがリクエストに応答していることが確認できるはずです。IP アドレスと応答時間は若干異なる場合があります。
PING target (172.17.0.2) 56(84) bytes of data.
64 bytes from target (172.17.0.2): icmp_seq=1 ttl=64 time=0.091 ms
64 bytes from target (172.17.0.2): icmp_seq=2 ttl=64 time=0.068 ms
64 bytes from target (172.17.0.2): icmp_seq=3 ttl=64 time=0.065 ms
64 bytes from target (172.17.0.2): icmp_seq=4 ttl=64 time=0.067 ms
--- target ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3075ms
rtt min/avg/max/mdev = 0.065/0.072/0.091/0.011 ms
正常な応答が得られたことで、ご自身のマシンとターゲットとの間に安定したネットワーク接続が存在することを確認できました。
Nmap によるオープンポートのスキャン
このステップでは、nmap を使用してターゲットのオープンポートをスキャンし、実行中のサービスを特定します。Nmap は、ネットワーク検出およびセキュリティ監査のための強力なツールです。Rsync のデフォルトポートである 873 にスキャンを集中させます。
target のポート 873 に対してバージョン検出スキャンを実行するには、以下のコマンドを実行してください。
nmap -sV -p 873 target
このコマンドの内訳を見てみましょう。
nmap: Network Mapper ツールを実行するためのコマンドです。-sV: バージョン検出を有効にします。これにより、オープンポートで実行されているサービスのバージョンを特定しようとします。-p 873: Nmap がポート 873 のみをスキャンするように指定します。
スキャンが完了すると、以下のような出力が表示されます。
Starting Nmap 7.80 ( https://nmap.org ) at 2025-09-12 11:20 CST
Nmap scan report for target (172.17.0.2)
Host is up (0.00012s latency).
PORT STATE SERVICE VERSION
873/tcp open rsync (protocol version 31)
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 0.35 seconds
この出力は、ポート 873/tcp が open であり、rsync サービスが実行されていることを確認します。この情報は、次の攻撃フェーズにとって非常に重要です。
Rsync によるターゲットへの接続
このステップでは、発見した Rsync サービスと対話します。最初のアクションは、サーバー上の利用可能な「モジュール」または共有を一覧表示することです。匿名アクセスが有効になっている場合、サーバーは公開アクセス可能なディレクトリのリストで応答します。
target 上のモジュールを一覧表示するには、次のコマンドを実行します。
rsync rsync://target
サーバーは利用可能なモジュールのリストで応答するはずです。この場合、public という名前のモジュールが表示されます。
public Public Files
public という名前のモジュールが存在することがわかったので、その内容をローカルマシンに同期できます。-av フラグを使用します。-a はアーカイブモード(パーミッション、所有権などを保持します)用、-v は詳細出力用です。
以下のコマンドを実行して、public モジュールの内容を現在のディレクトリ(.)にダウンロードします。
rsync -av rsync://target/public/ .
コマンドはターゲットに接続し、ファイルを転送し、操作の概要を表示します。
receiving incremental file list
./
flag.txt
sent 43 bytes received 121 bytes 328.00 bytes/sec
total size is 31 speedup is 0.19
出力は、flag.txt という名前のファイルがローカルディレクトリに正常にダウンロードされたことを示しています。
ターゲットシステムの探索とフラグの特定
この最終ステップでは、Rsync サーバーからダウンロードしたファイルを調査し、フラグを取得します。ファイルを現在のディレクトリに同期したため、ローカルで確認できるようになりました。
まず、ls コマンドを使用して現在のディレクトリのファイルを一覧表示し、flag.txt がダウンロードされたことを確認します。
ls
出力に flag.txt が表示されるはずです。
flag.txt
次に、cat コマンドを使用して flag.txt の内容を表示します。これにより、実験を完了するために必要なフラグが表示されます。
cat flag.txt
ターミナルにフラグの値が表示されます。
labex{rsync_an0nym0us_4cc3ss_fl4g}
おめでとうございます!設定ミスのある Rsync サービスを特定し、その共有を列挙し、内容をダウンロードし、フラグを取得することに成功しました。フラグの値をコピーして実験を完了してください。
まとめ
この実験では、Rsync サービスのセキュリティ評価を、偵察からエクスプロイトまで、無事に完了しました。以下の方法を学びました。
pingを使用して、ターゲットとのネットワーク接続のベースラインを確立する。nmapを使用してターゲットを絞ったポートスキャンを実行し、開いている Rsync サービスとそのバージョンを特定する。- Rsync サーバーと対話して、公開されているモジュールを一覧表示する。これは列挙の重要なステップです。
- 匿名アクセスの設定ミスを悪用して、ターゲットからローカルマシンにファイルを同期する。
- ダウンロードしたファイルからフラグを見つけて取得し、目的を達成する。
この演習は、重要なセキュリティ原則を示しています。Rsync のような利便性のために設計されたサービスは、認証とアクセス制御によって適切に保護する必要があります。Rsync サーバーを匿名アクセスで開いたままにしておくと、重大なデータ侵害につながる可能性があります。これらの攻撃ベクトルを理解することで、ネットワークサービスをより効果的に保護できるようになります。



