みどりのさるのエンジニア

Macアドレスを偽装する

2020年03月21日

とある会社の人と話していて、社内インフラの人がセキュリティ対策としてMacアドレスを見てアクセスを制限している。と聞いて、Macアドレスって簡単に偽装できるんじゃない?と思い調べてみました。

注意

この記事は攻撃方法を知ることでセキュリティを学ぶことを前提としています。
決して外部の環境に対して悪意のある実行をしないようにしてください。

spoof

調べたら macOS, Windows, Linux で利用可能な Macアドレスを偽装できるCLIツールがあった。

feross/spoof: Easily spoof your MAC address in macOS, Windows, & Linux!

インストール

$ npm i -g spoof

使い方

Macアドレスの一覧を表示

$ spoof list
- Wi-Fi on device en0 with MAC address xx:xx:xx:xx:xx:xx
- ...

ランダムなMacアドレスを設定

# root権限が必要
$ sudo spoof randomize en0
$ spoof list
- Wi-Fi on device en0 with MAC address xx:xx:xx:xx:xx:xx currently set to 00:50:56:6F:42:0A
- ...

任意のMacアドレスを設定

# root権限が必要
$ sudo spoof set 
$ sudo spoof list

Macアドレスをリセット

# root権限が必要
$ sodo spoof reset en0

ツールを利用しない場合

ツール使わなくても普通にできるようでした。
macOS でターミナルを使って自分のMAC アドレスを変更する方法 - yu8mada

Macアドレスの確認

$ networksetup -listallhardwareports

Hardware Port: Wi-Fi
Device: en0
Ethernet Address: xx:xx:xx:xx:xx:xx

...

$ ifconfig en0 | grep ether
	ether xx:xx:xx:xx:xx:xx

Macアドレスの設定

$ sudo ifconfig en0 ether 60:d2:48:2f:39:64
$ ifconfig en0 | grep ether
	ether 60:d2:48:2f:39:64

Macアドレスをリセット

リセットの事を考えると spoof を利用した方が早そう。

$ networksetup -getmacaddress Wi-Fi
Ethernet Address: xx:xx:xx:xx:xx:xx (Hardware Port: Wi-Fi)

$ sufo ifconfig en0 ether xx:xx:xx:xx:xx:xx

まとめ

調べたらMacアドレスの偽装は凄い簡単にできました。
単純なMacアドレスのによるアクセス制御はあまり意味が無かったです。