当前位置: 首页 > news >正文

MAC本遭遇ARP攻击的处理办法

windows环境下,如果遭遇ARP攻击,解决方法很简单:“360安全卫士”或"QQ软件管理"的实时防护里,都有ARP防护功能(默认是关闭的),只要启用就行了。

但是Mac本上,就没这么方便了,先大概说下ARP攻击的原理:

我们在局域网中访问外网时,总是要经过网关才能出去,IP设置里网关设置的是一个具体的ip4地址(比如192.168.1.1),但是IP地址每台机器通常是可以随便设置的(只要不跟局域网中的其它机器冲突),这是一个逻辑上的虚拟地址,只有网络设备(比如网卡)本身的静态MAC地址,这个才是物理真实地址,所有对IP的访问,最终必须定位到MAC物理地址,才能直接跟物理设备通讯。OSI 7层网络模型里,IP处于第3层,MAC地址处于第2层,这二层并不能直接打交道,所以才需要ARP (Address Resolution Protocol) 地址解析协议来充当翻译。

ARP攻击时,就是通过伪装网关的MAC地址来达到欺骗的目的,更通俗的点,当你的机器访问网关(比如192.168.1.1)时,正常情况下,应该定位到网关路由器的真实物理地址(比如A),但是被攻击后,会被误导到其它假MAC地址(B),相当于你根本没通过网关正常访问,上不了网也就不奇怪了。

明白原理后,解决问题的思路就有了:

1、先找出网关的真实物理地址(即路由器的mac地址)

在mac本上安装虚拟机,然后在虚拟机里安装windows(开启ARP防护功能),这样环境就回到熟悉的windows了(或者找一台windows机器也行-前提是这台机器上安装有ARP防火墙,能正常上网),在windows的命运行中,输入 arp -a

C:\Users\jimmy.yang>arp -a

接口: 192.168.1.120 --- 0xb
  Internet 地址         物理地址              类型
  192.168.1.1           14-e6-e4-9b-38-aa     动态
  192.168.1.255         ff-ff-ff-ff-ff-ff     静态
  224.0.0.2             01-00-5e-00-00-02     静态
  224.0.0.252           01-00-5e-00-00-fc     静态
  239.255.255.250       01-00-5e-7f-ff-fa     静态
  255.255.255.255       ff-ff-ff-ff-ff-ff     静态

从返回的结果中,就能知道192.168.1.1网关的物理地址是 14-e6-e4-9b-38-aa

2、回到mac环境中,将网关地址与物理地址绑定

在终端窗口中,输入:sudo arp -s 192.168.1.1 14:e6:e4:9b:38:aa pub
注:上面的物理地址,各节之间是用":"分隔的,不是"-"

一般情况下,这样就可以上网了,如果还不行,建议不要用DHCP动态获取IP,改成手动指定IP地址

相关文章:

  • [Java性能剖析]Sun JDK基本性能剖析工具介绍
  • 序列号
  • Android Parcelable和Serializable的区别
  • VHD windows7 U盘系统制作流程(自己整理)
  • 5、线程终止方式:(转)
  • php 导出txt文件 内容换行
  • Facebook团队关于Hadoop/HBase在SSD上的实验和讨论(转)
  • oracle db_link
  • Windows Phone 8 Wallet 手机钱包 / 电子钱包
  • jython - 安装
  • STOverlay
  • 学习地址
  • DR模式
  • oracle 不可见索引
  • 写Java程序的三十个基本规则
  • C++类的相互关联
  • Druid 在有赞的实践
  • egg(89)--egg之redis的发布和订阅
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • IOS评论框不贴底(ios12新bug)
  • JavaScript设计模式之工厂模式
  • nginx 负载服务器优化
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • Spring Boot MyBatis配置多种数据库
  • 容器服务kubernetes弹性伸缩高级用法
  • 数据可视化之 Sankey 桑基图的实现
  • 微信小程序开发问题汇总
  • 译自由幺半群
  • No resource identifier found for attribute,RxJava之zip操作符
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • 基于django的视频点播网站开发-step3-注册登录功能 ...
  • 如何用纯 CSS 创作一个货车 loader
  • ​Z时代时尚SUV新宠:起亚赛图斯值不值得年轻人买?
  • #pragma预处理命令
  • #在 README.md 中生成项目目录结构
  • (4)事件处理——(2)在页面加载的时候执行任务(Performing tasks on page load)...
  • (二)斐波那契Fabonacci函数
  • (力扣题库)跳跃游戏II(c++)
  • (每日持续更新)jdk api之StringBufferInputStream基础、应用、实战
  • (七)微服务分布式云架构spring cloud - common-service 项目构建过程
  • (四)搭建容器云管理平台笔记—安装ETCD(不使用证书)
  • ***通过什么方式***网吧
  • .net core 客户端缓存、服务器端响应缓存、服务器内存缓存
  • .NET 读取 JSON格式的数据
  • .Net 路由处理厉害了
  • .NET面试题(二)
  • .sh 的运行
  • @autowired注解作用_Spring Boot进阶教程——注解大全(建议收藏!)
  • [C++参考]拷贝构造函数的参数必须是引用类型
  • [JS]Math.random()随机数的二三事
  • [JS入门到进阶] 7条关于 async await 的使用口诀,新学 async await?背10遍,以后要考!快收藏
  • [leetcode 双指针]
  • [LeetCode]—Add Binary 两个字符串二进制相加