はじめに
この実験では、ヘッドレス環境で Fluxion を実行する方法について説明します。Fluxion は、人気の高いセキュリティ監査およびソーシャルエンジニアリング研究ツールです。多くの場合、完了までにかなりの時間がかかるタスクに使用されます。
「ヘッドレス」環境とは、グラフィカルユーザーインターフェース(GUI)なしで動作するシステムであり、通常はネットワーク経由でリモート管理されます。リモートマシンで長時間タスクを実行する場合、ネットワーク接続が切断されると中断されるリスクがあります。
この実験では、SSH(Secure Shell)を使用してリモートアクセスを行い、tmux(ターミナルマルチプレクサ)を使用して永続的なセッションを作成する方法を学びます。このセットアップにより、Fluxion スキャンなどのタスクを開始し、リモートマシンから切断しても、タスクはバックグラウンドで実行を継続できます。後で再接続して進捗状況を確認できます。
このプロセス全体を LabEx 環境内でシミュレートします。まず Fluxion をインストールし、次に tmux を使用して Fluxion プロセスを管理する手順を説明します。
Kali Linux マシンへの SSH 接続
実際のシナリオでは、最初のステップは SSH クライアントを使用してローカルコンピューターからリモートサーバー(Kali Linux マシンまたはその他の Linux ディストリビューションである可能性があります)に接続することです。コマンドは ssh user@remote_ip_address のようになります。
この実験では、このプロセスをシミュレートします。現在使用しているターミナルは、サーバー上のリモートセッションを表します。必要なソフトウェアである Fluxion は、セットアップスクリプトによって既に ~/project/fluxion ディレクトリにダウンロードされています。
このステップでは、次のステップの準備として Fluxion ディレクトリに移動しましょう。
以下のコマンドを実行して、現在のディレクトリを変更します。
cd ~/project/fluxion
ls コマンドを実行して、正しいディレクトリにいることを確認できます。これにより、Fluxion リポジトリの内容が一覧表示されるはずです。
ls
CHANGELOG.md fluxion.sh README.md
CONTRIBUTORS.md install requirements.txt
docs LICENSE sites
files Makefile tmp
「tmux」または「screen」を使用して永続的なセッションを作成する
これでリモートマシン上に「接続」され、正しいディレクトリにいるので、永続的なセッションを作成する必要があります。これにより、このセッション内で実行するコマンドは、切断された場合でも実行を継続します。ここでは、強力なターミナルマルチプレクサである tmux を使用します。
このステップでは、fluxion_session という名前の新しい tmux セッションを作成します。この名前付きセッションは、識別しやすく、後で再アタッチできます。
以下のコマンドを実行して、新しい tmux セッションを開始します。
tmux new -s fluxion_session
このコマンドを実行すると、ターミナルはほとんど同じように見えますが、あなたは今 tmux セッション内に入っています。画面下部に緑色のステータスバーが表示され、tmux がアクティブであることを示します。ここで実行するコマンドはすべて、この永続的なセッション内で行われます。
tmux/screen セッション内から 'fluxion.sh' を起動する
永続的な tmux セッションがアクティブになったので、安全に Fluxion を起動できます。tmux 内にいるため、Fluxion プロセスは潜在的なネットワーク切断から保護されます。
ステップ 1 で既に ~/project/fluxion ディレクトリにいます。Fluxion のメイン実行ファイルは fluxion.sh スクリプトです。ネットワークインターフェースを管理し、攻撃ツールを実行するには root 権限が必要なため、sudo を付けて実行する必要があります。
Fluxion を開始するには、以下のコマンドを実行します。
sudo ./fluxion.sh
Fluxion が起動し、必要なツールのチェックを実行する場合があります。セットアップスクリプトでそれらをインストールしたため、直接メインメニューに進むはずです。最初に言語を選択するように求められます。
SSH ターミナル経由で通常通り攻撃を実行する
Fluxion が実行されたので、通常のターミナルと同じようにメニュー駆動インターフェースで操作できます。
まず、Fluxion は言語の選択を求めます。「1」と入力して Enter キーを押し、英語を選択します。
[#] Select your language:
[1] English
...
[*] Language> 1
次に、Fluxion はワイヤレスインターフェースをスキャンします。LabEx の仮想環境には物理的なワイヤレスハードウェアがありません。そのため、Fluxion は適切なインターフェースが見つからないと報告して終了します。これはこの実験では予期された動作です。
互換性のあるワイヤレスカードを搭載したマシンでの実際のシナリオでは、インターフェースのリスト(wlan0 など)が表示され、攻撃ベクトルを選択して進むことになります。
この実験の目標は、プログラムが実行されるのを確認することだけです。Fluxion がワイヤレスアダプターが見つからないというエラーを表示して終了した後、tmux セッション内のコマンドプロンプトに戻ります。ここで再度起動し、すぐに次のステップに進んで、実行中にデタッチする練習をします。
スクリプトを再度実行してください。
sudo ./fluxion.sh
言語選択メニューが表示されたら、次のステップに進むことができます。ここでは、長時間実行されるプロセスをシミュレートするために、このメニューで実行したままにしておきます。
セッションからデタッチし、攻撃をバックグラウンドで実行させる
これが最も重要なステップです。Fluxion が tmux セッション内で実行されている状態で、セッションから「デタッチ」できます。これにより、メインのターミナルに戻りますが、tmux セッション(およびその中の Fluxion)はバックグラウンドで実行を続けます。
tmux セッションからデタッチするには、以下のキーの組み合わせを押します。
Ctrl+b を押し、キーを離してから d (デタッチ用)を押します。
[detached (from session fluxion_session)] というメッセージが表示され、通常のシェルに戻ります。
セッションがまだ実行中であることをどのように確認できるでしょうか? tmux ls コマンドを使用して、すべてのアクティブな tmux セッションを一覧表示できます。
tmux ls
出力にセッションが表示されるはずです。
fluxion_session: 1 windows (created ...) [159x41]
これにより、Fluxion がバックグラウンドで実行され続けていることが確認できます。これで安全に SSH 接続を閉じることができ、プロセスは継続します。
セッションに戻ってステータスを確認するには、その名前を使用して「アタッチ」します。
tmux attach -t fluxion_session
セッションに即座に戻り、中断した場所で Fluxion の言語選択メニューが表示されます。実験を完了するには、Ctrl+C を押して Fluxion を終了し、次に exit と入力して Enter キーを押して tmux セッションを閉じます。
まとめ
この実験では、あらゆるリモートシステム管理者やペネトレーションテスターにとって重要なスキルである、ヘッドレス環境でプロセスを永続的に実行する方法を学びました。
以下のことを学びました。
- ヘッドレス環境の概念と、長時間実行されるタスクに永続的なセッションが必要な理由。
- リモート接続をシミュレートし、ファイルシステムを操作する方法。
tmuxを使用して新しい名前付きセッションを作成する方法 (tmux new -s)。tmuxセッション内から Fluxion のようなプログラムを起動する方法。- プロセスを実行したまま
tmuxセッションからデタッチするための主要なコマンド (Ctrl+b,d)。 - アクティブなセッションを一覧表示する方法 (
tmux ls) と、実行中のセッションに再アタッチして作業を再開する方法 (tmux attach -t)。
このテクニックは Fluxion に限定されません。リモートマシンで長期間実行する必要があるあらゆるコマンドラインツールやスクリプトに使用できます。
