Bash スクリプトで Fluxion の起動を自動化する

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

はじめに

Fluxion は、セキュリティ監査およびソーシャルエンジニアリングの研究ツールです。効果的に使用するには、通常、競合するプロセスを終了させたり、ワイヤレスアダプターでモニターモードを有効にしたりといった一連のセットアップコマンドを実行してから、メインアプリケーションを起動する必要があります。これらのコマンドを毎回繰り返すのは手間がかかります。

この実験では、単純な Bash スクリプトを作成して、この起動シーケンス全体を自動化する方法を学びます。このスクリプトは、必要なコマンドをすべて順番に実行し、単一のコマンドで Fluxion を起動できるようにします。これは、Linux における反復タスクの自動化とワークフローの改善のための基本的なスキルです。

この実験では、シミュレートされた fluxion.sh スクリプトを使用し、wlan0 という名前のワイヤレスインターフェースが存在すると仮定します。

'start_fluxion.sh' という名前の新しいファイルを作成する

このステップでは、自動化コマンドを含む Bash スクリプトファイルを作成します。このファイル名は start_fluxion.sh とします。すべての作業は、デフォルトの ~/project ディレクトリで行います。

touch コマンドを使用して空のファイルを作成できます。このコマンドは、ファイルのアクセス時刻と更新時刻を更新するか、ファイルが存在しない場合は作成します。

スクリプトファイルを作成するには、ターミナルで次のコマンドを実行します。

touch start_fluxion.sh

コマンドを実行した後、ls でディレクトリの内容を一覧表示して、ファイルが作成されたことを確認できます。

ls

出力に start_fluxion.sh が表示されるはずです。

fluxion  start_fluxion.sh

モニターモードを有効にするコマンドを追加する

このステップでは、スクリプトに最初のコマンドを追加します。Bash スクリプトは常に「シェバン」(#!)行で始まる必要があります。これは、システムがスクリプトを実行するために使用するインタープリターを指示します。Bash スクリプトの場合、これは #!/bin/bash です。

シェバンに続いて、ワイヤレスインターフェースを準備するためのコマンドを追加します。Fluxion のようなツールでは、近くのすべての Wi-Fi トラフィックをキャプチャするために、ワイヤレスカードを「モニターモード」にする必要があります。airmon-ng ユーティリティが一般的に使用されます。次の 2 つのコマンドを追加します。

  1. sudo airmon-ng check kill: プロセスに干渉する可能性のあるネットワークサービスを停止します。
  2. sudo airmon-ng start wlan0: ワイヤレスインターフェース(ここでは仮説上の wlan0 を使用します)をモニターモードにします。

これらのコマンドは root 権限を必要とするため、sudo を使用します。

nano テキストエディタで start_fluxion.sh ファイルを開きます。

nano start_fluxion.sh

次に、ファイルに次の内容を追加します。

#!/bin/bash

## Prepare the wireless interface
echo "Stopping conflicting processes..."
sudo airmon-ng check kill

echo "Starting monitor mode on wlan0..."
sudo airmon-ng start wlan0

Ctrl+X を押して nano を終了し、次に Y を押して変更を保存することを確認し、最後に Enter を押して同じ名前でファイルを保存します。

'fluxion.sh' を起動するコマンドを追加する

このステップでは、スクリプトに最後のコマンド、つまり Fluxion アプリケーションを実際に起動するコマンドを追加します。

シミュレートされた fluxion.sh スクリプトは fluxion ディレクトリ内にあります。start_fluxion.sh スクリプト(~/project にある)から、Fluxion スクリプトへの相対パスは fluxion/fluxion.sh です。実行可能なスクリプトであるため、現在のディレクトリコンテキストを指定するために ./ を使用して呼び出す必要があります。

再度 nano でスクリプトを開きます。

nano start_fluxion.sh

ファイルの末尾に Fluxion スクリプトを実行するコマンドを追加します。これで、スクリプト全体は次のようになります。

#!/bin/bash

## Prepare the wireless interface
echo "Stopping conflicting processes..."
sudo airmon-ng check kill

echo "Starting monitor mode on wlan0..."
sudo airmon-ng start wlan0

## Launch Fluxion
echo "Launching Fluxion..."
./fluxion/fluxion.sh

Ctrl+X、次に Y、そして Enter を押してファイルを保存し、nano を終了します。これで自動化スクリプトは完成です。

スクリプトを 'chmod +x' で実行可能にする

このステップでは、スクリプトを実行可能にします。Linux では、ファイルをプログラムとして実行する前に「実行」権限を付与する必要があります。この権限は chmod (change mode) コマンドを使用して追加できます。

+x フラグは、chmod に対してユーザー、グループ、およびその他の実行権限を追加するように指示します。

start_fluxion.sh スクリプトを実行可能にするには、次のコマンドを実行します。

chmod +x start_fluxion.sh

ls -l コマンドを使用して、権限の変更を確認できます。このコマンドは詳細なリストを提供します。

ls -l start_fluxion.sh

出力の権限ブロックにある x 文字に注目してください。これは、ファイルが実行可能になったことを示しています。

-rwxr-xr-x 1 labex labex 218 Dec 10 12:00 start_fluxion.sh

スクリプトを実行してプロセス全体を開始する

最終ステップでは、新しく作成した自動化スクリプトを実行します。スクリプトは実行可能になったため、シェルに現在のディレクトリでファイルを探すように指示する ./ をファイル名の前に付けて、ターミナルから実行できます。

スクリプト内のコマンドの一部(airmon-ng)は管理者権限を必要とするため、スクリプト全体を sudo を使用して実行する必要があります。

次のコマンドでスクリプトを実行します。

sudo ./start_fluxion.sh

スクリプトは、追加したすべてのコマンドを一つずつ実行します。各コマンドからの出力が表示され、シミュレートされた Fluxion の起動メッセージも含まれます。

期待される出力:

Stopping conflicting processes...
Found 2 processes that could cause trouble.
Kill them using 'airmon-ng check kill'? (y/n)
Killing all those processes...

Starting monitor mode on wlan0...
(mac80211 monitor mode vif enabled for [phy0]wlan0 on [phy0]wlan0mon)
(mac80211 station mode vif disabled for [phy0]wlan0)

Launching Fluxion...
Fluxion is starting...
Welcome to Fluxion!
The tool has launched successfully.

注:airmon-ng の出力は若干異なる場合がありますが、シミュレートされた Fluxion スクリプトからの最終メッセージが表示されるはずです。

おめでとうございます!Fluxion の起動プロセスを正常に自動化できました。

まとめ

この実験では、Fluxion の起動プロセスを自動化する Bash スクリプトを作成しました。複数のコマンドを単一の実行可能ファイルにまとめる方法を学びましたが、これはあらゆる Linux ユーザーにとって基本的なスキルです。

以下のいくつかの基本的なコマンドと概念を練習しました。

  • touch: 新しい空のファイルを作成します。
  • nano: スクリプトの内容を編集します。
  • #!/bin/bash: Bash インタープリターを指定するために使用されるシェバンです。
  • chmod +x: スクリプトを実行可能にします。
  • sudo: 管理者権限でコマンドを実行します。
  • ./script_name.sh: 現在のディレクトリにあるスクリプトを実行するための標準的な方法です。

このシンプルな自動化を構築することで、コマンドライン作業をより効率的かつ強力にするための素晴らしい第一歩を踏み出しました。