実際に使える辞書攻撃ツール:CeWLとGoBusterを使った攻撃手法
前回の記事では辞書攻撃の概要や、辞書攻撃を実行するために使われるツールについて触れました。今回は実際に辞書攻撃のツールを使用して、どのように攻撃が行われるのか、具体的な流れを見ていきます。特に、CeWL(カスタムワードリスト生成ツール)とGoBuster(ディレクトリ・ファイル列挙ツール)を利用した攻撃手法に焦点を当て、その後のセキュリティ対策についても解説します。
CeWLの基本的な使用方法
CeWL(Custom Word List Generator)は、ターゲットのWebサイトから特定の単語を収集して、辞書攻撃に役立つカスタムリストを生成するツールです。これにより、攻撃者は対象のサイトに関連した単語(ブランド名、製品名、特定の用語など)を集め、より効率的な辞書攻撃を行うことができます。
使用例:
ターゲットサイトを指定する
例えば、https://example.comというサイトをターゲットにして、CeWLを使用して単語リストを生成します。コマンドは次のようになります:
cewl https://example.com -w custom_wordlist.txt
特定のディレクトリから単語を収集する
CeWLは、サイトのURLやメタデータ、ヘッダー情報などから単語を収集します。たとえば、以下のようにターゲットの特定のディレクトリから単語を集めることも可能です:
cewl https://example.com/blog -w blog_wordlist.txt
単語の長さや出現頻度をカスタマイズ
CeWLには、単語の長さや出現回数に基づいてフィルタリングするオプションがあります。たとえば、単語の長さが5文字以上で出現回数が3回以上の単語だけを抽出することができます。
cewl https://example.com -w filtered_wordlist.txt --min_length 5 --min_word_count 3
このようにして生成された辞書は、辞書攻撃ツール(例えば、John the RipperやHydra)で使用することができます。
GoBusterを使ったディレクトリ列挙
次に、GoBusterというツールを使って、Webサイトのディレクトリ列挙を行う方法を紹介します。GoBusterは、Webサーバー上で隠れているディレクトリやファイルを特定するために使用されるツールで、辞書攻撃に必要な情報を収集するために有効です。
使用例:
GoBusterを使って、ターゲットWebサイト上のディレクトリを列挙するには、以下のようなコマンドを実行します。
gobuster dir -u https://example.com -w /path/to/wordlist.txt
このコマンドでは、/path/to/wordlist.txtという辞書を使って、https://example.comの隠れたディレクトリやファイルを探します。これにより、攻撃者は対象サイトのURL構造を詳しく把握できるようになります。
実行結果の例:
/secret /admin /uploads
これらのディレクトリが存在する場合、それらにアクセスするためのパスワードが必要となる可能性があります。攻撃者はこれらのディレクトリやページに関連する単語を収集し、パスワード推測に利用します。
辞書攻撃によるパスワード推測の実際
CeWLやGoBusterで収集した単語リストを使って、実際に辞書攻撃を行います。以下のように、パスワード攻撃ツール(例えばHydraやJohn the Ripper)を使ってターゲットアカウントへのアクセスを試みます。
使用例:
Hydraを使用して辞書攻撃を実行する
例えば、HTTP認証のあるWebページに対して、CeWLで作成したcustom_wordlist.txtを使って辞書攻撃を試みる場合、以下のようなコマンドを使用します。
hydra -l admin -P custom_wordlist.txt https://example.com http-get
攻撃後のセキュリティ対策
攻撃者が辞書攻撃を成功させた場合、以下のようなセキュリティ対策を実施することでリスクを軽減できます。
1. 強力なパスワードを設定する
辞書攻撃を防ぐためには、推測されにくい強力なパスワードを設定することが最も重要です。特に、ランダムで複雑なパスワードを設定しましょう。パスワードは、英数字と記号を組み合わせ、できるだけ長いものを選びます。
2. 多要素認証(MFA)の導入
パスワードだけでなく、二段階認証(2FA)や多要素認証(MFA)を導入することで、辞書攻撃による不正アクセスを防止できます。MFAを有効にすれば、攻撃者がパスワードを推測できても、さらに追加の認証が求められるため、セキュリティが強化されます。
3. ログイン試行回数の制限
ログイン試行の回数を制限することで、辞書攻撃を大幅に遅延させることができます。一定回数以上のログイン失敗が発生した場合、アカウントを一時的にロックするように設定しましょう。
4. 侵入検知システム(IDS)の導入
辞書攻撃を早期に発見し、即座に対処できるようにするために、侵入検知システム(IDS)を導入しましょう。これにより、不審なアクティビティが検出された際に警告が送信されます。