macchanger を使って MAC アドレスを変更する

Beginner
オンラインで実践に進む

はじめに

MAC (Media Access Control) アドレスは、ネットワークセグメント内での通信においてネットワークアドレスとして使用される、ネットワークインターフェイスコントローラー (NIC) に割り当てられた一意の識別子です。このアドレスは通常、永続的でハードウェアにハードコードされていますが、ソフトウェアで変更または「なりすまし」することができます。

MAC アドレスを変更することは、追跡を防ぐことによるプライバシーの強化、ネットワーク上の MAC アドレスベースのアクセス制御のバイパス、またはネットワークテストやトラブルシューティングなど、さまざまな理由で役立ちます。

この実験では、ネットワークインターフェイスを管理するための ifconfig と、MAC アドレスを表示および変更するための macchanger という、2 つの一般的な Linux コマンドラインツールを使用します。ネットワークインターフェイスを見つけ、現在の MAC アドレスを表示し、インターフェイスをダウンさせ、新しいランダムな MAC アドレスを割り当て、インターフェイスを再度アップさせ、最後に変更が成功したことを確認する方法を学びます。

インターフェイスの現在の MAC アドレスを表示する

このステップでは、ネットワークインターフェイスを特定し、その現在の元の MAC アドレスを表示します。ネットワークインターフェイスに関する情報を設定および表示するために使用される ifconfig コマンドを使用します。

まず、ターミナルを開きます。変更したいネットワークインターフェイスの名前を見つける必要があります。この実験環境では、プライマリネットワークインターフェイスは通常 eth0 という名前です。

インターフェイス名に続けて ifconfig コマンドを実行して、その詳細を表示します。

ifconfig eth0

eth0 インターフェイスに関するいくつかの詳細が表示されます。「ether」を含む行を探してください。その隣の値が、インターフェイスの現在の MAC アドレスです。

出力例:

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.17.0.2  netmask 255.255.0.0  broadcast 172.17.255.255
        ether 02:42:ac:11:00:02  txqueuelen 0  (Ethernet)
        RX packets 24  bytes 2480 (2.4 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 8  bytes 648 (648.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

「ether」アドレスをメモしておいてください。これは、次のステップで変更する、永続的なハードウェア割り当ての MAC アドレスです。

ifconfig を使用してワイヤレスインターフェイスをダウンさせる

このステップでは、ネットワークインターフェイスを無効にする方法を学びます。MAC アドレスを変更する前に、ネットワークインターフェイスをオフラインまたは「ダウン」させる必要があります。アクティブな状態でネットワーク上で通信しているインターフェイスのハードウェアアドレスを変更することはできません。

再び ifconfig コマンドを使用しますが、今回は down 引数を付けます。この操作には管理者権限が必要なため、sudo を使用する必要があります。

ターミナルで次のコマンドを実行します。

sudo ifconfig eth0 down

このコマンドは、成功した場合、何も出力しません。単に eth0 インターフェイスを無効にし、次のステップでの MAC アドレス変更の準備をします。

macchanger -r でランダムな MAC アドレスを割り当てる

このステップでは、インターフェイスがダウンしている状態で、macchanger ツールを使用して新しい MAC アドレスを割り当てることができます。macchanger にはいくつかのオプションがありますが、この実験では -r (または --random) オプションを使用して、完全にランダムでベンダーに依存しない MAC アドレスを割り当てます。

この操作にも管理者権限が必要なため、sudo を使用する必要があります。

eth0 の MAC アドレスを変更するには、次のコマンドを実行します。

sudo macchanger -r eth0

コマンドは操作の結果を出力し、元の永続的なハードウェア MAC と新しいなりすまされた MAC アドレスを表示します。

出力例:

Current MAC:   02:42:ac:11:00:02 (unknown)
Permanent MAC: 02:42:ac:11:00:02 (unknown)
New MAC:       3e:81:e3:82:b6:f1 (unknown)

ご覧のとおり、macchangereth0 インターフェイスに新しい MAC アドレスを割り当てました。ただし、インターフェイスはまだダウンしています。

ifconfig を使用してワイヤレスインターフェイスをアップさせる

このステップでは、ネットワークインターフェイスを再アクティブ化します。MAC アドレスの変更に成功したら、インターフェイスを「アップ」に戻して、ネットワークに接続し、データの送受信を再開できるようにする必要があります。

ifconfig コマンドに up 引数を付けて使用します。この操作にも sudo 権限が必要です。

ターミナルで次のコマンドを実行します。

sudo ifconfig eth0 up

インターフェイスをダウンさせた場合と同様に、このコマンドは成功した場合、何も出力しません。これは eth0 インターフェイスを再アクティブ化し、前のステップで割り当てた新しい MAC アドレスを使用するようになります。

新しいなりすまされた MAC アドレスを確認する

この最終ステップでは、MAC アドレスが正常に変更され、インターフェイスが新しいアドレスで動作していることを確認します。これは、プロセス全体が期待どおりに機能したことを確認するための重要な確認ステップです。

これを行うために、最初のステップと同様に ifconfig eth0 コマンドを再度実行します。

ifconfig eth0

次に、出力を調べて ether の値を確認します。これは、ステップ 3 の macchanger コマンドの出力にあった「New MAC」アドレスと一致するはずです。

出力例:

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.17.0.2  netmask 255.255.0.0  broadcast 172.17.255.255
        ether 3e:81:e3:82:b6:f1  txqueuelen 0  (Ethernet)
        RX packets 24  bytes 2480 (2.4 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 8  bytes 648 (648.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

この新しい ether アドレスをステップ 1 で記録したアドレスと比較することで、MAC アドレスが正常になりすまされたことを確認できます。

まとめ

おめでとうございます!macchanger を使用して MAC アドレスを変更するこの実験を無事完了しました。

この実験では、Linux における基本的なネットワークおよびセキュリティスキルを習得しました。ifconfig コマンドを使用してネットワークインターフェイスを管理し、macchanger ツールを使用してそのハードウェアアドレスを変更する練習を行いました。

実行した主な手順は以下のとおりです。

  1. ifconfig eth0 でネットワークインターフェイスの初期状態を表示しました。
  2. sudo ifconfig eth0 down でインターフェイスを非アクティブ化しました。
  3. sudo macchanger -r eth0 で新しいランダムな MAC アドレスを割り当てました。
  4. sudo ifconfig eth0 up でインターフェイスを再アクティブ化しました。
  5. 最終状態を確認して変更が完了したことを確認しました。

macchanger ツールには、特定の MAC アドレスを設定する (-m XX:XX:XX:XX:XX:XX) や、インターフェイスを元の永続的な MAC アドレスにリセットする (-p) など、その他の便利なオプションもあります。これらを自分で自由に試してみてください。