局域网中ARP攻击的查找与防范(Linux环境)

ARP是什么?

Address Resolution Protocol是指当知道一个宿主的网络层地址(IP)去寻找对应的链路层地址(hardware address)的一个方法。这个协议在RFC826中有明确的规定。

ARP协议已经被实现在各种各样的网络上,它不仅仅是一种IP专用或者局域网专用的协议,它能够映射不同类型的网络层协议地址到实际的物理地址上,但是目前的网络环境下,ARP更多的用来解析IP地址和Mac地址的对应关系。ARP也被用在令牌网络、FDDI、IEEE 802.11和ATM中。在下一代IPV6互联网中,ARP将主要提供NDP(Neighbour Discovery Protocol)功能。

Fedora下几个常用的arp命令。

arp    操作系统的arp缓存。

    arp -s hostname hw_adr    可以指定静态的ip:mac对应关系,从而避免受到arp攻击的影响

arping    arping是一个用来发现网络信息的应用程序。相当与ping命令,不过是在更基础的一层进行通讯的测试。使用方法

            arping    {ip}    也可以指定发送请求的次数,具体的使用可以 man arping

arptables    arptables是linux内核中用来设置、管理arp过滤规则的映射表格。一般用来防止ARP欺骗,用户系统中可能会定义多个arptable,一个table中包含一些列的规则,同时也包含着用户的规则。

    可以通过arptables来防止Arp request获得你的Mac地址,这样攻击者会认为你的服务器是不存在的,这样就可以避免受到arp的攻击。

arpwatch    arpwatch是一款用来监测计算机网络中arp活动的开源软件。当它运行时会产生一个带时间戳的IP-MAC对,监测ARP活动的原因是为了防止ARP欺骗,这款软件由伯克利国家实验室开发(Lawrence Berkeley National Laboratory)。

ARP欺骗    ARP欺骗也被称为Arp Posioning,是一种用来攻击有线或者无线网络的攻击手法。ARP欺骗允许攻击者探测网络中的数据帧、修改数据流量或者停止数据流量。这种攻击方法只能使用在利用ARP进行IP-Mac映射的网络中。

    ARP攻击的主要就是向局域网发送伪装过的ARP信息,从而将攻击者的Mac地址和网络中的另一个节点IP链接起来(比如默认的网关)。这样,所有送往这个地址的信息都会被错误的投递到攻击者的Mac地址,攻击者可以查看这些信息并决定如何处理。他可以不加修改的送往这些数据原本要送往的地址,也可以将修改后的信息发送到原地址,还可以将所有的流量导入到另外一个IP,从而发起DOS进攻。

ARP欺骗工具    Arpspoof、Arppoison、Cain and Abel、Ettercap都可以用来发起Arp攻击。

arpoison        arpoison的安装需要libnet的支持,有了这些下载arpoison的源文件进行编译,在fedora下编译时需要引用/usr/lib/libnet.so,编译成功后就可以使用arpoison了。

    使用方法    Usage: -i <device> -d <dest IP> -s <src IP> -t <target MAC> -r <src MAC> [-a] [-w time between packets] [-n number to send]

补充资料:修改Mac地址

    操作方法是先把网卡禁掉,ifconfig eth0 down,否则会报告系统忙,无法更改;然后用ifconfig etho hw ether 新的mac地址就可以;最后再启用网卡 ifconfig eth0 up;

    如果想永久修改Mac地址,也可以将上面的命令写在 /etc/rc.d/rc.local 中,这样每次重启后就会执行这个脚本    

参考资料

1、ARP            http://en.wikipedia.org/wiki/Address_Resolution_Protocol

2、RFC826        http://tools.ietf.org/html/rfc826

3、Arptables        http://en.wikipedia.org/wiki/Arptables

4、Arpwatch        http://en.wikipedia.org/wiki/Arpwatch

5、ARP防范与攻击    http://home.phpchina.com/space.php?uid=13636&do=blog&id=55489

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏李家的小酒馆

UDP和TCP的区别

UDP(User Data Protocol,用户数据报协议)   UDP是一个无连接,不保证可靠性的传输层协议,也就是说发送端部关心发送的数据是否到达目标主机...

38000
来自专栏吴伟祥

计算机网络基础知识总结 转

计算机网络学习的核心内容就是网络协议的学习。网络协议是为计算机网络中进行数据交换而建立的规则、标准或者说是约定的集合。因为不同用户的数据终端可能采取的字符集是不...

10310
来自专栏xcywt

TCP/IP详解 卷1 第十九章 TCP的交互数据流

19.1 引言 成块数据:比如ftp、电子邮件、Usenet新闻 交互数据:Telnet、Rlogin  成块数据的报文段基本上都是满长度(full-size)...

29680
来自专栏Code_iOS

iOS 网络编程(二)TCP协议小结

两个应用程序通过T C P连接交换8 bit字节构成的字节流。T C P不在字节流中插入记录标识符

19210
来自专栏Java 源码分析

TCP 总结

TCP 总结 计算机网络中比较中要的无非就是 TCP/IP 协议栈,以及应用层的 HTTP 和 HTTPS 。 前几天一直炒的的比较火的就是 HTTP/2.0...

41370
来自专栏java一日一条

每个程序员应该知道的计算机网络知识

作为一名程序员, 不可能不与网络打交道. 现在我们的手机, 电脑, 不夸张地说, 离开了网络就是一块’废铁’, 它们的作用将大打折扣.. 本文的作用呢, 主要是...

44910
来自专栏机器学习从入门到成神

校招面试知识点复习之计算机网络

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_35512245/articl...

17510
来自专栏北京马哥教育

tcp_tw_reuse、tcp_tw_recycle 使用场景及注意事项

linux TIME_WAIT 相关参数: net.ipv4.tcp_tw_reuse = 0 表示开启重用。允许将TIME-WAIT sockets重...

860110
来自专栏大内老A

使命必达: 深入剖析WCF的可靠会话[概念篇]

在《实例篇》中,我通过可靠会话成功地进行了美女图片的传输,相信大家在保了眼福之余,会对WCF的可靠会话的功用具有一个深刻的认识。实际上,这涉及到WS中一个重要的...

19990
来自专栏玄魂工作室

Hacker基础之工具篇 arp-scan

地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议

19630

扫码关注云+社区

领取腾讯云代金券