ARP攻击实现方案

来源:互联网 发布:linux vim注释 编辑:程序博客网 时间:2024/05/16 08:48

ARP(地址解析协议)攻击:通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞,攻击者只要持续不断的发出伪造的ARP响应包就能更改目标主机ARP缓存中的IP-MAC条目,造成网络中断或中间人攻击。

1.Dsniff安装

本次实验中采用arpspoof工具来实现arp攻击,自己本人的虚拟机装的是CentOS-6.5 64位系统,dsniff采用yum安装的方式比较简单,会自己下载相应的依赖包,不建议源码安装方式(库依赖会出现很大问题)。在yum安装dsniff前,我们需要下载安装EPEL的源(repo),因为dsniff的rpm包是通过EPEL的源下载的。下载地址为
https://dl.fedoraproject.org/pub/epel/,官网对EPEL的介绍http://fedoraproject.org/wiki/EPEL。
我的系统版本为6.x,所以下载RPM-GPG-KEY-EPEL-6包安装后,yum install dsniff即可,man arpspoof查看arp工具的使用方法。

2.arpspoof使用

        如上图所示,在局域网192.168.0.x网段中,电脑A和B为局域网通信的两台主机(已知mac和ip),攻击者是局域网内部的任意一台主机。最简单的arp攻击命令为:arpspoof -i eth0 -t des_ip source_ip。
         -i 指定攻击机C的目标网卡,数据通过eth0网卡经过攻击机C;-t 指定伪造目标主机mac的ip地址,按照上图示例我们执行arp攻击步骤为:
1.开启一个终端:执行arpspoof -i eth0 192.168.0.2 192.168.0.1命令,攻击者C会伪造B的mac地址欺骗A,A发往B的数据会通过网卡eth0发给攻击者B。
2.另开启一个终端:执行arpspoof -i eth0 192.168.0.1 192.168.0.2命令,攻击者C会伪造A的mac地址欺骗B,B发往A的数据会通过网卡eth0发给攻击者C。
3.执行1和2后,电脑A和B通信的数据都会经过C,假设B是局域网网段的网关,我们在主机C上执行相应的干扰命令,可中断A与外部网络的通信或限制A与外部网络的传输速率。
4.测试验证:
1)可在攻击机C上通过wireshark查看网卡eth0,可知A与B通信的数据包经过了C,确认C达到了ARP欺骗的效果;
2)开启B的Apache服务,在/var/www/html目录下放一个视频文件,在A上执行wget下载那个视频,在C上执行tcptrace命令,分析tcp数据传输确实经过了攻击机C。
5.攻击机C实现干扰:1)和2)可限制A与B通信传输速率,3)会中断A与B的通信。
1)设置TCP传输过程的滑动窗口的大小:iptables -t broute -A BROUTING  -o bro -p tcp --tcp-flags SYN,RST  SYN -j TCPMSS --set-mss 100。
     2)对端口eth0延时100ms(流量控制):tc qdisc add dev eth0 root netem delay 100ms
    3)断开所有TCP的连接命令 iptables -I FORWARD -p tcp --dport 80 -j REJECT --reject-with tcp-reset
6.ARP的篡改数据包攻击干扰实现攻击机针对A和网关B发起ARP欺骗攻击,使得A和网关B之间的通信数据经过攻击机C,然后可以控制选择性地丢弃A与网关B之间的数据包,控制它们之间的数据传输速率,或者对数据包进行篡改,甚至可以中断两者之间的通信。
步骤6的技术实现需要学习iptables、libnetfilter-queue和SOCK_RAW的知识,iptables可将数据链路层的数据包拿到网络层,libnetfilter-queue库提供的接口可将内核的数据包拿到用户空间,SOCK_RAW可将用户空间的数据包直接发送到内侧网卡路由到目的主机,后面我会写一篇UDT可靠数据包传输的博客,会用到这三种技术,感兴趣的朋友可以了解一下。
0 0
原创粉丝点击