使用kali的arpspoof实现断网和中间人攻击
注意:本文仅用于学习使用,切勿用于真实环境,否则,后果自负
一、ARP协议介绍
地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。
二、ARP欺骗的条件和局限性
1.局限性:
只能攻击同一局域网下的主机
2.攻击条件:
攻击方要知道被攻击方的IP地址,以及被攻击方的网关地址攻击方和被攻击方处于同一局域网下
三、ARP欺骗原理
ARP欺骗有两种攻击利用方式:
ARP欺骗断网攻击
和ARP中间人攻击
3.1 ARP欺骗断网攻击
1.概念
ARP欺骗(英语:ARP spoofing),又称ARP毒化(ARP poisoning,网上上多译为ARP病毒)或ARP攻击,是针对以太网地址解析协议(ARP)的一种攻击技术,通过欺骗局域网内访问者PC的网关MAC地址,使访问者PC错以为攻击者更改后的MAC地址是网关的MAC,导致网络不通。此种攻击可让攻击者获取局域网上的数据包甚至可篡改数据包,且可让网上特定计算机或所有计算机无法正常连线。
2.主机型欺骗:
攻击者欺骗受害主机,发送数据告诉受害主机说我是网关,然后受害主机会将攻击主机当作网关进行数据传输,这样就会导致受害主机无法正常上网。
3.网关型欺骗:
攻击者欺骗网关,发送数据告诉受网关,我是受害主机,网关将攻击主机当作受该机器进行数据传输,这样就会导致受害主机请求的数据发到攻击者主机。。
3.2 ARP中间人攻击
攻击主机欺骗受害主机,发送数据告诉受害主机说我是网关,然后受害主机会将攻击主机当作网关进行数据传输。同时发送数据告诉网关说我是受害主机,网关会将攻击主机当作受害主机进行数据传输,这样受害主机和网关之间的数据交互都会经过攻击主机,受害主机不会断网不会察觉,所以可以查看到各种通信数据。
四、测试环境介绍
攻击主机系统:
kali linux
:ip:192.168.61.135
受害主机系统:win10
:ip:192.168.61.137
五、arpspoof介绍
1.攻击工具:
kali 中的arpspoof
2.准备工具:
打开kali,如果没安装arpspoof可以apt install 一下
1 | apt install arpspoof |
3.工具介绍:
arpspoof有四个参数:
-i
表示网卡接口-c
表示主机信息,如果你的主机有多个IP,我的主机那个网卡上就一个IP-t
目标IP地址-r
目标网关地址
六、实战演示:ARP欺骗断网攻击
6.1 获取受害机器IP-fping
通过fping命令,查看当前局域网还存在那些主机,以确定要攻击的主机的ip地址
1 | fping -g 192.168.61.0/24 |
发现三台:一台是我的kali攻击机,一台是win10受害机,一台是网关
6.2 获取受害机器IP-nmap
推荐使用nmap
发现只有一台机器可以当受害机器,192.168.61.138:也就是我的靶机win10
192.168.61.1 vm8网卡
192.168.61.2 网关
192.168.61.138 靶机
192.168.61.254 DHCP服务器
192.168.61.135 kali本机
6.3 攻击前目标机器可正常上网
6.4 发起攻击
1 | arpspoof -i eth0 -t 192.168.61.138 192.168.61.2 |
6.5 攻击期间目标机器可正常上网
七、实战演示:ARP中间人攻击(可截获图片和数据)
7.1 概述
这种情况就不能使受害主机断网,受害主机的IP流量经过攻击主机的时候,攻击主机应该对受害主机的IP流量进行转发。
7.2 Linux限制:开启路由转发
linux系统出于安全考虑禁止了IP转发功能,所以需要手动打开,在/proc/sys/net/ipv4/ip_forward里面数值是0,改为1就允许了IP转发
使用echo 1 > /proc/sys/net/ipv4/ip_forward实现该操作
1 | echo 1 > /proc/sys/net/ipv4/ip_forward |
7.3 实验
7.3.1 中间人攻击前目标机器可正常上网
此时机器可正常上网
再查看物理地址,没有受到ARP欺骗攻击
1 | arp -a |
路由追踪看一下跳跃节点,直接到达网关192.168.61.2
1 | tracert www.baidu.com |
7.3.2 发起中间人攻击
1 | arpspoof -i eth0 -t 192.168.61.138 192.168.61.2 |
7.3.3 中间人攻击期间目标机器可正常上网
受害主机能正常上网
再次查看物理地址,MAC发生改变受到ARP欺骗攻击
再次路由追踪看一下跳跃节点,发现到达一个中间节点之后才到达网关192.168.61.2
1 | tracert www.baidu.com |
发现一个节点,但未捕获到IP,且这个节点在本机和网关之间
7.3.4 driftnet工具捕获目标浏览的图片
如果没有就进行安装:
1 | apt install driftnet |
出现一些有的没的错误,尝试一下换源
虚拟机中利用driftnet工具,可以捕获物理机正在浏览的图片。在kali中打开driftnet,即可得到受害机目前正在浏览的图片。
注意:这里只能看到HTTP页面的图片,无法查看HTTPS页面
7.3.5 ettercap截取账号密码:
借助于EtterCap嗅探软件,渗透测试人员可以检测网络内明文数据通讯的安全性,及时采取措施,避免敏感的用户名/密码等数据以明文的方式进行传输。
在命令行输入:
ettercap -Tq -i eth0
-T 是 –text,文本模式;
-q 是 –quiet,安静,不显示包的内容。
八、ARP攻击防范方式:
8.1 防御方式
8.1.1 静态ARP绑定
不同系统可能不一样,Windows如下:
1 | netsh -c "i i" add neighbors 4 "192.168.61.2" "00-50-56-fe-9c-79" |
8.1.2 使用防火墙
1.使用ARP防火墙
2.使用可防御ARP攻击的核心交换机,绑定端口-MAC-IP
8.2 防御实战
这是我们确认的网关192.168.61.2的MAC:00-50-56-fe-9c-79
现在正在受到ARP攻击
我们绑定静态arp
查看网卡:
1 | netsh i i show in |
绑定静态arp
1 | netsh -c "i i" add neighbors 4 "192.168.61.2" "00-50-56-fe-9c-79" |
查看arp缓存表:绑定成功
路由追踪直接跳到了192.168.61.2网关
删除静态绑定
1 | netsh -c "i i" delete neighbors 4 |
又跳到了欺骗状态,动态MAC