Watch

Mac OS XでMACアドレスを偽装する方法

Mac OS XでMACアドレスを偽装する方法

ターミナルMACアドレスはネットワークカードに割り当てられた固有の識別子であり、一部のネットワークではセキュリティ対策としてMACアドレスフィルタリングが実装されています。MACアドレスの偽装は様々な理由で望まれる場合があり、macOS Monterey 12、macOS Big Sur 11、macOS Catalina、macOS Mojave 10.14、macOS High Sierra、Sierra 10.12、El Capitan、Yosemite 10.10、Mac OS X 10.4、10.5、10.6、10.7、OS X 10.8、OS X 10.9ではMACアドレスの偽装が非常に容易です。この記事では、MacのワイヤレスMACアドレス、つまりWi-Fiカードを偽装することを想定しています。

では、早速、macOS と Mac OS X で MAC アドレスを偽装および変更する 3 つの手順を説明します。

1: 現在のネットワークインターフェースを取得する

一部の Mac では Wi-Fi に en0 を使用し、その他の Mac では en1 を使用します。OPTION キーを押しながら Wi-Fi メニュー項目をクリックしてインターフェイスを表示すると、Mac でどちらが使用されているかすぐに判断できます。

2: 現在のMACアドレスを取得する

再起動せずに設定を元に戻せるように、現在のワイヤレスMACアドレスが必要になります。ターミナルアプリを起動し、次のコマンドを入力してください。

ifconfig en1 | grep ether

次のようなものが表示されます:

ether 00:12:cb:c6:24:e2

「ether」の後の値が現在のMACアドレスになります。忘れないようにどこかに書き留めておきましょう。忘れてしまっても、世界が終わるわけではありません。変更をリセットするには、再起動するだけです。

注意: Mac の Wi-Fi カードが en0 または en1 にある可能性があるので、上記のようにネットワーク インターフェイスに応じて文字列を調整する必要がある場合があります。

MacOSでMACアドレスを偽装する

MACアドレスを偽装するには、ifconfigから返された値をaa:bb:cc:dd:ee:ff形式の16進数値に設定するだけです。必要に応じてランダムな値を生成することもできます。

この例では、次のコマンドを発行して、ワイヤレス MAC アドレスを 00:e2:e3:e4:e5:e6 に設定します。

sudo ifconfig en1 ether 00:e2:e3:e4:e5:e6

Wi-Fi インターフェースが en0 の場合、コマンドは次のようになります。

sudo ifconfig en0 ether xx:xx:xx:xx:xx:xx

sudo コマンドでは、変更を行うために root パスワードを入力する必要があります。

繰り返しになりますが、ネットワーク インターフェイスが正しく識別されていることを確認する必要があります。問題が発生した場合は、Wi-Fi が en1 または en0 を使用していることを確認してください。

偽装されたMACアドレスが機能したことを確認する

スプーフィングが機能したかどうかを確認するには、前と同じコマンドを入力します。

ifconfig en1 | grep ether

次のように表示されます。

ether 00:e2:e3:e4:e5:e6

つまり、MACアドレスは設定した値になります。偽装をさらに確認したい場合は、無線ルーターにログインし、「利用可能なデバイス」(または接続されたデバイス)リストを確認してください。偽装したMACアドレスがそのリストに含まれているはずです。

MAC アドレスを実際の値に戻したい場合は、手順 1 で取得した MAC アドレスを使用して上記の ifconfig コマンドを発行するだけです。Mac を再起動することもできます。

楽しむ!

注:読者のDee Brown氏が、問題を抱えているユーザーの助けになるかもしれない以下の点を指摘しています。「10.5.6をご利用の場合は、ネットワークから切断するためのトリックが必要です。****Airportをオフにしないでください****。Airportをクリックし、「ネットワークに接続」をクリックして、ネットワークSSIDに偽の名前を入力してください。接続が試行されている間に「キャンセル」をクリックします。この時点で、sudo ifconfig en1 etherコマンドを使って偽装できます。」

他の読者から、Dee Brownさんのトリックは10.5.7以降でも使えると指摘がありました。ありがとう、Deeさん!

更新: Leopard または Snow Leopard で MAC アドレス スプーフィングの問題が解決しない場合は、上記の方法が引き続き機能しますが、ワイヤレス ネットワークとの関連付けを解除してみてください。ただし、ワイヤレス Airport はオンのままにしてください (前述のとおり)。これを行う簡単な方法は、コマンド ラインで次のコマンドを入力することです。

airport -z

ユーザーが使用できるようにするには、「airport」コマンドを設定する必要があることに注意してください。これは、次のコマンドをコピーして Mac ターミナルに貼り付けることで実行できます。

sudo ln -s /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport /usr/sbin/airport

ネットワークから切断されると、通常通りMACアドレスを偽装できるはずです。

2012 年 2 月 28 日更新: Mac OS X Lion では、AirPort インターフェースが「Wi-Fi」と呼ばれるようになったため、OS X 10.7、OS X 10.8 Mountain Lion、および OS X Mavericks で MAC アドレスを偽装するコマンドは次のようになります。

sudo ifconfig en0 Wi-Fi aa:bb:cc:dd:ee:ff

一部のコンピュータでは Wi-Fi がインターフェースになる場合がありますが、代わりに「ether」を指定して偽装します。

sudo ifconfig en0 ether aa:bb:cc:dd:ee:ff

カードをアクティブな状態にしたまま、「airport -z」コマンドを使用して、事前にすべてのネットワークから切断してください。問題が解決しない場合や「bad value(不正な値)」というメッセージが表示される場合は、以下の手順でワイヤレスNICの電源をオフにしてからオンにしてみてください。

sudo ifconfig en0 down

NIC を再度有効にします。

sudo ifconfig en0 up

次に、MAC アドレスの偽装に進みます。

sudo ifconfig en0 ether aa:bb:cc:dd:ee:ff

ネットワーク カードを再度有効にすると、最後に利用可能なワイヤレス ネットワークに接続される可能性があります。

MAC アドレスは再起動するまで偽装されたままになりますが、現在のステータスが気になる場合は、いつでも GUI またはコマンド ラインで networksetup -listallhardwareports を使用して MAC アドレスを確認できます。