ARP攻击原理简析及防御措施
0x1 简介
网络欺骗攻击作为一种非常专业化的攻击手段,给网络安全管理者,带来严峻的考验。网络安全的战场已经从互联网蔓延到用户内部的网络,
特别是局域网。目前利用ARP欺骗的木马病毒在局域网中广泛传播,导致网络随机掉线甚至整体瘫痪,通讯被窃听,信息被篡改等严重后果。
0x2 ARP协议概述
ARP协议(address resolution protocol)地址解析协议
一台主机和另一台主机通信,要知道目标的IP地址,但是在局域网中传输数据的网卡却不能直接识别IP地址,所以用ARP解析协议将IP地址解
析成MAC地址。ARP协议的基本功能就是通过目标设备的IP地址,来查询目标设备的mac地址。
在局域网的任意一台主机中,都有一个ARP缓存表,里面保存本机已知的此局域网中各主机和路由器的IP地址和MAC地址的对照关系。ARP缓存
表的生命周期是有时限的(一般不超过20分钟)。
举个例子:假设局域网中有四台主机
主机 |
IP地址 |
MAC地址 |
网关 |
A |
192.168.0.2 |
Mac-a |
192.168.0.1 |
B |
192.168.0.3 |
Mac-b |
192.168.0.1 |
C |
192.168.0.4 |
Mac-c |
192.168.0.1 |
D |
192.168.0.5 |
Mac-d |
192.168.0.1 |
主机A想和主机B通信
主机A会先查询自己的ARP缓存表里有没有B的联系方式,有的话,就将mac-b地址封装到数据包外面,发送出去。没有的话,A会向全网络发送一个
ARP广播包,大声询问:我的IP地址是192.168.0.2,硬件地址是mac-a,我想知道IP地址是192.168.0.3的硬件地址是多少? 此时,局域网内所有
主机都收到了,B收到后会单独私密回应:我是192.168.0.3,我的硬件地址是mac-b,其他主机不会理A的
此时A知道了B的信息,同时也会动态的更新自身的缓存表
0x3 ARP协议的缺陷
ARP协议是建立在信任局域网内所有节点的基础上的,他的效率很高。但是不安全。它是无状态的协议。他不会检查自己是否发过请求包,
也不知道自己是否发过请求包。他也不管是否合法的应答,只要收到目标mac地址是自己的ARP reply或者ARP广播包(包括ARP reply和ARP request),
都会接受并缓存。
0x4 ARP攻击原理
ARP欺骗攻击建立在局域网主机间相互信任的基础上的
当A发广播询问:我想知道IP是192.168.0.3的硬件地址是多少?
此时B当然会回话:我是IP192.168.0.3我的硬件地址是mac-b,
可是此时IP地址是192.168.0.4的C也非法回了:我是IP192.168.0.3,我的硬件地址是mac-c。而且是大量的。
所以A就会误信192.168.0.3的硬件地址是mac-c,而且动态更新缓存表
这样主机C就劫持了主机A发送给主机B的数据,这就是ARP欺骗的过程。
假如C直接冒充网关,此时主机C会不停的发送ARP欺骗广播,大声说:我的IP是192.168.0.1,我的硬件地址是mac-c,
此时局域网内所有主机都被欺骗,更改自己的缓存表,此时C将会监听到整个局域网发送给互联网的数据报。
0x5 ARP病毒攻击症状
通常表现:-打开网页速度非常慢,甚至打不开
-提示IP地址冲突
-甚至导致校园网瘫痪断网
-一般会绑定木马病毒,窃取用户账号密码
0x6 ARP病毒攻击形式
- 从协议内部分析
-假冒ARP reply包(单波或广播),向单台主机或多台主机发送虚假的IP/MAC地址
-假冒ARP request包(单播或广播),实际上是单播或广播虚假的IP、MAC映射。
-假冒中间人,启用包转发向两端主机发送假冒的ARP reply,由于ARP缓存的老化机制,有时还需要做周期性连续性欺骗。
2. 从影响网络连接通畅的角度看
-对路由ARP表的欺骗
ARP病毒截获网关数据,让路由器获得错误的内网MAC地址,导致路由器把数据发送给错误的mac,是内网内的主机断网
-伪造内网网关
ARP病毒通过冒充网关,是内网计算机发送的数据无法到达真正的路由器网关,导致内网计算机断网
0x7 ARP欺骗攻击监测技术
- 手动监测
网络管理员可以通过命令查看主机的ARP表或路由器的ARP表
也可以用Sniffer工具进行抓包,查看可疑的<IP,MAC>地址映射
2.动态监测
- 被动监测 (ARP watch,ARP Guard)
仅监测网路中是否存在ARP欺骗,不主动向外发送ARP报文
-主动监测(ARP防火墙)
能够动态的监测局域网内针对本主机和针对网关的ARP欺骗,但如果配置错误,ARP防火墙会向局域网内发送大量的ARP报文,造成ARP报文的广播风暴,影响网络通信。
在这里推荐一款查看局域网Mac地址和主机IP匹配显示的软件:Nbtscan 很好用网上也有使用说明,对于查找攻击主机很犀利、
0x8 ARP欺骗攻击的防御
-ARP双向绑定
在pc端上 IP+mac 绑定
在网络设备(交换路由)上 采用ip+mac+端口绑定
网关也进行IP和mac的静态绑定
-采用支持ARP过滤的防火墙
-建立DHCP服务器
ARP攻击一般先攻击网关,将DHCP服务器建立在网关上
-划分安全区域
ARP广播包是不能跨子网或网段传播的,网段可以隔离广播包。VLAN就是一个逻辑广播域,通过VLAN技术可以在局域网中创建多个子网,就在局域网中隔离了广播。。缩小感染范围。 但是,安全域划分太细会使局域网的管理和资源共享不方便。
前几天体育课认识的一基友,遭ARP攻击了,问我怎么防,直接给我问懵了,就看了看,对于个人来说,在局域网内遭ARP攻击,还能咋办,除了装ARP防火墙,用代理,我也没辙。
不过最好的办法就是用arp –a命令查看一下arp缓存表,看谁在攻击你,打电话给网管,让网管灭了它。
ARP攻击原理简析及防御措施的更多相关文章
- 图解ARP协议(二)ARP攻击原理与实践
一.ARP攻击概述 在上篇文章里,我给大家普及了ARP协议的基本原理,包括ARP请求应答.数据包结构以及协议分层标准,今天我们继续讨论大家最感兴趣的话题:ARP攻击原理是什么?通过ARP攻击可以做什么 ...
- Java Android 注解(Annotation) 及几个常用开源项目注解原理简析
不少开源库(ButterKnife.Retrofit.ActiveAndroid等等)都用到了注解的方式来简化代码提高开发效率. 本文简单介绍下 Annotation 示例.概念及作用.分类.自定义. ...
- PHP的错误报错级别设置原理简析
原理简析 摘录php.ini文件的默认配置(php5.4): ; Common Values: ; E_ALL (Show all errors, warnings and notices inclu ...
- Java Annotation 及几个常用开源项目注解原理简析
PDF 版: Java Annotation.pdf, PPT 版:Java Annotation.pptx, Keynote 版:Java Annotation.key 一.Annotation 示 ...
- [转载] Thrift原理简析(JAVA)
转载自http://shift-alt-ctrl.iteye.com/blog/1987416 Apache Thrift是一个跨语言的服务框架,本质上为RPC,同时具有序列化.发序列化机制:当我们开 ...
- Spring系列.@EnableRedisHttpSession原理简析
在集群系统中,经常会需要将Session进行共享.不然会出现这样一个问题:用户在系统A上登陆以后,假如后续的一些操作被负载均衡到系统B上面,系统B发现本机上没有这个用户的Session,会强制让用户重 ...
- XSS攻击原理、示例和防范措施
XSS攻击 XSS(Cross-Site Scripting,跨站脚本)攻击历史悠久,是危害范围非常广的攻击方式. Cross-Site Stripting的缩写本应该是CSS,但是为了避免和Casc ...
- SIFT特征原理简析(HELU版)
SIFT(Scale-Invariant Feature Transform)是一种具有尺度不变性和光照不变性的特征描述子,也同时是一套特征提取的理论,首次由D. G. Lowe于2004年以< ...
- 基于IdentityServer4的OIDC实现单点登录(SSO)原理简析
写着前面 IdentityServer4的学习断断续续,兜兜转转,走了不少弯路,也花了不少时间.可能是因为没有阅读源码,也没有特别系统的学习资料,相关文章很多园子里的大佬都有涉及,有系列文章,比如: ...
随机推荐
- codeforces 454 D. Little Pony and Harmony Chest(状压dp)
题目链接:http://codeforces.com/contest/454/problem/D 题意:给定一个序列a, 求一序列b,要求∑|ai−bi|最小.并且b中任意两数的最大公约数为1. 题解 ...
- codeforces 794 C. Naming Company(贪心)
题目链接:http://codeforces.com/contest/794/problem/C 题意:有两个人每个人都有一个长度为n的字符串,两人轮流拿出一个字符串,放在一个长度为n的字符串的指定位 ...
- hdu 1176免费馅饼(记忆化搜索)
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1176 题意不解释了 简单的记忆化搜索可以拿来练练手,注意要从pos = 5 开始搜索 #include ...
- codeforces 459 D. Pashmak and Parmida's problem(思维+线段树)
题目链接:http://codeforces.com/contest/459/problem/D 题意:给出数组a,定义f(l,r,x)为a[]的下标l到r之间,等于x的元素数.i和j符合f(1,i, ...
- poj 3660Cow Contest
题目链接:http://poj.org/problem?id=3660 有n头奶牛还有m种关系a,b表示a牛逼b彩笔,所以a排名比b高 最后问你给出的关系最多能确定多少头奶牛的排名,而且给出的数据不会 ...
- android CTS 命令
> h //help Host: help: show this message help all: show the complete tradefed help exit: grace ...
- Codeforce Round #574(Div.2)
...
- php preg_match pcre回溯绕过
原理需要知识:正则NFA回溯原理,php的pcre.backtrack_limit设置. 正则NFA回溯原理正则表达式是一个可以被"有限状态自动机"接受的语言类."有限状 ...
- Elasticsearch 顶尖高手(1)
1.什么是搜索? 百度 = 搜索,这是不对的 垂直搜索(站内搜索) 互联网的搜索:电商网站,招聘网站,新闻网站,各种app IT系统的搜索:OA软件,办公自动化软件,会议管理,项目管理,员工管理 搜索 ...
- Python学习之旅:使用virtualenv创建Python环境及PyQT5环境配置
一.写在前面 从学 Python 的第一天起,我就知道了使用 pip 命令来安装包,从学习爬虫到学习 Web 开发,安装的库越来越多,从 requests 到 lxml,从 Django 到 Flas ...