FTP 列挙と匿名アクセス

NmapBeginner
オンラインで実践に進む

はじめに

ネットワーク列挙とファイル転送プロトコル(FTP)の悪用に関する実践的なラボへようこそ。サイバーセキュリティの分野では、システムのセキュリティを評価する最初のステップは、そのシステムがネットワークに公開しているサービスを理解することです。このプロセスを列挙(enumeration)と呼びます。

このラボでは、ペネトレーションテストの初期段階をシミュレートします。まず、ターゲットマシンへの接続を確認します。次に、強力なネットワークスキャンツールである nmap を使用して、開いているポートを発見し、実行中のサービスを特定します。最後に、匿名アクセスを許可する設定ミスのある FTP サービスを悪用して、隠されたフラグを取得します。この演習により、ネットワーク偵察と悪用に関する基本的なスキルを習得できます。

完了すると、以下の方法を理解できるようになります。

  • ping を使用してネットワーク接続を確認する。
  • nmap を使用して開いているポートとサービスをスキャンする。
  • 匿名アクセスで FTP サービスに接続する。
  • 一般的な設定ミスを悪用してファイルにアクセスする。

始めましょう。

Ping でターゲットへの接続を確認する

このステップでは、ターゲットシステムへの接続を確認することから偵察フェーズを開始します。ping コマンドは、IP ネットワーク上でホストが到達可能かどうかをテストするために使用される基本的なネットワークユーティリティです。ターゲットに ICMP Echo Request パケットを送信し、ICMP Echo Reply パケットを待ちます。

お使いの環境は、ホスト名 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.086 ms
64 bytes from target (172.17.0.2): icmp_seq=2 ttl=64 time=0.064 ms
64 bytes from target (172.17.0.2): icmp_seq=3 ttl=64 time=0.063 ms
64 bytes from target (172.17.0.2): icmp_seq=4 ttl=64 time=0.064 ms

--- target ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3069ms
rtt min/avg/max/mdev = 0.063/0.069/0.086/0.010 ms

成功した応答を確認したら、ご自身のマシンがターゲットと通信できることを確信できます。

Nmap で開いているポートをスキャンする

このステップでは、ターゲットに対してポートスキャンを実行するために nmap を使用します。Nmap(Network Mapper)は、ネットワーク検出およびセキュリティ監査に不可欠なツールです。開いているポートをスキャンすることで、ターゲット上でどのサービスが実行されているかを特定でき、これは潜在的な脆弱性を見つけるための重要なステップです。

ターミナルで以下のコマンドを実行し、開いているポートをスキャンしてサービスバージョンを検出してください。

nmap -sV target

Nmap は、バージョン検出を有効にして target マシンをスキャンします。しばらくすると、スキャンの結果レポートが表示されます。出力は以下のようになります。

Starting Nmap 7.80 ( https://nmap.org ) at 2025-09-15 10:00 CST
Nmap scan report for target (172.17.0.2)
Host is up (0.00011s latency).
Not shown: 999 closed ports
PORT   STATE SERVICE VERSION
21/tcp open  ftp     vsftpd 3.0.5
Service Info: OS: Unix

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 0.32 seconds

出力を注意深く観察してください。Nmap は、ポート 21/tcpopen であり、バージョン vsftpd 3.0.5ftp サービスが実行されていることを発見しました。これが次のステップへのエントリーポイントとなります。

FTP でターゲットに接続する

このステップでは、発見した開いている FTP ポートに接続を試みます。FTP(File Transfer Protocol)は、サーバーとクライアント間でコンピューターファイルを転送するために使用される標準的な通信プロトコルです。その主な脆弱性は、適切な認証なしに匿名アクセスを許可するように誤設定される可能性があることです。ここでは、匿名ログインを許可する一般的な誤設定を悪用します。

target に接続するために ftp コマンドを実行してください。

ftp target

FTP サービスに接続され、ユーザー名の入力を求められます。

Connected to target.
220 (vsFTPd 3.0.5)
Name (target:labex):

システムはログインを求めています。FTP サービスにおける一般的な誤設定では、匿名アクセスが許可されています。ログインプロンプトで anonymous と入力し、Enter キーを押してください。サービスはパスワードなしで匿名アクセスを許可するように設定されているため、パスワードを求められたら再度 Enter キーを押してください。

Name (target:labex): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

成功すると、ログインして FTP プロンプト(ftp>)が表示されます。これは、FTP サービスへのアクセス権を取得したことを示しています。

ftp>

これで FTP サービスに接続され、リモートファイルシステムと対話できるようになりました。

ターゲットシステムを探索し、フラグを見つける

このステップでは、FTP サービスへのアクセスに成功したことを踏まえ、利用可能なファイルを探索し、フラグをダウンロードします。これは、攻撃者が機密情報を探すポストエクスプロイトフェーズをシミュレートしたものです。

現在、FTP サービスに接続されています。ls コマンドを使用して、現在のリモートロケーションにあるファイルとディレクトリを一覧表示してください。

ftp > ls

ファイルの一覧が表示されるはずです。flag.txt という名前のファイルを探してください。

ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-r--r--    1 0        0              42 Sep 15 11:30 flag.txt
226 Directory send OK.
ftp>

ファイルを見つけたら、get コマンドを使用してローカルマシンにダウンロードします。これにより、ファイルがリモートサーバーから現在のローカルディレクトリに転送されます。

ftp > get flag.txt

ファイルがダウンロードされ、転送ステータスメッセージが表示されるはずです。

ftp> get flag.txt
local: flag.txt remote: flag.txt
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for flag.txt (42 bytes).
226 Transfer complete.
42 bytes received in 0.00 secs (17.6 kB/s)
ftp>

FTP セッションを終了し、ダウンロードしたファイルの内容を表示してください。

ftp > exit

cat コマンドを使用して、ダウンロードした flag.txt ファイルの内容を表示してください。

cat flag.txt

ターミナルにフラグのハッシュ値が表示されます。

labex{d3adb33f_p0rt_sc4nn1ng_m4st3ry}

おめでとうございます!ターゲットシステムからフラグを正常に列挙、アクセス、取得しました。フラグの値をコピーして、実験を完了してください。

まとめ

この実験では、偵察からアクセス獲得までの基本的なペネトレーションテストのワークフローを完了しました。以下の方法を学びました。

  • ping を使用して、ターゲットがオンラインであり到達可能であることを確認する。
  • nmap -sV を使用してポートスキャンを実行し、開いているポートとそれらで実行されているサービスを特定する。
  • 匿名アクセスが可能な誤設定された FTP サービスを特定し、接続する。
  • 一般的な誤設定を悪用して、リモートシステム上のファイルへのアクセス権を取得する。
  • FTP コマンドを使用して、リモートサーバーからファイルを一覧表示し、ダウンロードする。

この演習は、ネットワークセキュリティの基礎の重要性を浮き彫りにします。FTP サービスは、認証とアクセス制御を適切に設定する必要があります。匿名アクセスは、特に必要とされない限り無効にすべきであり、すべてのファイル転送サービスは SFTP や FTPS のようなセキュアなプロトコルを使用すべきです。攻撃者がどのように動作するかを理解することで、自身のシステムをより効果的に防御できるようになります。