网络安全:Dsniff与ARP欺骗

写在前面

本文主要针对的读者群体是有计算机网络基础的学习者,所以讲解不会特别详细,请有兴趣的自行学习。推荐谢希仁《计算机网络》第七版。

从ARP欺骗开始

ARP地址解析协议的要点

  1. 网络层使用的是IP地址,但在实际网络的链路上传送数据时,最终还是得用到MAC地址
  2. 在一个网络上可能经常会发生主机或适配器的变动(增,删,改)
  3. ARP协议在主机ARP高速缓存中存放一个从IP到MAC的经常更新的映射表
  4. 当主机A要向本局域网中的主机B发送IP数据报时,如果A的ARP高速缓存中有B的IP-MAC映射,就可以得到其映射的B的MAC地址,然后把这个地址写入MAC帧中,发送给B
  5. 如果A的ARP高速缓存中没有B的IP-MAC映射,那A就会在本局域网中发送一个广播分组,内容为“我的IP是IP(A),MAC是MAC(A),谁的IP是IP(B)?把你的MAC(B)发给我。”
  6. 本局域网中所有主机都收到这个分组,但只有主机B的IP与分组中询问的IP一致,所以正常情况下只有B对A作出了应答(想一想这里能干什么),应答内容是“我的IP是IP(B),我的MAC是MAC(B)”。注意这个响应分组是从B到A单播的
  7. A收到B的应答分组后就把B的IP-MAC映射写入自己的高速缓存表,下次要给B发分组时直接查表
  8. 为了解决主机和适配器增删改的问题,高速缓存表中每个映射关系都有生存时间,即不断进行更新
  9. 注意:ARP只是建立了一个局域网上的主机或路由器的IP-MAC映射关系

什么是ARP欺骗

上面说的要点,在不正常的情况下是可以这样的

  1. A的高速缓存表中本来有B的IP-MAC映射,它并没有询问哪个MAC对应的IP是IP(B),但是此时攻击者给A发送了一个分组,内容是“我的IP是IP(B),我的MAC是MAC(攻)”,这时如果没有做预防ARP欺骗的相关措施时,A就会把IP(B)-MAC(攻)的映射写入自己的高速缓存表,下次A要给B发送分组时,就直接发给了MAC(攻)。

  2. 现在考虑这样的情况:攻击机已经成功欺骗A,让A以为攻击机的IP就是IP(B)了,但此时真正的B要给A发分组了,内容为“我的MAC是MAC(B),我的IP是IP(B),我有一个内容,发给IP(A)-MAC(A)”,这时A会收到这个分组,然后对缓存表进行更新,把IP(B)-MAC(B)写入。为了解决这个问题,攻击机会不断的给A发送用于欺骗的分组,即使B偶然给A发送了分组使其进行了更新,很快就会在欺骗分组的影响下再次更新。如果B是网关,A是其下一台主机的话,在这种情况下A已经断网,它给B发送分组时全部都发到了攻击机上

那么更进一步可以怎样利用呢

攻击机频繁向靶机A发送欺骗分组,使其认为自己就是网关B,从而得到A给网关的所有流量。
这时进行流量转发,把A的请求内容以自己的名义

源MAC : MAC()
源IP : IP(A)
内容
目的IP : IP(B)
目的MAC : MAC(B)

发给网关,此时网关便建立了IP(A)-MAC(攻)的映射
网关欲将响应报文发给A
查找缓存表,找到了IP(A)-MAC(攻)的映射
然后发给了攻击机的MAC
攻击机再以自己的名义转发给靶机A
这样靶机A的所有流量就都经过这个中间人了

Kali下ARP欺骗实战

食材:
实体机(无线网卡)+Kali
或者
虚拟机+Kali+外置无线网卡

注意:虚拟机+Kali没有无线网卡应该是不行的,只能实现双向欺骗但不能进行流量转发
具体原因因为我对虚拟机网络配置的原理还不是特别清楚所以不敢妄言
但可以肯定的是我在VMWare下所有的联网方式都试过并且失败了

虚拟机适用的无线网卡在某宝上很多,关键字 kali 无线网卡
注意:懒得折腾请买免驱的
插上去主机有反应而VMWare没反应的给Kali安装一下VMWare Tools

正式开始
1.首先确保你的Kali+无线网卡和靶机接入到了同一个AP
然后看一下Kali的IP和网关

route -n

在这里插入图片描述

我的IP是192.168.137.102
网关 192.168.137.1

2.一个Kali自带的强大工具fping
更多用法
现在只用到了它的 -g参数
终端输入

fping -g 192.168.137.1/24

或者

nmap -sP 192.168.137.1/24

可以探测本网段的有效IP
后面的/24是掩码位数
现在我从中选择了一个靶机
IP:192.168.137.101
(其实是我的手机hhhh)
如果fping命令没有探测到你的目标,可能是主机作了相关配置防止被ping到
这时可以用

nmap -PN 192.168.137.101

试一下
Nmap详解
当然前提是你知道靶机的IP

3.开启流量转发(必须有网卡)

echo 1 > /proc/sys/net/ipv4/ip_forward

4.ARP欺骗

arpspoof -i wlan0 -t 192.168.137.101 192.168.137.1

-i Kali接入局域网使用的适配器名
-t 靶机ip 网关ip
执行后会不断发送ARP报文
告诉靶机192.168.137.101:
网关192.168.137.1的MAC是 攻击机MAC

5.对流量转发的一点说明

请注意流量转发不等于双向欺骗

我开始以为开启流量转发就是进行了双向欺骗,然后想到如果是这样那开两个终端双向欺骗就可以了,根本用不到无线网卡。再仔细一想,双向欺骗时,靶机向网关发出流量,实际上发给了攻击机,攻击机不会有任何响应,网关给靶机发送流量时也到了攻击机这里,同样不会有响应,所以这是不可能的,靶机同样会处于断网状态。
为了验证我的猜想,我用Wireshark进行了抓包
并没有抓到攻击机欺骗网关说它就是靶机的ARP报文
然后
在靶机192.168.137.101上ping了百度,抓了一个ICMP报文

源MAC:攻击机MAC
源IP:靶IP 192.168.137.101
目的IP:百度IP
目的MAC:网关MAC

这样在进行流量转发时就在网关的缓存表中建立了靶IP-攻击机MAC的映射

在这里插入图片描述6.Driftnet

driftnet

可以看到靶机正在通过网络浏览的图片
图一是在用手机QQ看别人的头像emmm

在这里插入图片描述图二是Kali中的driftnet显示
在这里插入图片描述driftnet原理及更多工具的使用待更

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值