通过Sock(或代理)发送用Scapy创建的SYN数据包

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

我有此代码:

import socket
import socks

socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS4, "IP_SOCK", PORT_SOCK, True)
s = socks.socksocket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((target,port))
s.close()
print("Connection tested.")

它有效,但是如果我想添加有效载荷?我怎样才能做到这一点?例如,这里有此工作代码:

import socket
import socks
from scapy.all import *


def flood(src_ip, dst_ip, dst_port):
    socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS4, "IP_OF_SOCK", PORT_OF_SOCK, True)
    s = socks.socksocket(socket.AF_INET, socket.SOCK_STREAM)
    ip = IP(src=src_ip, dst=dst_ip)
    src_port = random.randint(20, 65000)
    transport = TCP(sport=src_port, dport=dst_port, flags="S")
    send(ip/transport/b"mydata")


if __name__ == '__main__':
    flood('SRC_IP', 'DST_IP', dst_port)

并且它确实发送“ mydata”有效负载。如果我用tcpdump截获,则可以在syn数据包中看到数据字段的长度和“ mydata”。

我想通过袜子或http代理发送它,但是我不知道该怎么办。

事实是我不需要建立连接,因为即使端口关闭我也想发送数据包。

python python-3.x sockets proxy scapy
1个回答
0
投票

代理(HTTP代理或Socks代理)不是网络级别的数据包转发器。相反,它是应用程序级别的有效负载转发器。这要求它实际上可以建立与目标的连接,并且客户端还必须建立与套接字的正确连接。因此,您试图做的是不可能的。

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