MAC地址欺骗(原理及实验)
MAC地址欺骗
MAC地址欺骗(或MAC地址盗用)通常用于突破基于MAC地址的局域网访问控制,例如在交换机上限定只转发源MAC地址修改为某个存在于访问列表中的MAC地址即可突破该访问限制,而且这种修改是动态的并且容易恢复。还有的访问控制方法将IP地址和MAC进行绑定,目的是使得一个交换机端口只能提供给一位用户的一台主机使用,此时攻击者需要同时修改自己的IP地址和MAC地址去突破这种限制。
在不同的操作系统中修改MAC地址有不同的方法,其实质都是网卡驱动程序从系统中读取地址信息并写入网卡的硬件存储器,而不是实际修改网卡硬件ROM中存储的原有地址,因此攻击者可以为了实施攻击临时修改主机的MAC地址,事后很容易恢复为原来的MAC地址。
Windows系统下修改MAC地址的方法
在Windows中,几乎所有的网卡驱动程序都可以从注册表中读取用户指定的MAC地址,当驱动程序确定这个MAC地址有效时,就会将其编程写入网卡的硬件寄存器中,而忽略网卡原来的MAC地址。
在网卡的【配置】-【高级】-【网络地址】菜单项中修改,系统会自动重启网卡,修改后可以在控制台窗口中键入“ipconfig /all”命令检查网卡地址是否已成功更改,如果选择【不存在】则恢复为原有MAC地址。该方法针对有线网卡有效,但是无线网卡默认没有“网络地址”,无法使用这种方法修改。
方法一
实验:
新建一个Windows 7 x64 家庭版的虚拟机,网卡使用桥接模式;
然后在网络和共享中心打开更改适配器设置;
右键,属性;
点击配置;
修改MAC地址并确定后,系统会自动重启网卡;
在命令行输入“ipconfig /all”可以看到网卡的地址已经修改成功;
选择“不存在”后,再次查看发现已经恢复为原有MAC地址;
方法二
可以看到在无线网卡的配置里没有网络地址的键值;
直接修改注册表,生成与第一种方法相同的针对无线网卡的“网络地址”设置。
运行注册表编辑器(regedit.exe),在“\HKEY_LOCALMACHINE\SYSTEM\ControlSet001\Control\Class”键下搜索网卡的描述信息,定位网卡配置选项在注册表中的位置;
无线网卡的对应配置选项在注册表项“HKEY_LOCAL_MACHIN\SYSTEM\ControlSet001\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318}\0003”内;
然后在“Ndi\params”子项下新建子项“NetworkAddress”,并新增如下所有键值:
(默认) |
REG_SZ |
(数值未设置) |
default |
REG_SZ |
000000000000 |
LimitText |
REG_SZ |
12 |
Optional |
REG_SZ |
1 |
ParamDesc |
REG_SZ |
网络地址 |
type |
REG_SZ |
edit |
UpperCase |
REG_SZ |
1 |
即可在无线网络连接的配置选项中生成“网络地址”菜单项,并可自由修改MAC地址;
当地址修改成功后,注册表会自动在上述表项(即0003)中增加一个“NetworkAddress”的键值;
也可以将以下文本导入注册表(保存为.reg后缀的文件名),也可产生同样的效果。
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318}\0003\Ndi\Params\NetworkAddress]
“default” = “000000000000”
“optional” = “1”
“ParamDesc” = “网络地址”
“type” = “edit”
“UpperCase” = “1”
“LimitText” = “12”
可以看到无线网卡中出现了网络地址的键值,进行修改;
可以看到注册表中多了MAC地址;
但是在命令行输入“ipconfig /all”查看的时候发现MAC地址并没有改变;
原因查找:修改网卡地址时需要注意前三个字节表示网卡厂商,如果修改后的网卡地址不属于该厂商,修改后的地址可能会无效,系统只会设置有效的地址,所以必须检查修改后的地址是否生效,以及无线网的MAC值的第二个数只能是2、6、A、E中的一个,否则修改就不会起作用;
再次尝试修改;
修改成功;
Linux系统下修改MAC地址的方法
方法一
在Linux系统下修改MAC地址十分方便,只要网卡的驱动程序支持修改网卡的物理地址,即可应用三条“ifconfig”命令完成地址修改任务:①禁用网卡;②设置网卡的MAC地址;③启用网卡。(论将大象放入冰箱的步骤= =);
eth0是网卡名,ether表示是以太网类型的网卡,“0000aabbccff”是随机设置的一个地址,使用“ifconfig eth0”即可查看地址修改是否已经生效。不过使用该方法有一点不方便的是,用户需要自行保存原有的MAC地址,然后再用相同的方法恢复。
三条命令:
ifconfig eth0 down
ifconfig eth0 hw ether 0000aabbccff
ifconfig eth0 up
实验:
打开kali-linux虚拟机;
方法二
使用地址修改工具macchanger,他不需要用户保存原有地址即可自动恢复。不但可以修改为原有MAC地址为同一个厂家的随机MAC地址、修改为不同厂家但是与原有地址属于同一类型的随机MAC地址、修改为不同厂家不同类型的随机MAC地址或修改为完全随机的MAC地址,而且还支持查询各知名厂家的MAC地址段。
真的是相当方便啊!
MAC地址欺骗(原理及实验)的更多相关文章
- mac地址泛洪攻击的实验报告
案例介绍: PC A 访问 本网络的一台FTPserver主机,中间人进行arp的投毒,获取PC-A和FTPserve之间的回话记录,截获用户名和密码. 实验拓扑:
- 分分钟学会系列:mac地址泛洪攻击实验
一.实验目的: 通过实战深入理解mac地址泛洪攻击的原理. 二.实验原理: 交换机中有一张非常重要的表,叫做mac表,这个表是一个硬件组成的表,主要是完成快速转发.mac表有大小限制,不同的交换机的m ...
- 交换机工作原理、MAC地址表、路由器工作原理详解
一:MAC地址表详解 说到MAC地址表,就不得不说一下交换机的工作原理了,因为交换机是根据MAC地址表转发数据帧的.在交换机中有一张记录着局域网主机MAC地址与交换机接口的对应关系的表,交换机就是根据 ...
- Mininet实验 MAC地址学习
实验目的 了解交换机的MAC地址学习过程. 了解交换机对已知单播.未知单播和广播帧的转发方式. 实验原理 MAC(media access control,介质访问控制)地址是识别LAN节点的标识.M ...
- Huawei-R&S-网络工程师实验笔记20190608-VLAN划分基础(基于端口、MAC地址、子网地址、协议)
>Huawei-R&S-网络工程师实验笔记20190608-VLAN划分基础(基于端口.MAC地址.子网地址.协议) >>实验开始,先上拓扑图参考: 一.基于端口划分VLAN ...
- Mininet实验 MAC地址学习分析
拓扑图 学习过程分析 首先交换机A和交换机B一开始的MAC地址表都是空的. 此时主机11向主机33发送一个数据帧. 数据帧会先到达交换机A,交换机A会获得主机11的MAC地址和端口号.(此时交换机A的 ...
- ARP防火墙绑定网关MAC地址预防ARP攻击和P2P终结者
[故障原理] 要了解故障原理,我们先来了解一下ARP协议. 在局域网中,通过ARP协议来完成IP地址转换为第二层物理地址(即MAC地址)的.ARP协议对网络安全具有重要的意义.通过伪造IP地址和M ...
- TCP连接三次握手协议,释放连接四次挥手,以及使用 awl伪造mac地址进行多线程syn洪泛攻击。
这个TCP连接就是一次追女生-谈恋爱-分手,追求比分手简单,但是分手比追求复杂.哥,谈了半年的女朋友,在就快要成功了的时候分了,原因是因为有人在后面该老子背后搞SYN洪泛攻击,最后女朋友丢失了.学会T ...
- Cisco 绑定mac地址
在Cisco中有以下三种方案可供选择,方案1和方案2实现的功能是一样的,即在具体的交换机端口上绑定特定的主机的MAC地址(网卡硬件地址),方案3是在具体的交换机端口上同时绑定特定的主机的MAC地址(网 ...
随机推荐
- css过渡和2d详解及案例
css过渡和2d详解及案例(案例在下方,不要着急) 本文重点: 1.在2D变化使用过程中,有些需求需要两种或两种以上的变化同时使用, 值得注意的是尽量把位移变化放在最前面,把其他变化放在最后面,属性值 ...
- Activiti网关--包含网关
1.什么是包含网关 包含网关可以看做是排他网关和并行网关的结合体:和排他网关一样,你可以在外出顺序流上定义条件,包含网关会解析它们:但是主要的区别是包含网关可以选择多于一条顺序流,这和并行网关一样,包 ...
- Pytest系列(6) - conftest.py的详细讲解
如果你还想从头学起Pytest,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1690628.html 什么是conftest.py 可以 ...
- B. Lost Number【CF交互题 暴力】
B. Lost Number[CF交互题 暴力] This is an interactive problem. Remember to flush your output while communi ...
- 泛型--->Result返回结果封装
controller的返回结果一般有两种: 1.Rest API JSON 输出 2.页面 目的:编写优雅的代码 实现:通过泛型对返回结果进行封装 代码如下: 一.控制层 /** * ...
- 力软敏捷框架 jfGrid 使用例子之一
百度了下关于力软敏捷框架 jfGrid的教程,基本没有,出来的全是jqGrid.好吧看来只能自己上手了 今天来讲讲列设置属性里数据格式化事件(formatter)的使用 常规的使用方式如上图所示. 先 ...
- .NET Core项目部署到Linux(Centos7)(一)前言
目录 1.前言 2.环境和软件的准备 3.创建.NET Core API项目 4.VMware Workstation虚拟机及Centos 7安装 5.Centos 7安装.NET Core环境 6. ...
- redis 安装and对外开放端口
第一步: $ cd /usr/local/src $ wget http://download.redis.io/releases/redis-5.0.4.tar.gz $ tar xzf redis ...
- MySQL入门,第六部分,关系代数
关系代数是一种集合操作为基础过程化查询语言,特点:运算对象是关系,运算结果亦为关系 一.关系代数的特点 运算对象:关系 运算结果:关系 运算符:四类 集合运算符 专门的关系运算符 算术比较符 逻辑运算 ...
- ubuntu18.04配置宽带上网
1.将 /etc/NetworkManager 目录下的 managed标签改为true 2.将 /etc/network/ 目录下的 interfaces文件只留下前两行: auto lo ifac ...