はじめに
Fluxion は、人気の高いセキュリティ監査およびソーシャルエンジニアリング研究ツールです。偽の Wi-Fi アクセスポイントとキャプティブポータルを作成して認証情報をキャプチャするプロセスを自動化します。デフォルトでは、Fluxion は DNS サービスにプリコンフィギュレーションされたアップストリーム DNS サーバー(Google の 8.8.8.8 など)を使用します。
一部のシナリオでは、このデフォルトの DNS サーバーを変更したい場合があります。たとえば、より高速なサーバー、特定のフィルタリング機能を持つサーバー、または自分で制御するカスタム DNS サーバーを使用したい場合があります。
この実験 (lab) では、メインの Fluxion スクリプト内で dnsmasq の設定を見つけて変更し、アップストリーム DNS サーバーのアドレスを変更する方法を学びます。
'fluxion/lib/fluxion.sh' への移動
このステップでは、メインの Fluxion スクリプトが含まれるディレクトリに移動します。Fluxion のコアロジックと設定はシェルスクリプトに格納されています。変更する必要がある主要なスクリプトは fluxion.sh で、これは lib ディレクトリ内にあります。
まず、cd (change directory) コマンドを使用して fluxion/lib ディレクトリに移動します。必要なファイルはすべて ~/project ディレクトリに既にクローンされています。
cd ~/project/fluxion/lib
次に、ls コマンドを使用して現在のディレクトリのファイルを一覧表示し、fluxion.sh が存在することを確認します。
ls
一覧表示されたファイルの中に fluxion.sh が表示されるはずです。
controller.sh fluxion.sh installer.sh parser.sh prober.sh scanner.sh
テキストエディタでスクリプトを開く
このステップでは、コマンドラインテキストエディタを使用して fluxion.sh スクリプトを開きます。ここでは、LabEx 環境で利用可能なシンプルで使いやすいエディタである nano を使用します。
以下のコマンドを実行して、nano で fluxion.sh を開きます。
nano fluxion.sh
ターミナルに、nano エディタ内でスクリプトの内容が表示されます。矢印キーを使用してファイルをナビゲートできます。次のステップで、関連する設定セクションを検索します。
参考までに、基本的な nano コマンドをいくつか紹介します。
Ctrl + W: テキストを検索します。Ctrl + X: エディタを終了します。
'dnsmasq' の設定セクションを検索する
スクリプトが nano で開かれたので、dnsmasq が設定されているセクションを見つける必要があります。Fluxion は dnsmasq を使用して、偽のアクセスポイント用の DNS サーバーを実行し、すべてのトラフィックをキャプティブポータルページにリダイレクトします。
- エディタの下部にある検索プロンプトを開くには、
Ctrl + Wを押します。 dnsmasqと入力してEnterを押します。
これにより、dnsmasq という単語の最初の出現箇所に移動します。dnsmasq サービスを開始するコードブロックを探しています。以下のスニペットに似たものになります。アップストリーム DNS サーバーを指定する --server オプションに注意してください。
...
## Start the DNS server (dnsmasq)
"$FLUXION_LIB_DIR/controller.sh" dnsmasq start "$interface" \
"$gateway" "$portal_address" "$channel" "$essid" &> /dev/null &
...
実際に実行されているコマンドは controller.sh スクリプト内にあり、そのスクリプトは dnsmasq コマンドとそのパラメータを含む関数を呼び出します。変更する必要がある行は、--server パラメータが定義されている箇所です。dnsmasq 起動コマンドを定義する関数、つまり --server=8.8.8.8 という行を含む関数を見つけるまで、必要に応じて検索を続けてください。
アップストリーム DNS サーバーアドレスの変更
このステップでは、DNS サーバーアドレスを変更します。dnsmasq の --server オプションを含む行を見つけたはずです。デフォルトでは、Google のパブリック DNS サーバーである 8.8.8.8 に設定されています。
これを Cloudflare のパブリック DNS サーバーである 1.1.1.1 に変更します。
矢印キーを使用して、以下の行に移動します。
--server=8.8.8.8 \
これを以下のように変更します。
--server=1.1.1.1 \
変更後、ファイルを保存して nano を終了する必要があります。
- 終了するには
Ctrl + Xを押します。 nanoは変更されたバッファを保存するかどうか尋ねます。Y(Yes) を押します。- 次に
nanoは書き込むファイル名を尋ねます。デフォルトはfluxion.shで、これは正しいです。確認するためにEnterを押します。
これでスクリプトの変更が正常に完了しました。
攻撃の再開と DNS 解決のテスト
実際のシナリオでは、次のステップは Fluxion 攻撃を再開することになります。偽のアクセスポイントは、新しく設定した DNS サーバー (1.1.1.1) をすべてのアップストリーム DNS クエリに使用します。
この実験環境では、完全な Wi-Fi 攻撃を開始することはできません。しかし、変更によってスクリプトの構文が壊れていないことを確認するために、簡単なチェックを実行できます。これは、--help フラグを付けてスクリプトを実行することで行います。
まず、メインの fluxion ディレクトリに戻ります。
cd ~/project/fluxion
次に、スクリプトを実行します。Fluxion は多くの操作で root 権限を必要とするため、sudo を使用する必要があります。
sudo ./fluxion.sh --help
スクリプトが構文的に正しい場合、ヘルプメニューが表示され、変更後も実行可能であることが確認できます。
fluxion 6.8 (rev. 20210101)
usage: fluxion.sh [-i] [-k] [-d] [-h] [-v]
options:
-i, --install Install dependencies.
-k, --check-karma Check if karma patch is applied.
-d, --debug Enable debug mode.
-h, --help Print this help screen.
-v, --version Print version and exit.
これにより、変更が成功し、エラーが発生していないことが確認できます。
まとめ
この実験では、Fluxion ツールのコアスクリプトを変更し、その動作をカスタマイズすることに成功しました。
以下のことを学びました。
- プロジェクトのディレクトリ構造をナビゲートして、主要な設定ファイルを見つける方法。
- コマンドラインテキストエディタ (
nano) を使用して、シェルスクリプトを表示および編集する方法。 - 特定の設定、この場合は
dnsmasqサービスの設定を見つける方法。 - アップストリーム DNS サーバーをデフォルトの
8.8.8.8から1.1.1.1に変更する方法。 - 変更後にスクリプトが引き続き機能することを確認するために、基本的な構文チェックを実行する方法。
このスキルは、セキュリティツールをカスタマイズし、特定のテスト要件やネットワーク条件に合わせて適応させる上で非常に役立ちます。
