Fluxion 用カスタム HTML ログインページの作成

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

はじめに

Fluxion は、強力なセキュリティ監査およびソーシャルエンジニアリング研究ツールです。その最もよく知られた機能の 1 つは、偽の Wi-Fi アクセスポイントとログインページを作成して認証情報をキャプチャする Captive Portal 攻撃です。Fluxion にはいくつかの組み込みログインページが用意されていますが、カスタムページを作成することで、ソーシャルエンジニアリングの試みをより説得力があり、特定のターゲットに合わせたものにすることができます。

この実験 (lab) では、カスタム HTML ログインページを作成し、それを Fluxion に統合する手順を段階的に学びます。Fluxion のディレクトリ構造をナビゲートし、新しいサイトを作成し、基本的な HTML ログインフォームを作成し、Fluxion バックエンドと正しく通信するようにします。

「attacks/Captive Portal/sites」に移動する

このステップでは、Fluxion がキャプティブポータルテンプレートを保存しているディレクトリに移動します。このディレクトリ構造を理解することが、独自のカスタムページを追加するための最初のステップです。すべての操作は ~/project ディレクトリから開始します。

まず、セットアッププロセス中にクローンされた fluxion ディレクトリに移動しましょう。

cd ~/project/fluxion

次に、ディレクトリ構造をさらに深く移動して、キャプティブポータルサイトを見つけます。

cd attacks/Captive\ Portal/sites/

ディレクトリ名 Captive Portal のスペースをエスケープするためにバックスラッシュ \ が使用されていることに注意してください。

最後に、このディレクトリの内容を一覧表示して、既存のポータルテンプレートを確認します。これにより、それらがどのように整理されているかのアイデアが得られます。

ls -l

各ディレクトリが異なるログインページテンプレートを表すリストが表示されるはずです。

total 80
drwxr-xr-x 2 labex labex 4096 Dec 12 12:00 ASUS_dark_desktop
drwxr-xr-x 2 labex labex 4096 Dec 12 12:00 Brand_Generic_Alternative_Login_EN
drwxr-xr-x 2 labex labex 4096 Dec 12 12:00 Brand_Generic_Login_EN
drwxr-xr-x 2 labex labex 4096 Dec 12 12:00 D-Link_EN
drwxr-xr-x 2 labex labex 4096 Dec 12 12:00 Linksys_EN
... (その他多数)

これで、独自のポータルを作成するための正しい場所にいます。

カスタムポータルのための新しいディレクトリを作成する

このステップでは、新しいカスタムポータルのための専用ディレクトリを作成します。Fluxion は、sites フォルダ内のディレクトリをスキャンすることで、利用可能なポータルを識別します。各ディレクトリは、有効なポータルとして認識されるために index.html ファイルを含む必要があります。

現在の場所(~/project/fluxion/attacks/Captive Portal/sites/)から、mkdir コマンドを使用して新しいディレクトリを作成します。ここでは MyCustomPortal という名前にしましょう。

mkdir MyCustomPortal

ディレクトリを作成した後、sites ディレクトリの内容を再度一覧表示することで、それが存在することを確認できます。

ls

他のポータルディレクトリの中に MyCustomPortal が表示されるはずです。

ASUS_dark_desktop
Brand_Generic_Alternative_Login_EN
Brand_Generic_Login_EN
...
MyCustomPortal
...

この新しいディレクトリには、メインの index.html ファイルから始まる、カスタムログインページすべてのファイルが格納されます。

ログインフォームを含む「index.html」ファイルを作成する

このステップでは、ポータルのコアファイルである index.html を作成します。このファイルには、ユーザーに提示されるシンプルなログインフォームの HTML 構造が含まれます。

まず、新しく作成したディレクトリに移動します。

cd MyCustomPortal

次に、nano テキストエディタを使用して index.html ファイルを作成および編集します。

nano index.html

nano エディタ内で、以下の基本的な HTML コードを貼り付けます。このコードは、タイトル、ヘッダー、およびパスワードフィールドと送信ボタンを備えたフォームを持つシンプルなページを作成します。

<!DOCTYPE html>
<html>
  <head>
    <title>Network Login</title>
  </head>
  <body>
    <h1>Please log in to continue</h1>
    <form>
      <p>Password:</p>
      <input type="password" name="pass" />
      <br /><br />
      <input type="submit" value="Login" />
    </form>
  </body>
</html>

コードを貼り付けたら、Ctrl+X、次に Y、最後に Enter を押してファイルを保存し、nano を終了します。

これで、ログインページのビジュアル部分が作成されました。次のステップでは、キャプチャされたデータを Fluxion に正しく送信するように設定します。

フォームが「/login」に POST するようにする

このステップでは、HTML フォームを修正して、Fluxion バックエンドと正しく通信するようにします。Fluxion が認証情報を傍受するためには、フォームは特定のパス(/login)に特定のメソッド(POST)を使用してデータを送信する必要があります。

nanoindex.html ファイルを再度開きます。

nano index.html

<form> タグを見つけます。このタグに method="POST"action="/login" の 2 つの属性を追加する必要があります。method="POST" 属性は、ブラウザに HTTP リクエストのボディでフォームデータを送信するように指示し、action="/login" はデータが送信されるべきエンドポイントを指定します。Fluxion の Web サーバーは、このエンドポイントで認証情報をキャプチャするためにリッスンしています。

index.html ファイルを以下のように変更します。

<!DOCTYPE html>
<html>
  <head>
    <title>Network Login</title>
  </head>
  <body>
    <h1>Please log in to continue</h1>
    <form method="POST" action="/login">
      <p>Password:</p>
      <input type="password" name="pass" />
      <br /><br />
      <input type="submit" value="Login" />
    </form>
  </body>
</html>

<form> タグの変更点に注意してください。入力フィールドの name="pass" 属性も重要です。これは、Fluxion が送信されたパスワードを識別するために使用するキーです。

ファイルを保存し、nano を終了します(Ctrl+XYEnter)。これで、カスタムポータルの機能が完成し、Fluxion で使用する準備が整いました。

Fluxion を再起動し、カスタムポータルを選択する

この最終ステップでは、Fluxion を起動して、新しく作成したカスタムポータルが認識されていることを確認します。

まず、メインの fluxion ディレクトリに戻ります。

cd ~/project/fluxion

次に、sudo 権限でメインの Fluxion スクリプトを実行します。ネットワーク操作には管理者権限が必要です。

sudo ./fluxion.sh

初回実行時、Fluxion は依存関係のチェックを行う場合があります。不足しているツールをインストールするように求められた場合は、Enter を押して続行してください。チェックが完了すると、メインメニューが表示されます。

  1. 言語を選択します(例:英語の場合は 1 を入力)。
  2. 攻撃メニューから Captive Portal を選択します。

Fluxion は attacks/Captive Portal/sites/ ディレクトリをスキャンし、利用可能なポータルのリストを表示します。このリストをスクロールすると、MyCustomPortal がオプションの 1 つとして表示されるはずです。

それを選択して、正常に動作することを確認できます。これは物理的な無線カードを持たない仮想環境であるため、攻撃を完了することはできませんが、ポータルがリストに表示されることで、正常に統合されたことを確認できます。

いつでも Ctrl+C を押して Fluxion を終了できます。

まとめ

おめでとうございます!Fluxion にカスタム HTML ログインページを作成し、統合することに成功しました。

この実験では、以下の方法を学びました。

  • Fluxion の内部ディレクトリ構造をナビゲートして、キャプティブポータルサイトを見つける方法。
  • カスタムポータルファイルを格納するための新しいディレクトリを作成する方法。
  • ログインフォームを含む基本的な index.html ファイルを作成する方法。
  • フォームを /login エンドポイントにデータを POST するようにクリティカルに設定し、Fluxion が認証情報をキャプチャできるようにする方法。
  • Fluxion を起動し、カスタムポータルが認識され、キャプティブポータル攻撃で使用可能であることを確認する方法。

このスキルにより、セキュリティ評価のために、よりターゲットを絞った説得力のあるログインページを作成することができ、ソーシャルエンジニアリングのエンゲージメントの潜在的な有効性を大幅に高めることができます。CSS でスタイリングを追加したり、JavaScript で動的なコンテンツを追加したりすることで、さらにページを強化することができます。