• 局域网中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
  • 相关阅读:
    单例模式-Singlleton
    C#中静态与非静态方法比较
    关于orcale的数据库脚本,记录下来,方便自己以后用到查找
    关于Oracle和SQLServer数据库在.net中拼接数据库语句的不同
    Oracle数据类型与.NET中的对应关系
    Got a packet bigger than 'max_allowed_packet' bytes
    .NET、C#和ASP.NET三者之间的区别(转)
    The use specified as definer('root'@'%') does not exist的解决办法
    app.config .exe.config .vshost.exe.config配置
    python学习:(3)自动化表单提交
  • 原文地址:https://www.cnblogs.com/cocowool/p/1550106.html
Copyright © 2020-2023  润新知