array(2) { ["docs"]=> array(10) { [0]=> array(10) { ["id"]=> string(3) "428" ["text"]=> string(77) "Visual Studio 2017 单独启动MSDN帮助(Microsoft Help Viewer)的方法" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(8) "DonetRen" ["tagsname"]=> string(55) "Visual Studio 2017|MSDN帮助|C#程序|.NET|Help Viewer" ["tagsid"]=> string(23) "[401,402,403,"300",404]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400964" ["_id"]=> string(3) "428" } [1]=> array(10) { ["id"]=> string(3) "427" ["text"]=> string(42) "npm -v;报错 cannot find module "wrapp"" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "zzty" ["tagsname"]=> string(50) "node.js|npm|cannot find module "wrapp“|node" ["tagsid"]=> string(19) "[398,"239",399,400]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400760" ["_id"]=> string(3) "427" } [2]=> array(10) { ["id"]=> string(3) "426" ["text"]=> string(54) "说说css中pt、px、em、rem都扮演了什么角色" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(12) "zhengqiaoyin" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400640" ["_id"]=> string(3) "426" } [3]=> array(10) { ["id"]=> string(3) "425" ["text"]=> string(83) "深入学习JS执行--创建执行上下文(变量对象,作用域链,this)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "Ry-yuan" ["tagsname"]=> string(33) "Javascript|Javascript执行过程" ["tagsid"]=> string(13) "["169","191"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511399901" ["_id"]=> string(3) "425" } [4]=> array(10) { ["id"]=> string(3) "424" ["text"]=> string(30) "C# 排序技术研究与对比" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "vveiliang" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(8) ".Net Dev" ["catesid"]=> string(5) "[199]" ["createtime"]=> string(10) "1511399150" ["_id"]=> string(3) "424" } [5]=> array(10) { ["id"]=> string(3) "423" ["text"]=> string(72) "【算法】小白的算法笔记:快速排序算法的编码和优化" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "penghuwan" ["tagsname"]=> string(6) "算法" ["tagsid"]=> string(7) "["344"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511398109" ["_id"]=> string(3) "423" } [6]=> array(10) { ["id"]=> string(3) "422" ["text"]=> string(64) "JavaScript数据可视化编程学习(二)Flotr2,雷达图" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "chengxs" ["tagsname"]=> string(28) "数据可视化|前端学习" ["tagsid"]=> string(9) "[396,397]" ["catesname"]=> string(18) "前端基本知识" ["catesid"]=> string(5) "[198]" ["createtime"]=> string(10) "1511397800" ["_id"]=> string(3) "422" } [7]=> array(10) { ["id"]=> string(3) "421" ["text"]=> string(36) "C#表达式目录树(Expression)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "wwym" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(4) ".NET" ["catesid"]=> string(7) "["119"]" ["createtime"]=> string(10) "1511397474" ["_id"]=> string(3) "421" } [8]=> array(10) { ["id"]=> string(3) "420" ["text"]=> string(47) "数据结构 队列_队列实例:事件处理" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "idreamo" ["tagsname"]=> string(40) "C语言|数据结构|队列|事件处理" ["tagsid"]=> string(23) "["246","247","248",395]" ["catesname"]=> string(12) "数据结构" ["catesid"]=> string(7) "["133"]" ["createtime"]=> string(10) "1511397279" ["_id"]=> string(3) "420" } [9]=> array(10) { ["id"]=> string(3) "419" ["text"]=> string(47) "久等了,博客园官方Android客户端发布" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(3) "cmt" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511396549" ["_id"]=> string(3) "419" } } ["count"]=> int(200) } 222 ARP攻击原理简析及防御措施 - 爱码网
xiaqiuchu

转自:https://www.cnblogs.com/manue1/p/4462327.html

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病毒攻击形式

  1. 从协议内部分析

-假冒ARP reply包(单波或广播),向单台主机或多台主机发送虚假的IP/MAC地址

-假冒ARP request包(单播或广播),实际上是单播或广播虚假的IP、MAC映射。

-假冒中间人,启用包转发向两端主机发送假冒的ARP reply,由于ARP缓存的老化机制,有时还需要做周期性连续性欺骗。

  2.  从影响网络连接通畅的角度看

-对路由ARP表的欺骗

   ARP病毒截获网关数据,让路由器获得错误的内网MAC地址,导致路由器把数据发送给错误的mac,是内网内的主机断网

-伪造内网网关

   ARP病毒通过冒充网关,是内网计算机发送的数据无法到达真正的路由器网关,导致内网计算机断网

 

0x7 ARP欺骗攻击监测技术

  1. 手动监测

   网络管理员可以通过命令查看主机的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缓存表,看谁在攻击你,打电话给网管,让网管灭了它。

分类:

技术点:

相关文章: