
CVE-2022-47522の概念実証エクスプロイトで、非認証攻撃とMACアドレススプーフィングによるWi-Fiフレーム傍受を示し、HTTPおよびICMP応答をキャプチャします。
これは、Wi-Fiネットワーク上の任意のクライアントに送信されたフレームを傍受できる脆弱性です。
詳細な説明はここを参照してください。
注記: MITREの説明は不正確です。正確な詳細は上記のリンクを参照してください。
このリポジトリはそのリンクに基づいています。
現実に即したテスト環境として、被害者と攻撃者は別々のホスト上で実行します。
被害者と攻撃者を単一のホスト上で実行することも可能かもしれませんが、その場合、ワイヤレスネットワークインターフェースが3つ必要になり、コードと実行方法の変更も必要になる可能性があります。
以下のコマンドを実行してください(任意でPython venv内でも可):
pip install scapy==2.6.1 httpx==0.28.1
あるいは、victim.pyの代わりにping、curl、Webブラウザを使用することもできます。
以下のコマンドを実行してください:
cd macstealer/research
./build.sh
cd ../../attacker
./pysetup.sh
被害者がテスト対象のネットワークに接続されていることを確認してください。
被害者の接続のネットワーク設定に合わせて ./attacker/attacker.conf を編集してください。
不明な場合は、wpa_supplicant.confの設定方法を調べてください。
# attacker.conf
# Don't change this line, other MacStealer won't work
ctrl_interface=wpaspy_ctrl
network={
#Fill in properties of your network
key_mgmt=WPA-PSK
ssid="Your-SSID"
psk="Your-password"
}
両方のインターフェースを無視するようにNetworkManagerを設定する必要があります:
/etc/NetworkManager/NetworkManager.conf に以下の行を追加します:
[keyfile]
unmanaged-devices=interface-name:{iface};interface-name:{mon_iface}
以下のコマンドを実行して変更を適用します:
sudo systemctl restart NetworkManager
元に戻すには、追加した行を削除してNetworkManagerを再起動してください。
実行前にvenvをrootとしてアクティベートしてください:
cd attacker
sudo su
source venv/bin/activate
victim.pyを実行し、プロンプトに従って必要な情報を入力してください(デフォルト値を使用しても構いません)。
その後、Enterを押すたびに、ICMP Echo RequestとHTTP GET Requestが送信されます。
以下のコマンドを実行してください:
./attacker.py -i $iface -m $mon_iface -v $victimMAC
-i は攻撃者の管理インターフェースを指定し、
-m は攻撃者のモニターインターフェースを指定し、
-v は被害者のMACアドレスを指定します。
例:
./attacker.py -i wlan0 -m wlan1 -v a0:d3:65:2c:ed:71
実行すると、スクリプトは自動的に事前接続を確立し、攻撃の準備を行います。
攻撃の準備ができると、次のプロンプトが表示されます:
Press enter to start attack:
この時点で、リクエストを送信するためにまず被害者側でEnterを押し、その後すぐに攻撃者側でEnterを押して攻撃を開始します。
攻撃を成功させるには、両方の操作をほぼ同時に実行する必要があります。
ただし、被害者がリクエストを先に送信する必要があります。
注記:
- 接続時間が短いほど、攻撃の成功率が上がります。
- 私のテストでは、接続時間は約200msでしたが、APが予期せず接続を拒否し、接続時間が長くなることがありました。
- この場合は、タイムアウトを待つか、Ctrl+Cでプロセスを終了して再試行してください。
- 事前接続から再接続までの間隔が長いほど、失敗する可能性が高くなります。
- 攻撃を開始するには、できるだけ素早くEnterを押してください。
- 攻撃者の接続が安定しているのに攻撃が成功しない場合は、被害者がリクエストを送信するサーバーをより遠い場所に変更してみてください。
私は韓国にいるため、最も遠い地域の1つであるアルゼンチンのサーバーを選択しました。

HTTPレスポンスとICMPレスポンスが傍受されているか確認し、HTTPボディとICMPペイロードが正しく表示されていることを確認してください。
準備
Deauth攻撃
傍受