Nmap によるポートスキャンと Telnet アクセス

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

はじめに

このハンズオン実験では、ネットワーク列挙とアクセスについて学びます。サイバーセキュリティの分野では、システムのセキュリティを評価する最初のステップは、ネットワークに公開されているサービスを理解することです。このプロセスを列挙と呼びます。

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

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

  • ping を使用してネットワーク接続を確認する。
  • nmap を使用して開いているポートとサービスをスキャンする。
  • Telnet サービスに接続する。
  • 簡単な設定ミスを悪用してシステムアクセス権を取得する。

始めましょう。

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 target

Nmap はターゲットマシンをスキャンします。しばらくすると、結果のレポートが表示されます。出力は以下のようになります。

Starting Nmap 7.80 ( https://nmap.org ) at 2025-09-12 10:54 CST
Nmap scan report for target (172.17.0.2)
Host is up (0.00011s latency).
Other addresses for target (not scanned): 172.17.0.2 172.17.0.2 172.17.0.2 172.17.0.2
Not shown: 999 closed ports
PORT   STATE SERVICE
23/tcp open  telnet

Nmap done: 1 IP address (1 host up) scanned in 0.05 seconds

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

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

このステップでは、発見した開いている Telnet ポートに接続を試みます。Telnet は古く、安全ではないプロトコルであり、リモートホストへのコマンドラインインターフェースを提供します。その主な脆弱性は、ユーザー名やパスワードを含むすべてのデータを平文で送信することです。ここでは、一般的な設定ミスである「パスワードが空白のアカウント」を悪用しようとします。

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

telnet target

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

Trying 172.17.0.2...
Connected to target.
Escape character is '^]'.
target login:

システムはログインを求めています。ペネトレーションテストでは、デフォルトまたは一般的なユーザー名を試すことが一般的です。ここでは root を試してみましょう。ログインプロンプトで root と入力して Enter キーを押してください。システムがパスワードなしでのログインを許可するように誤設定されている可能性があるため、パスワードを入力せずに、再度プロンプトが表示されたら Enter キーを押してください。

target login: root

成功した場合、ログインしてシェルプロンプト(例:#)が表示されます。これは、ターゲットシステムへの管理者アクセス権を取得したことを示します。

/ #

これでターゲットシステムのシェル内にいます。

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

このステップでは、ターゲットシステムへのアクセスに成功したことを踏まえ、ファイルシステムを探索してフラグを見つけることが最終的なタスクです。これは、攻撃者が機密情報を探すポストエクスプロイテーションフェーズをシミュレートします。

現在、ターゲットマシンのルートディレクトリ(/)にいます。ls コマンドを使用して、現在の場所にあるファイルとディレクトリを一覧表示してください。

ls

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

/ ## ls
bin         dev         etc         flag.txt    home        root        usr
/ #

ファイルを見つけたら、cat コマンドを使用してその内容を表示します。これによりフラグが明らかになります。

cat flag.txt

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

/ ## cat flag.txt
labex{d3adb33f_p0rt_sc4nn1ng_m4st3ry}
/ #

おめでとうございます!ターゲットシステムからフラグを列挙、アクセス、取得することに成功しました。ラボを完了するためにフラグの値をコピーしてください。Telnet セッションを終了するには、exit と入力して Enter キーを押してください。

まとめ

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

  • ping を使用して、ターゲットがオンラインであり到達可能であることを確認する。
  • nmap -sV を使用してポートスキャンを実行し、開いているポートとその上で実行されているサービスを特定する。
  • 不安全な Telnet サービスを特定し、接続する。
  • 一般的な設定ミス(パスワードが空白のユーザー)を悪用して、リモートシステムへのシェルアクセスを取得する。
  • ターゲットのファイルシステムをナビゲートして、機密情報(フラグ)を見つけて取得する。

この演習は、ネットワークセキュリティの基本の重要性を浮き彫りにします。Telnet のようなサービスはインターネットに公開されるべきではなく、すべての Вアカウントは強力でユニークなパスワードで保護される必要があります。攻撃者がどのように動作するかを理解することで、自身のシステムをより効果的に防御できるようになります。