Linux 上的 MAC 地址欺骗

网卡生产商在每一张网卡(NIC)在出厂时都会在上面刻上一个48位的全球唯一标识符(GUID,例如08:4f:b5:05:56:a0),这串 GUID 就是网卡的 MAC 地址,用于确定一张网卡的身份。MAC 地址的高24位叫 OUI(Organizationally Unique Identifier 组织唯一标示符),是为网卡设置 MAC 地址的组织的标识符,这样一来,不同组织设置的 MAC 地址就不会冲突了。(译注:实际生产中,并不是每个网络设备都有不同的MAC地址,有时候地址空间不足,生产商会给发往不同地区国家的产品中用相同的地址空间。)

虽然 MAC 地址由厂商指定,但用户可以改变它,这就是传说中的“MAC 地址欺骗”。本文将向大家展示如何在 Linux 上玩 MAC 地址欺骗。

为什么要玩 MAC 地址欺骗?

想要理由?这里就给几个比较有技术含量的理由。 一些网络供应商会通过绑定你家路由器上的 MAC 地址来验证你的身份,这个时候如果你的路由器坏了,你怎么办?你可以暂时把你的电脑的 MAC 地址改成你家路由器的 MAC 地址,让你的 ISP 重新将你连入外网。(译注:有这种事情么?)

很多 DHCP 服务器会依赖 MAC 地址来分配 IP 地址。如果你想换一个分配给你的 IP 地址,你可以改改你的 MAC 地址。这样一来,你不必等着 DHCP 服务器给你重新分一个 IP 地址,而是马上就能得到一个新的。

除了技术原因外,这里也有一些比较正当的理由来说明你为什么需要改变你的 MAC 地址:为了隐私、为了安全,你要把你真正的 MAC 地址隐藏起来。不像处在 ISO 模型第三层的 IP 地址会经常变来变去,你的 MAC 地址可不会改变。在你说我多疑之前,请确定你知道你的隐私到底是什么东西。有一个入侵手段叫piggybacking,黑客会在公共 WiFi 网络下伪装成你的 MAC 地址,并且在你不在场的时候伪装成你的身份进行黑客活动。

怎么临时性地改变 MAC 地址?

你可以在 Linux 运行的时候改变 MAC 地址。需要注意的是当 MAC 地址转换的那一会时间,你的网络会掉线。当电脑重启时 MAC 地址又会变回原来的。下面介绍几种方法来改变你的 MAC 地址。

方法一:iproute2


  1. $ sudo ip link set dev eth0 down
  2. $ sudo ip link set dev eth0 address 00:00:00:00:00:01
  3. $ sudo ip link set dev eth0 up

方法二:macchanger

macchanger 这个命令可以让你把 MAC 地址改成不同生产厂商的序列号。

在 Debian,Ubuntu 或 Linux Mint 下安装 macchanger:


  1. $ sudo apt-get install macchanger

在 Fedora 下安装 macchanger:


  1. $ sudo yum install macchanger

在 CentOS 或 RHEL 下安装 macchanger:


  1. $ wget http://ftp.club.cc.cmu.edu/pub/gnu/macchanger/macchanger-1.6.0.tar.gz
  2. $ tar xvfvz macchanger-1.6.0.tar.gz
  3. $ cd macchanger-1.6.0
  4. $ ./configure
  5. $ make
  6. $ sudo make install

下面给出一些 macchanger 的高级使用例子。使用 macchanger 你不必再手动禁用、启用你的网卡。

仅仅改变 MAC 地址:


  1. $ sudo macchanger --mac=00:00:00:00:00:01 eth0

在保证 OUI 一致的情况下为 MAC 设置一个随机地址:


  1. $ sudo macchanger -e eth0

为 MAC 设置一个完全随机的地址:


  1. $ sudo macchanger -r eth0

获取所有网卡的 MAC 地址,然后只列出指定的厂商(比如 Juniper):


  1. $ macchanger -l | grep -i juniper

显示一块网卡原来的 MAC 地址和伪装的 MAC 地址:


  1. $ macchanger -s eth0
    Current MAC: 56:95:ac:ee:6e:77 (unknown)
    Permanent MAC: 00:0c:29:97:68:02 (Vmware, Inc.)

如何永久性地改变 MAC 地址?

如果你想在系统重启后还保持伪装 MAC 地址,你需要编辑配置文件。比如你想改变 eth0 的 MAC 地址,按以下方法搞起:

在 Fedora,CentOS 或 RHEL 下:


  1. $ sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
  2. DEVICE=eth0
  3. MACADDR=00:00:00:00:00:0

或者你可以建一个开机启动的脚本放在 /etc/NetworkManager/dispatcher.d 目录下,前提是你使用 Network Manager 管理你的网络。这里假设你已经装了 macchanger,脚本内容如下:


  1. $ sudo vi /etc/NetworkManager/dispatcher.d/000-changemac
  2. #!/bin/bash
  3.  
  4. case "$2" in
  5. up)
  6. macchanger --mac=00:00:00:00:00:01 "$1"
  7. ;;
  8. esac

  1. $ sudo chmod 755 /etc/NetworkManager/dispatcher.d/000-changemac

在 Debian,Ubuntu 或 Linux Mint 下:

新建一个开机启动脚本,放在 /etc/network/if-up.d/ 目录下:


  1. $ sudo vi /etc/network/if-up.d/changemac
  2. #!/bin/sh
  3.  
  4. if [ "$IFACE" = eth0 ]; then
  5. ip link set dev "$IFACE" address 00:00:00:00:00:01
  6. fi

  1. $ sudo chmod 755 /etc/network/if-up.d/changemac


原文发布时间为:2014-04-02

本文来自合作伙伴“Linux中国”

时间: 2024-10-08 20:18:28

Linux 上的 MAC 地址欺骗的相关文章

嵌入式 Linux下修改MAC地址

Linux下修改MAC地址 方法一: 1.关闭网卡设备ifconfig eth0 down2.修改MAC地址ifconfig eth0 hw ether MAC地址3.重启网卡ifconfig eth0 up 方法二:以上方法一修改后linux重启后MAC又恢复为原来的,为了下次启动时修改后的MAC仍有效,我们可以修改文件file:/etc/rc.d /rc.sysinit(RedFlag Linux为这个文件,其他版本的linux应该不同)的内容,在该文件末尾加以下内容:ifconfig et

《Nmap渗透测试指南》—第6章6.9节MAC地址欺骗

6.9 MAC地址欺骗表6.9所示为本章节所需Nmap命令表,表中加粗命令为本小节所需命令--MAC地址欺骗. 使用--spoof-mac选项就可以进行MAC地址欺骗.冒失地指定一个MAC定制反而会引起管理员的怀疑,这时我们可以使用字符串"0"随机分配一个MAC地址.这里需要注意的是,此处是数字"0"而不是字母"O",当然您可以指定一个MAC地址进行欺骗,指定的MAC地址最好是真实存在的,这样才能起到欺骗管理员的效果.使用--spoof-mac选

linux下修改MAC地址问题解决方法_Linux

在linux中,修改MAC地址 # ifdown eth0 # ifconfig eth0 hw ether 12:34:56:78:90:12 (修改的MAC地址跟原来的地址不同) # ifup eth0 (修改成功) 后,用# ifconfig 查看,MAC地址改变了,但之后输入#service network restart 或ifdowneth0命令时,会出现如下错语信息: Device eth0 has MAC address 12:34:56:78:90:12, instead of

linux下修改MAC地址方法-大全

一.修改MAC地址方法 linux环境下: 需要用 #ifconfig eth0 down 先把网卡禁用 再用ifconfig eth0 hw ether 1234567890ab 这样就可以改成功了 要想永久改就这样: 在/etc/rc.d/rc.local里加上这三句(也可以在/etc/init.d/network里加下面三行) ifconfig eth0 down ifconfig eth0 hw ether 1234567890ab ifconfig eht0 up 二.修改IP地址的方

以太网MAC地址的获取更改应用实例

以太网MAC地址唯一地标识了世界上的每个以太网设备.每一个生产网络设备的厂商都要将MAC地址预先写进其设备中(如:以太网网卡,路由器,交换机等).各种媒体已有很多文章介绍获得MAC地址的方法.今天我们主要讨论怎样在Cisco的IOS获得.改变MAC地址,并使用MAC地址进行网络通信过滤. 获得MAC地址 在交换机的命令输入窗口,输入"show mac-address-table"可以获得MAC地址表,例如: Switch# show mac-address-table Mac Addr

实例介绍以太网MAC地址的获取更改应用

以太网MAC地址唯一地标识了世界上的每个以太网设备.本文主要给大家介绍了如何获得MAC地址,并且讨论了怎样改变MAC地址等问题.获得MAC地址在交换机的命令输入窗口,输入"show mac-address-table"可以获得MAC地址表, 例如: Switch# show mac-address-table Mac Address Table ------------------------------------------- Vlan Mac Address Type Ports

Linux有问必答:如何显示Linux网桥的MAC学习表

Linux有问必答:如何显示Linux网桥的MAC学习表 问题:我想要检查一下我用brctl工具创建的Linux网桥的MAC地址学习状态.请问,我要怎样才能查看Linux网桥的MAC学习表(或者转发表)? Linux网桥是网桥的软件实现,这是Linux内核的内核部分.与硬件网桥相类似,Linux网桥维护了一个2层转发表(也称为MAC学习表,转发数据库,或者仅仅称为FDB),它跟踪记录了MAC地址与端口的对应关系.当一个网桥在端口N收到一个包时(源MAC地址为X),它在FDB中记录为MAC地址X可

PHP获取网卡MAC地址

<?php     /**     获取网卡的MAC地址原码:目前支持WIN/LINUX系统     获取机器网卡的物理(MAC)地址     **/            class GetMacAddr{                    var $return_array = array(); // 返回带有MAC地址的字串数组             var $mac_addr;                    function GetMacAddr($os_type){  

普联TL-WR886N如何设置MAC地址过滤

  普联TL-WR886N设置MAC地址过滤步骤一.查看自己无线设备MAC地址 例如某用户的无线路网络经常被别人盗用,即使设置了无线密码也一样,这时候我们可以通过配置无线MAC地址过滤来解决这个问题,只让用户自己的电脑.手机可以上网,其它的无线设备不允许上网. 1.查看笔记本电脑MAC地址 查看笔记本电脑的无线MAC地址 2.查看手机MAC地址 查看手机MAC地址 普联TL-WR886N设置MAC地址过滤步骤二.在TL-WR886N上设置MAC地址过滤 1.登录到设置页面 在浏览器中输入tplo