目标:
A和B同时连接路由器C上网,在A上获取B上网的数据。
原理:
同一个局域网内通信的时候,消息发送者会广播自己的消息(消息中包括自己和目标的硬件地址),这时所有成员都会收到消息并根据目标地址判断是否是自己,如果不是则忽略该消息,如果是则通知上层应用收到消息。当无线网卡工作在混杂模式的时候可以把不是属于自己的消息也通知到上层。
在上面的例子中,B广播消息,C根据硬件地址接收消息,A则忽略消息。所以正常通信B->C的消息是不会经过A的。现在A工作在混杂模式,根据收到的消息把自己地址也改为C的,这样A也可以收到B的数据包,同时B和C并不知道,这便是ARP欺诈的原理。
操作系统:
Ubuntu(windows上可用:Cain+wireshark)
操作步骤:
1.安装ettercap和wireshark
sudo apt-get install wireshark
sudo apt-get install ettercap-text-only
sudo apt-get install ettercap-graphical
2.设置无线网卡的混杂模式(promisc mode)
sudo ifconfig wlx3c46d86bd3f5 promisc
(取消混杂模式可以用:sudo ifconfig wlx3c46d86bd3f5 -promisc)
3.ettercap启动和设置
(1)启动图形界面:sudo ettercap -G
(2)开启中间人嗅探(Unified sniffing...),并选择无线网卡
(3)选择主机列表,添加主机(先Scan,再list)
*如果无线网卡没有设置混杂模式(promisc mode),这里只能看到网关的地址
(2)添加要进行ARP嗅探的两台主机,然后选择ARP毒害(arp poisoning)
arp poison的原理:中间人同时接受正在通信的两台主机的消息,然后进行转发。
4.wireshark设置
(1)打开wireshark
sudo wireshark
(2)选择网卡并开始捕获
5.测试
开启手机(就是上面添加的192.168.2.10)连接WiFi开始上网,(WiFi热点的ip就是上面添加的192.168.2.1)
下图就是B和C的通信内容: