MAC SpoofingとはTCP/IPのデータリンク層のMACアドレスを偽装することです。MACアドレスを簡単に説明しますと、ハードウェア(NICなど)に割り当てられた固有のアドレスのことです。ハードウェア出荷時にROMに書き込まれて出荷されるため、後から書き換えられないと思い込む人が多いようです。
どうしてIPアドレスがあるのに、更にMACアドレスが必要なのかといいますと、IPアドレスはインターネット層での識別番号であり、パケットは下層のデータリンク層(ハードウェアで言うとスイッチングハブなど)も通らないと通信できません。そこでデータリンク層でも識別番号を設けているのです。この識別番号がMACアドレスと呼ばれています。詳しいMACアドレスについての説明は他のテキストを参照してください。
MAC Spoofingを行うことで、どういったアタックが可能かを次に挙げてみます。
Sniffingのテキストでも述べた通り、スイッチを利用したLANのパケット盗聴をする場合にARP情報を偽装する必要があり、その場合に使用します。ARP Poisoningと呼ばれる技術であり、詳細はSniffingのテキストを参照してください。
MACアドレスによって制限されたネットワークに接続する場合にMAC Spoofingを行う必要があります。無線LAN(IEEE802.11)はAP(アクセスポイント)のセキュリティ機能として、登録しておいたMACアドレス以外からの接続を拒否する機能が導入されています。
MAC Spoofingで利用できるDOS Attackは"MAC Over Flood"が挙げられます。スイッチはメモリにMACとポートの対応付けを展開しています。そのため、大量の異なったMACアドレスからのパケットがスイッチに流れると、メモリは覚えきれなくなります。スイッチの仕様にもよりますが、場合によっては全てのポートにパケットを送信します。
旧式のNICの場合、ユーザがMACアドレスを設定できるものもあります。
コマンドプロンプトを開き、> ipconfig /all と入力してください。 次のように表示されると思います。
C:\Documents and Settings\Defolos>ipconfig /all Windows IP Configuration Host Name . . . . . . . . . . . . : DefoPC0001 Primary Dns Suffix . . . . . . . : Node Type . . . . . . . . . . . . : Unknown IP Routing Enabled. . . . . . . . : No WINS Proxy Enabled. . . . . . . . : No Ethernet adapter ローカル エリア接続: Connection-specific DNS Suffix . : Description . . . . . . . . . . . : Realtek RTL8139/810x Family Fast Eth ernet NIC Physical Address. . . . . . . . . : 00-11-D8-38-88-ED Dhcp Enabled. . . . . . . . . . . : No IP Address. . . . . . . . . . . . : 192.168.0.7 Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . : 192.168.0.1 DNS Servers . . . . . . . . . . . : 192.168.0.1
"Physical Address"の部分がMACアドレスです。 ここでは「00-11-D8-38-88-ED」だとわかります。
[マイネットワーク]>[ネットワーク接続を表示する]>[ローカルエリア接続]と進み、[ローカルエリア接続]を[右クリック]>[プロパティ]を選択してください。
「ローカルエリア接続のプロパティ」が開くので[接続方法:]の下のNICがMAC SpoofingしたいNICであるか確認し、右の[構成]をクリックしてください。NICのプロパティが開くので、[詳細設定]タブを選択しましょう。
プロパティの欄に[Network Address]という項目があるのでそれを選択し、[値:]のラジオボタンをクリックしてください。後は横のフォームに「00-11-D8-38-88-ED」の様な書式でSpoofingしたいアドレスを入力してください。
設定を反映したい場合は再起動させるか、ローカルエリアネットワークを一度無効にし、もう一度有効にします。
[スタートメニュー]>[ファイル名を指定して実行]を選択し、「regedit」と入力してOKを押してください。これでレジストリエディタが開くので、次のようにキーを進めてください。
----- HKEY_LOCAL_MACHINE SYSTEM CurrentControlSet Control Class {4D36E972-E325-11CE-BFC1-08002bE10318} -----
この下のキーに「0000」や「0001」といった4桁のサブキーがあるはずです。これらのサブキーの中からSpoofingしたNICのサブキーを探し出しましょう。探し方はサブキーを選択し、「DriverDesc」の値を見てみます。SpoofingしたいNICの名前が書いてあれば、そのサブキーの中から「NetworkAddress」というキーを探し出します。
ない場合は新規作成しましょう。 適当なところを右クリックして、[新規作成]>[文字列値]を選択すれば新規作成できます。値にはSpoofingしたいMACアドレスを入力します。
設定を反映したい場合は再起動させるか、ローカルエリアネットワークを一度無効にし、もう一度有効にしてください。
次のようにifdown、ifup、ifconfigコマンドを用います。
# ifdown eth0
# ifconfig eth0 hw ether 01:02:03:AB:CD:DF
# ifup eth0
ワイヤレスLANカードならば、eth0はwlan0に変更してください。ただし、このMACアドレスの変更は一時的なものなので電源を入れなおしたり、PCカードの抜き差しで元のMACアドレスに戻ってしまいます。