python 使用 scapy 伪造TCP三次握手

# 利用scapy完成三次握手:五元组:源IP,源端口,协议,目标IP,目标端口, S,SA,A, seq, ack
sport = random.randint(12000, 30000)  # 源端口号
seq = random.randint(10000, 20000)  # 开始序列号
# 1. 第一次握手发送SYN, 第二次握手获取响应 SYN-ACK
pkg_1 = IP(dst='192.168.110.130')/TCP(sport=sport, dport=5000, flags='S', seq=seq)
reply = sr1(pkg_1, timeout=5, verbose=False)
# 2. 从响应中获取ack作为第三次握手的seq, 获取seq+1作为ack
seq = reply[TCP].ack
ack = reply[TCP].seq + 1
pkg_2 = IP(dst='192.168.110.130')/TCP(sport=sport, dport=5000, flags='A', seq=seq, ack=ack)
sr1(pkg_2, timeout=3, verbose=False)

# 三次握手后,发送文本 PSH-ACK
reply = sr1(IP(dst='192.168.110.130')/TCP(sport=sport, dport=6666, flags='PA', seq=seq, ack=ack)/"伪造消息", verbose=False)
reply.show()

你可能感兴趣的:(渗透测试,python,tcp/ip,网络)