Aircrack-ng を使った Kali Linux での無線攻撃

Kali LinuxBeginner
オンラインで実践に進む

はじめに

この実験(Lab)では、Kali Linux と Aircrack-ng ツールセットを使用して、LabEx VM 環境内でワイヤレスペネトレーションテストの基本を学びます。重点は、ワイヤレスネットワークのセキュリティを評価するための主要なテクニックを理解することです。ワイヤレスインターフェースでモニターモードを有効にし、WPA ハンドシェイクをキャプチャし、WPA キーをクラックし、結果をドキュメント化するために保存する練習を行います。初心者向けに設計されており、この実験(Lab)は、ワイヤレスセキュリティテストの基礎的なスキルを構築するための、制御された環境でのステップバイステップのガイダンスを提供します。ターミナルを開くと、Kali Linux コンテナのシェルに自動的に接続され、すぐに練習を開始できます。

無線テストに必要なツールのインストール

この最初のステップでは、LabEx VM 環境内の Kali Linux コンテナ内に、ワイヤレスペネトレーションテストに必要なツールをセットアップします。ターミナルを開くと自動的に Kali Linux コンテナのシェルに接続されるため、手動でコンテナを起動したり、シェルに入ったりする必要はありません。次のステップに必要な基本的なツールのインストールから始めましょう。

初心者の方には、Kali Linux がセキュリティテストのための強力なディストリビューションであることを理解しておくことが重要ですが、最小限のコンテナ設定ではすべてのツールがプリインストールされているわけではありません。ここでは、ワイヤレスネットワーク監査のためのツールスイートであるaircrack-ngをインストールします。これには、モニターモードを有効にするためのairmon-ng、パケットをキャプチャするためのairodump-ng、キーをクラックするためのaircrack-ngなどのユーティリティが含まれています。

ターミナルで次のコマンドを実行して、パッケージリストを更新し、aircrack-ngをインストールします。各コマンドの後に Enter キーを押して実行してください。

apt update
apt install -y aircrack-ng

これらのコマンドは、パッケージリポジトリを更新し、aircrack-ngスイートをインストールします。インストールにはしばらく時間がかかる場合がありますので、完了するまでお待ちください。

インストール後、aircrack-ngがインストールされていることをバージョンを確認して検証します。次のコマンドを入力し、Enter キーを押します。

aircrack-ng --version

期待される出力はaircrack-ngのバージョンを表示し、ツールが使用できる状態であることを確認します。これは次のようになります。

Aircrack-ng 1.7

このステップにより、ワイヤレステストに必要なすべてのツールが Kali Linux コンテナで利用可能になります。aircrack-ngをインストールすることにより、次のステップでモニターモードを有効にし、ワイヤレス通信をキャプチャするための環境が整いました。先に進む前に、インストールが正常に完了したことを確認してください。

無線インターフェースでのモニターモードの有効化

必要なツールをインストールしたので、Kali Linux コンテナ内のワイヤレスネットワークインターフェースでモニターモードを有効にすることに進みましょう。モニターモードは、ワイヤレスペネトレーションテストに不可欠です。これは、ワイヤレスカードがどのネットワークにも接続せずにネットワークトラフィックをキャプチャできるようにするためです。

初心者の方には、モニターモードを、ワイヤレスカードをパッシブリスナーに変えるようなものと考えてください。通常、「管理モード」では、カードは自分宛てのトラフィックのみをキャプチャします。モニターモードでは、近くのすべてのワイヤレストラフィックをキャプチャします。これは、aircrack-ngのようなツールがデータを分析し、脆弱性を特定するために不可欠です。

すでに Kali Linux コンテナのシェル内(ターミナルを開くと自動的に接続されます)にいるので、ワイヤレスインターフェースの特定から始めましょう。次のコマンドを入力し、Enter キーを押して、すべてのネットワークインターフェースを一覧表示します。

iwconfig

期待される出力は、ネットワークインターフェースのリストを表示します。通常wlan0または同様の名前のワイヤレスインターフェースを探します。この実験(Lab)環境では、インターフェースがwlan0であると仮定します。出力は次のようになります。

wlan0     IEEE 802.11  ESSID:off/any
          Mode:Managed  Access Point: Not-Associated   Tx-Power=20 dBm
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Power Management:off

次に、先ほどインストールしたaircrack-ngスイートの一部であるairmon-ngツールを使用して、wlan0インターフェースでモニターモードを有効にします。次のコマンドを実行し、Enter キーを押します。

airmon-ng start wlan0

期待される出力は、モニターモードが有効になっていることを示し、インターフェース名はwlan0monに変更される場合があります。これは次のようになります。

Interface wlan0 is now in monitor mode as wlan0mon.

干渉するプロセスに関する警告がある場合、ツールはそれらを kill することを提案する場合があります。この実験(Lab)環境では、簡単にするために、そのような競合は存在しないと仮定します。

最後に、次のコマンドを実行し、Enter キーを押して、モニターモードがアクティブであることを確認します。

iwconfig

期待される出力は、インターフェース(例:wlan0mon)がモニターモードになっていることを示します。これは次のようになります。

wlan0mon  IEEE 802.11  Mode:Monitor  Tx-Power=20 dBm
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Power Management:off

これにより、モニターモードが正常に有効になっていることが確認されます。これで、次のステップで WPA ハンドシェイクをキャプチャする前に、トラフィックをキャプチャするようにワイヤレスインターフェースが準備されました。先に進む前に、モードがMonitorに設定されていることを確認してください。

Airodump-ng を使用した WPA ハンドシェイクのキャプチャ

ワイヤレスインターフェースでモニターモードが有効になっているので、次のステップは、Kali Linux コンテナ内でairodump-ngツールを使用して WPA ハンドシェイクをキャプチャすることです。WPA ハンドシェイクは、デバイスが Wi-Fi ネットワークに接続するときに交換される一連のパケットであり、これをキャプチャすることで、後のステップでパスワードのクラッキングを試みることができます。

初心者の方には、WPA ハンドシェイクにはパスワードが直接含まれているのではなく、オフラインで分析してパスワードを推測できる暗号化されたデータが含まれていることを理解してください。このプロセスは、制御された実験(Lab)環境または実際のネットワークでの明示的な許可がある場合にのみ倫理的です。この実験(Lab)では、安全な設定でハンドシェイクをキャプチャすることをシミュレートします。

すでに Kali Linux コンテナのシェル内(ターミナルを開くと自動的に接続されます)にいるので、ワイヤレストラフィックのキャプチャを開始しましょう。次のコマンドを実行し、Enter キーを押して、wlan0monインターフェース上の近くのすべてのネットワークの監視を開始します。

airodump-ng wlan0mon

期待される出力は、近くの Wi-Fi ネットワークのライブテーブルを表示し、BSSID(アクセスポイント MAC アドレス)、ESSID(ネットワーク名)、CH(チャネル)、および暗号化タイプなどの詳細を示します。これは次のようになります。

CH  6 ][ Elapsed: 1 min ][ 2023-10-01 12:00

BSSID              PWR  Beacons    #Data, #/s  CH   MB   ENC  CIPHER  AUTH  ESSID
00:14:22:AB:CD:EF  -30       10        5    0   6   54   WPA2 CCMP   PSK   TestNetwork

数秒間実行してネットワークを観察し、Ctrl+Cを押して停止します。この実験(Lab)では、ESSIDTestNetworkBSSID00:14:22:AB:CD:EF、チャネル6で動作するターゲットネットワークを特定したと仮定します。

次に、この特定のネットワークのトラフィックをキャプチャして、WPA ハンドシェイクを取得することに焦点を当てます。次のコマンドを実行し、Enter キーを押して、ネットワークをターゲットにし、キャプチャしたデータを/rootディレクトリ内のhandshakeという名前のファイルに保存します。

airodump-ng --bssid 00:14:22:AB:CD:EF --channel 6 -w /root/handshake wlan0mon

このコマンドでは、--bssidはターゲットネットワークの MAC アドレスを指定し、--channelはリッスンするチャネルを設定し、-w /root/handshakeはデータをファイルに保存します。期待される出力は、ターゲットネットワークに固有のトラフィックを示します。ハンドシェイクがキャプチャされた場合、出力の右上隅に[ WPA handshake: 00:14:22:AB:CD:EF ]が表示される場合があります。この実験(Lab)では、数秒後にハンドシェイクがキャプチャされたと仮定します。Ctrl+Cを押してキャプチャを停止します。

キャプチャファイルが保存されたことを、/rootディレクトリの内容を一覧表示して確認します。次のコマンドを実行し、Enter キーを押します。

ls -l /root

期待される出力には、handshake-01.cap(または類似のもの)という名前のファイルが含まれているはずです。これは次のようになります。

-rw-r--r-- 1 root root 12345 Oct  1 12:05 handshake-01.cap

これにより、キャプチャされたデータが保存されたことが確認されます。これで、WPA ハンドシェイクを正常にキャプチャしました。これは、次のステップで WPA キーのクラッキングを試みるために使用されます。先に進む前に、ファイルが存在することを確認してください。

Aircrack-ng を使用した WPA キーのクラッキング

前のステップで WPA ハンドシェイクをキャプチャしたので、Kali Linux コンテナ内でaircrack-ngツールを使用して WPA キーのクラッキングを試す準備ができました。このプロセスには、正しいキーを見つけるために、キャプチャしたハンドシェイクデータに対して、ワードリストから潜在的なパスワードをテストすることが含まれます。

初心者の方には、WPA キーのクラッキングとは、ハンドシェイク内の暗号化されたデータと比較して、正しいパスワードを推測するために、可能なパスワードのリスト(ワードリストと呼ばれる)を使用することを意味します。これはオフラインプロセスであり、試行中にターゲットネットワークと対話しません。この実験(Lab)では、デモンストレーション目的で小さなサンプルワードリストを使用します。

すでに Kali Linux コンテナのシェル内(ターミナルを開くと自動的に接続されます)にいるので、/rootディレクトリに簡単なワードリストファイルを作成しましょう。次のコマンドを実行し、Enter キーを押してnanoエディタを開き、wordlist.txtという名前のファイルを作成します。

nano /root/wordlist.txt

nanoエディタで、次のサンプルパスワードを 1 行に 1 つずつ入力します。

password123
testwifi
admin123

Ctrl+O、次にEnterを押してファイルを書き込み、最後にCtrl+Xを押してnanoを終了してファイルを保存します。このアクションの出力はありませんが、ファイルが作成されました。

/rootディレクトリの内容を一覧表示して、ワードリストファイルが存在することを確認します。次のコマンドを実行し、Enter キーを押します。

ls -l /root

期待される出力には、次のようにwordlist.txtが含まれているはずです。

-rw-r--r-- 1 root root  30 Oct  1 12:10 wordlist.txt

次に、aircrack-ngを使用して、キャプチャしたハンドシェイクとワードリストで WPA キーのクラッキングを試みます。次のコマンドを実行し、Enter キーを押して、前のステップのBSSIDとファイルへのパスを使用します。

aircrack-ng -w /root/wordlist.txt -b 00:14:22:AB:CD:EF /root/handshake-01.cap

このコマンドでは、-wはワードリストファイルを指定し、-bはターゲットネットワークのBSSIDを指定し、最後の引数はハンドシェイクファイルへのパスです。期待される出力は、ツールがワードリストからパスワードをテストすることを示します。成功した場合、次のように、見つかったキーが表示されます。

KEY FOUND! [ testwifi ]

キーが見つからない場合は、すべてのパスワードが成功せずにテストされたことを示します。この実験(Lab)では、パスワードtestwifiが見つかったと仮定します。プロセスが完了するまでに数秒かかる場合があります。

これで、aircrack-ngを使用して WPA キーのクラッキングを試みました。次のステップでは、この結果をドキュメントのために保存します。先に進む前に、出力にキーが表示されていることを確認してください。

クラックされた WPA キーの保存

この最終ステップでは、前のステップでクラックした WPA キーを、Kali Linux コンテナ内のドキュメント目的でテキストファイルに保存します。キーを保存することで、調査結果の記録を確実に保持できます。これは、将来の参照やレポート作成のために、ペネトレーションテスト(侵入テスト)における優れたプラクティスです。

初心者の方には、クラックしたキーのような結果を文書化することは、作業を追跡するために重要です。このステップでは、キーと関連するネットワーク情報を保存するためのシンプルなテキストファイルを作成します。これは、ターミナルで基本的なファイル操作を使用する簡単なプロセスです。

すでに Kali Linux コンテナのシェル内(ターミナルを開くと自動的に接続されます)にいるので、キーを保存するために、/rootディレクトリにcracked_keys.txtという名前のファイルを作成しましょう。次のコマンドを実行し、Enter キーを押してnanoエディタを開きます。

nano /root/cracked_keys.txt

nanoエディタで、クラックしたキーに関する次の詳細を入力します。testwifiは、前のステップで見つかった実際のパスワード(異なる場合)に置き換えてください。

Network: TestNetwork
BSSID: 00:14:22:AB:CD:EF
Password: testwifi
Date: 2023-10-01

Ctrl+O、次にEnterを押してファイルを書き込み、最後にCtrl+Xを押してnanoを終了してファイルを保存します。このアクションの出力はありませんが、ファイルが作成されました。

/rootディレクトリの内容を一覧表示して、ファイルが保存されたことを確認します。次のコマンドを実行し、Enter キーを押します。

ls -l /root

期待される出力には、次のようにcracked_keys.txtが含まれているはずです。

-rw-r--r-- 1 root root  85 Oct  1 12:15 cracked_keys.txt

内容が正しいことを確認するために、次のコマンドを実行して Enter キーを押して、ファイルの内容を表示します。

cat /root/cracked_keys.txt

期待される出力には、次のように、入力したテキストが表示されます。

Network: TestNetwork
BSSID: 00:14:22:AB:CD:EF
Password: testwifi
Date: 2023-10-01

これにより、クラックしたキーが正常に保存されたことが確認されます。これで、調査結果を文書化するプロセスが完了しました。これにより、この実験(Lab)でのワイヤレスペネトレーションテスト(侵入テスト)のワークフローが終了します。終了する前に、ファイルの内容が正しいことを確認してください。

まとめ

この実験(Lab)では、Kali Linux と LabEx VM 環境の Aircrack-ng ツールセットを使用して、ワイヤレスペネトレーションテスト(侵入テスト)の基本的な手順を学びました。まず、aircrack-ngのような必須ツールをインストールし、次にワイヤレスインターフェースでモニターモードを有効にしてネットワークトラフィックをキャプチャしました。その後、WPA ハンドシェイクをキャプチャし、ワードリストを使用して WPA キーのクラッキングを試み、最後にクラックしたキーをドキュメントのために保存しました。これらの手順は、ワイヤレスセキュリティテストを理解し、制御された環境でそのような脆弱性からネットワークを保護することの重要性について、確固たる基盤を提供します。