はじめに
この実験では、ユーザー名とパスワードのリストを作成および変更することで、Hydra ブルートフォース攻撃に必要なファイルを準備する方法を学びます。一般的な認証情報を含むテキストファイルを生成し、追加のバリエーションでカスタマイズして、テストの有効性を高めます。
この演習では、usernames.txt と passwords.txt ファイルの作成、より多くのエントリでの拡張、および Hydra がこれらのファイルを適切に読み込む能力の検証をカバーしています。これらの準備されたリストは、その後の認証クラッキング試行の基礎となります。
ユーザー名リストファイルを作成する
このステップでは、認証システムのテストに使用できる一般的なユーザー名のリストを含むテキストファイルを作成します。このユーザー名リストは、ブルートフォース攻撃や辞書攻撃の際に Hydra ツールに試行する潜在的なアカウント名を提供するため、Hydra 攻撃に不可欠です。
- まず、正しい作業ディレクトリにいることを確認します。
cdコマンドは現在のディレクトリを変更します。この実験では~/projectを作業ディレクトリとして使用します。
cd ~/project
- シンプルなコマンドラインテキストエディタである nano を使用して、
usernames.txtという名前の新しいテキストファイルを作成します。以下のコマンドは、新しいファイルを作成するか、既存のファイルを開きます。
nano usernames.txt
- 次に、様々なシステムでデフォルトの認証情報として頻繁に使用される一般的なユーザー名を追加します。これらのユーザー名を 1 行に 1 つずつ入力または貼り付けます。
admin
root
user
test
guest
administrator
- nano で変更を保存するには、以下の手順を行います。
Ctrl+O(Write Out)を押して保存します。Enterを押してファイル名 (usernames.txt) を確認します。Ctrl+Xを押してエディタを終了します。
catコマンドでファイルの内容を表示することで、ファイルが正しく作成されたことを確認します。これにより、ファイルに格納されている内容が正確に表示されます。
cat usernames.txt
入力したユーザー名のリストが 1 行ごとに表示されるはずです。このファイルは、後続のステップで Hydra の入力として使用され、ツールは各ユーザー名を(別のファイルからのパスワードと組み合わせて)システマティックに試行して、認証システムをテストします。
パスワードリストファイルを作成する
このステップでは、ステップ 1 のユーザー名リストとともに、Hydra を使って認証システムをテストするために使用される一般的なパスワードを含むテキストファイルを作成します。パスワードリストは、システムが脆弱となりうる一般的に使用される認証情報を含んでいるため、ブルートフォース攻撃に不可欠です。
- まず、正しい作業ディレクトリにいることを確認します(まだそこにいない場合)。
~/projectディレクトリは、攻撃用のファイルを整理して保管するための場所です。
cd ~/project
- nano を使用して、
passwords.txtという名前の新しいテキストファイルを作成します。nano は、ほとんどの Linux ディストリビューションに事前にインストールされているシンプルなテキストエディタで、初心者に最適です。
nano passwords.txt
- 以下の一般的なパスワードをファイルに追加します(1 行に 1 つ)。これらは、セキュリティ調査によると最も頻繁に使用される弱いパスワードの一部です。
password
123456
admin
12345678
qwerty
123456789
- 以下の操作でファイルを保存します。
Ctrl+O(Write Out) - これにより変更が保存されます。Enterを押してファイル名を確認します。Ctrl+Xを押して nano を終了し、ターミナルに戻ります。
- ファイルの内容を表示することで、ファイルが正しく作成されたことを確認します。
catコマンドは、エディタを開かずにファイルの内容をすぐに確認する簡単な方法です。
cat passwords.txt
入力したパスワードのリストが 1 行ごとに表示されるはずです。このパスワードリストは、後のステップで Hydra を実行する際に、ステップ 1 のユーザー名リストと組み合わせて使用されます。両方のファイルが適切にフォーマットされていることで、Hydra は攻撃中にすべての可能なユーザー名とパスワードの組み合わせをシステマティックにテストすることができます。
一般的な認証情報でリストを編集する
このステップでは、前のステップで作成したユーザー名リストとパスワードリストに、認証システムで頻繁に使用される一般的な認証情報を追加して拡充します。これらの追加は重要です。なぜなら、実際のシステムには多くの場合、ブルートフォース攻撃に対して脆弱なデフォルトまたは一般的に使用される認証情報が存在するからです。
- まず、認証情報ファイルが保存されている正しい作業ディレクトリにいることを確認します。これにより、すべての編集が正しい場所で行われます。
cd ~/project
- nano テキストエディタを使用して、ユーザー名リストを編集用に開きます。nano は初心者に最適なシンプルなコマンドラインエディタです。
nano usernames.txt
- 既存のリストに以下の追加の一般的なユーザー名を追加します。これらは多くのシステムで使用される典型的なデフォルトアカウントであり、テストに適しています。
sysadmin
webmaster
support
backup
oracle
mysql
Ctrl+O(書き出し)を押してファイルを保存し、Enterを押して確認し、最後にCtrl+Xを押して nano を終了します。これらのキーボードショートカットは、コマンドラインエディタで作業する際に不可欠です。同じ手順でパスワードリストを編集用に開きます。
nano passwords.txt
- 既存のリストに以下の追加の一般的なパスワードを追加します。これらはユーザーが頻繁に選択する弱いパスワードであり、テストに含めることが重要です。
letmein
welcome
password1
123123
12345
111111
同じ方法でパスワードファイルを保存します。
Ctrl+O、Enter、そしてCtrl+Xの順に押します。両方のファイルの内容を表示することで、更新された認証情報が含まれていることを確認します。
&& echo "---"の部分は、表示する際に 2 つのファイルの間に視覚的な区切りを追加します。
cat usernames.txt && echo "---" && cat passwords.txt
両方のリストにより包括的な認証情報のセットが含まれていることが確認できるはずです。これらの拡充されたリストは、Hydra を使って認証システムをテストする際に、実際のシナリオでよく見られるデフォルトのシステムアカウントと一般的に使用される弱いパスワードの両方を含んでいるため、より広範なカバレッジを提供します。
リストをアクセス可能なディレクトリに保存する
このステップでは、専用のディレクトリを作成し、正しいファイルパーミッションを設定することで、Hydra 攻撃用の認証情報リストを適切に整理する方法を学びます。これは、Hydra がパスワードクラッキング試行中にこれらのファイルにアクセスできる必要があるため重要です。
- まず、まだそこにいない場合は、プロジェクトディレクトリに移動します。これにより、すべてのファイルが 1 つの場所に整理されます。
cd ~/project
- 認証情報ファイルを保存するための
hydra_listsという名前の新しいディレクトリを作成します。別々のディレクトリを使用することで、作業スペースが整理され、ファイルが見つけやすくなります。
mkdir hydra_lists
- ユーザー名ファイルとパスワードファイルの両方をこの新しいディレクトリに移動します。
mvコマンドは、ファイルを現在の場所から新しいディレクトリに物理的に移動します。
mv usernames.txt passwords.txt hydra_lists/
- ディレクトリの内容を一覧表示することで、ファイルが正常に移動されたことを確認します。
-lフラグは、ファイルパーミッションを含む詳細情報を表示します。
ls -l hydra_lists/
usernames.txt と passwords.txt の両方がパーミッションとともに表示されるはずです。
- Hydra がこれらのファイルを読み取れるように、適切なパーミッションを設定します。
644のパーミッションは、所有者が読み書きでき、その他のユーザーは読み取りのみ可能であることを意味します。
chmod 644 hydra_lists/*
- 再度ディレクトリを確認することで、パーミッションが正しいことを確認します。
-rw-r--r--のパーミッション文字列は、ファイルが適切に設定されていることを示します。
ls -l hydra_lists/
出力には、両方のファイルに -rw-r--r-- が表示されるはずです。これは、すべてのユーザーが読み取り可能で、所有者のみが書き込み可能であることを意味し、Hydra 攻撃で使用する認証情報ファイルに最適なパーミッション設定です。
Hydra でファイルが読み込まれることを確認する
この最後のステップでは、Hydra が前のステップで作成した認証情報ファイルを適切に読み取り、処理できることを確認します。これは、実際の攻撃を開始する前の重要なチェックです。ユーザー名とパスワードのリストが正しくフォーマットされ、Hydra がアクセスできることを保証するためです。
- まず、認証情報ファイルが保存されている正しい作業ディレクトリにいることを確認します。これは、Hydra がユーザー名とパスワードのリストをどこで見つけるかを知る必要があるため、重要です。
cd ~/project
- 次に、詳細出力を得るために
-Vフラグを使用して、Hydra をテストモードで実行します。このコマンドは、Hydra に以下のことを指示します。- ユーザー名リストを使用する (
-L hydra_lists/usernames.txt) - パスワードリストを使用する (
-P hydra_lists/passwords.txt) - ローカルホストの SSH サービスに対してテストを行う
- テスト目的でスレッドを 1 つだけ使用する (
-t 1)
- ユーザー名リストを使用する (
hydra -L hydra_lists/usernames.txt -P hydra_lists/passwords.txt -V -t 1 localhost ssh
- コマンドが正常に実行されると、次のような出力が表示されます。ここで重要な情報は、"login tries" のカウントです。これは、Hydra が両方のファイルを読み取ったことを確認します。
Hydra v9.2 (c) 2022 by van Hauser/THC & David Maciejak
[DATA] max 1 task per 1 server, overall 1 task, 42 login tries (l:6/p:7), ~42 tries per task
[DATA] attacking ssh://localhost:22/
[VERBOSE] Resolving addresses ... done
出力を確認した後、
Ctrl+Cを押してテストを停止します。ファイルの読み込みをテストしているだけなので、完了まで待つ必要はありません。両方のファイルが適切に読み取られたことを確認するには、出力に表示されるログイン試行回数を確認します。この数は、リスト内のユーザー名の数にパスワードの数を掛けたものに等しくなるはずです。たとえば、ユーザー名が 6 個でパスワードが 7 個の場合、42 回のログイン試行が表示されるはずです (6×7 = 42)。この乗算により、Hydra がファイルからすべての可能な認証情報のペアを正しく組み合わせていることが確認されます。
まとめ
この実験では、Linux でテキストファイルを作成し管理することで、Hydra 攻撃用のユーザー名とパスワードのリストを準備する方法を学びました。演習では、nano を使用して usernames.txt と passwords.txt を作成し、一般的な認証情報を入力し、cat コマンドで内容を確認する方法を扱いました。
また、ディレクトリの移動、テキスト編集、ファイルの検証などの基本的な Linux ファイル操作を練習しました。これらのスキルは、効果的なブルートフォース攻撃を設定するための基礎を形成します。適切にフォーマットされた認証情報リストは、Hydra のセキュリティテスト機能にとって重要です。


