この記事では、WiFiネットワークでAppleデバイスのMiTMを実装する方法について説明します。 この記事を読む前に、 最初と2番目のパートを読むことを強くお勧めします。
制限は同じです:
- 攻撃されたアクセスポイントに接続する必要があります。
- ネットワーク上のブロードキャストトラフィックを聞くことができるはずです。
結局のところ、macOSとiOSはDHCPを介してネットワーク設定を取得するという点で誰よりも優れていました 。 これらのオペレーティングシステムがDHCPREQUESTを送信すると、DHCPサーバーはDHCPACKで応答し、サーバーの応答からネットワーク設定を設定します。 これまでのところ、すべてが他のすべての人のようです:

ただし、問題は、 DHCPREQUESTブロードキャストと攻撃者は、 通常 、特別な問題なしに彼を傍受し、 xidおよびchaddrフィールドを抽出して正しいDHCPACKを形成できることです。 しかし、攻撃者はもちろん、正当なDHCPサーバーよりも遅れてDHCPACKを送信します 。つまり、彼の答えは2番目になります。 他のOS上の他のすべてのDHCPクライアントは、2番目のDHCPACKを単に無視しますが、macOSおよびiOSは無視しません。
これらのオペレーティングシステムはどのようなネットワーク設定を公開していますか? 回答 :2番目のDHCPACK(攻撃者のDHCPACK)に含まれる設定。

macOS上のDHCPクライアントのバグのビデオデモ:
このバグや機能はありますか? 私はバグを考えて、もし念のためにApple Bug Reporterのアプリケーションを1か月以上作成しましたが、Appleの専門家からのコメントはまだありません。

Apple Bug Reporterのアプリケーションに留まらず、product-security @ apple.comに手紙を書きました

Appleの専門家は決して迅速ではありませんでしたが、彼らのDHCPクライアントはRFC 2131に従って動作すると答え、発言しました。つまり、これはまったくバグではなく、機能です。 私にはすべてがあります。

あとがき
最も怠 Forな人のために 、私はスクリプトapple_wifi_mitmer.pyを準備しました 。これは、Wi-Fiネットワーク上のすべてのAppleデバイスを自動的に検出し、それらの認証を解除してMiTMを生成します。
スクリプトの引数では、調査中のWi-Fiネットワークに既に接続されているワイヤレスインターフェイスの名前と、認証解除パケットを送信するための別のワイヤレスインターフェイスを指定するだけです。
apple_wifi_mitmer.pyスクリプトのビデオデモ:
新しいiOS 11で動作しますか? 回答: はい、動作します。