Linux 上的 MAC 地址欺騙
網(wǎng)卡生產(chǎn)商在每一張網(wǎng)卡(NIC)在出廠時(shí)都會(huì)在上面刻上一個(gè)48位的全球唯一標(biāo)識(shí)符(GUID,例如08:4f:b5:05:56:a0),這串 GUID 就是網(wǎng)卡的 MAC 地址,用于確定一張網(wǎng)卡的身份。MAC 地址的高24位叫 OUI(Organizationally Unique Identifier 組織唯一標(biāo)示符),是為網(wǎng)卡設(shè)置 MAC 地址的組織的標(biāo)識(shí)符,這樣一來(lái),不同組織設(shè)置的 MAC 地址就不會(huì)沖突了。(譯注:實(shí)際生產(chǎn)中,并不是每個(gè)網(wǎng)絡(luò)設(shè)備都有不同的MAC地址,有時(shí)候地址空間不足,生產(chǎn)商會(huì)給發(fā)往不同地區(qū)國(guó)家的產(chǎn)品中用相同的地址空間。)
雖然 MAC 地址由廠商指定,但用戶可以改變它,這就是傳說(shuō)中的“MAC 地址欺騙”。本文將向大家展示如何在 Linux 上玩 MAC 地址欺騙。
為什么要玩 MAC 地址欺騙?
想要理由?這里就給幾個(gè)比較有技術(shù)含量的理由。 一些網(wǎng)絡(luò)供應(yīng)商會(huì)通過(guò)綁定你家路由器上的 MAC 地址來(lái)驗(yàn)證你的身份,這個(gè)時(shí)候如果你的路由器壞了,你怎么辦?你可以暫時(shí)把你的電腦的 MAC 地址改成你家路由器的 MAC 地址,讓你的 ISP 重新將你連入外網(wǎng)。(譯注:有這種事情么?)
很多 DHCP 服務(wù)器會(huì)依賴 MAC 地址來(lái)分配 IP 地址。如果你想換一個(gè)分配給你的 IP 地址,你可以改改你的 MAC 地址。這樣一來(lái),你不必等著 DHCP 服務(wù)器給你重新分一個(gè) IP 地址,而是馬上就能得到一個(gè)新的。
除了技術(shù)原因外,這里也有一些比較正當(dāng)?shù)睦碛蓙?lái)說(shuō)明你為什么需要改變你的 MAC 地址:為了隱私、為了安全,你要把你真正的 MAC 地址隱藏起來(lái)。不像處在 ISO 模型第三層的 IP 地址會(huì)經(jīng)常變來(lái)變?nèi)?,你?MAC 地址可不會(huì)改變。在你說(shuō)我多疑之前,請(qǐng)確定你知道你的隱私到底是什么東西。有一個(gè)入侵手段叫 piggybacking,黑客會(huì)在公共 WiFi 網(wǎng)絡(luò)下偽裝成你的 MAC 地址,并且在你不在場(chǎng)的時(shí)候偽裝成你的身份進(jìn)行黑客活動(dòng)。
怎么臨時(shí)性地改變 MAC 地址?
你可以在 Linux 運(yùn)行的時(shí)候改變 MAC 地址。需要注意的是當(dāng) MAC 地址轉(zhuǎn)換的那一會(huì)時(shí)間,你的網(wǎng)絡(luò)會(huì)掉線。當(dāng)電腦重啟時(shí) MAC 地址又會(huì)變回原來(lái)的。下面介紹幾種方法來(lái)改變你的 MAC 地址。
方法一:iproute2
- $ sudo ip link set dev eth0 down
- $ sudo ip link set dev eth0 address 00:00:00:00:00:01
- $ sudo ip link set dev eth0 up
方法二:macchanger
macchanger 這個(gè)命令可以讓你把 MAC 地址改成不同生產(chǎn)廠商的序列號(hào)。
在 Debian,Ubuntu 或 Linux Mint 下安裝 macchanger:
- $ sudo apt-get install macchanger
在 Fedora 下安裝 macchanger:
- $ sudo yum install macchanger
在 CentOS 或 RHEL 下安裝 macchanger:
- $ wget http://ftp.club.cc.cmu.edu/pub/gnu/macchanger/macchanger-1.6.0.tar.gz
- $ tar xvfvz macchanger-1.6.0.tar.gz
- $ cd macchanger-1.6.0
- $ ./configure
- $ make
- $ sudo make install
下面給出一些 macchanger 的高級(jí)使用例子。使用 macchanger 你不必再手動(dòng)禁用、啟用你的網(wǎng)卡。
僅僅改變 MAC 地址:
- $ sudo macchanger --mac=00:00:00:00:00:01 eth0
在保證 OUI 一致的情況下為 MAC 設(shè)置一個(gè)隨機(jī)地址:
- $ sudo macchanger -e eth0
為 MAC 設(shè)置一個(gè)完全隨機(jī)的地址:
- $ sudo macchanger -r eth0
獲取所有網(wǎng)卡的 MAC 地址,然后只列出指定的廠商(比如 Juniper):
- $ macchanger -l | grep -i juniper
顯示一塊網(wǎng)卡原來(lái)的 MAC 地址和偽裝的 MAC 地址:
- $ macchanger -s eth0
- Current MAC: 56:95:ac:ee:6e:77 (unknown)
- Permanent MAC: 00:0c:29:97:68:02 (Vmware, Inc.)
如何永久性地改變 MAC 地址?
如果你想在系統(tǒng)重啟后還保持偽裝 MAC 地址,你需要編輯配置文件。比如你想改變 eth0 的 MAC 地址,按以下方法搞起:
在 Fedora,CentOS 或 RHEL 下:
- $ sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
- DEVICE=eth0
- MACADDR=00:00:00:00:00:0
或者你可以建一個(gè)開(kāi)機(jī)啟動(dòng)的腳本放在 /etc/NetworkManager/dispatcher.d 目錄下,前提是你使用 Network Manager 管理你的網(wǎng)絡(luò)。這里假設(shè)你已經(jīng)裝了 macchanger,腳本內(nèi)容如下:
- $ sudo vi /etc/NetworkManager/dispatcher.d/000-changemac
- #!/bin/bash
- case "$2" in
- up)
- macchanger --mac=00:00:00:00:00:01 "$1"
- ;;
- esac
- $ sudo chmod 755 /etc/NetworkManager/dispatcher.d/000-changemac
在 Debian,Ubuntu 或 Linux Mint 下:
新建一個(gè)開(kāi)機(jī)啟動(dòng)腳本,放在 /etc/network/if-up.d/ 目錄下:
- $ sudo vi /etc/network/if-up.d/changemac
- #!/bin/sh
- if [ "$IFACE" = eth0 ]; then
- ip link set dev "$IFACE" address 00:00:00:00:00:01
- fi
- $ sudo chmod 755 /etc/network/if-up.d/changemac
via: http://xmodulo.com/2014/02/spoof-mac-address-network-interface-linux.html