在python中生成伪造的UDP数据包

在python中生成伪造的UDP数据包,python,sockets,networking,spoofing,Python,Sockets,Networking,Spoofing,如何在不使用scapy库的情况下使用pythonsockets创建伪造的UDP数据包。 我已经创建了这样的套接字 sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # UDP sock.sendto(bytes('', "utf-8"), ('192.168.1.9', 7043))# 192.168.1.9dest 7043 dest port 我认为您的意思是更改IP层(UDP层基于IP层)的源地址和目标地址 为此,您需要使用原

如何在不使用scapy库的情况下使用pythonsockets创建伪造的UDP数据包。 我已经创建了这样的套接字

sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # UDP
sock.sendto(bytes('', "utf-8"), ('192.168.1.9', 7043))# 192.168.1.9dest 7043 dest port

我认为您的意思是更改IP层(UDP层基于IP层)的源地址和目标地址

为此,您需要使用原始套接字。(SOCK_RAW),这意味着您必须构建从以太网层到UDP层的所有内容

老实说,没有斯卡皮,这是一项艰巨的工作。如果要使用scapy,需要两行代码:

pkt = Ether()/IP(src=“...”, dst=“...”)/UDP()/...
sendp(pkt)

我真的建议你使用scapy。代码本身很小,所以我看不出不使用它的理由。这显然是python中最简单的一个,我想你的意思是从IP层(UDP层基于IP层)更改源地址和目标地址

为此,您需要使用原始套接字。(SOCK_RAW),这意味着您必须构建从以太网层到UDP层的所有内容

老实说,没有斯卡皮,这是一项艰巨的工作。如果要使用scapy,需要两行代码:

pkt = Ether()/IP(src=“...”, dst=“...”)/UDP()/...
sendp(pkt)

我真的建议你使用scapy。代码本身很小,所以我看不出不使用它的理由。这无疑是python中最简单的搜索结果之一,这是google搜索的第一个结果,比如“欺骗udp数据包python”,因此我将使用scapy扩展@Cukic0d的答案

使用scapy CLI工具(一些Linux发行版将其单独打包到scapy Python库):

pkt=IP(dst=“1.1.1.1”)/UDP(sport=13338,dport=13337)/“fm12abcd”
发送(pkt)
这将通过源端口
13338
、目标端口
13337
和内容
fm12abcd
向IP
1.1.1
发送UDP数据包

如果出于某种原因(如通过非默认路由的VPN发送)需要访问某个接口,可以使用
send(pkt,iface='tun0')
来指定它

@Cukic0d的答案的一个不同之处是,通过使用
send
发送第3层数据包,而不是使用
sendp
发送第2层数据包,此解决方案更加灵活。因此,无需在正确的以太网报头前加上
Ether()
,这在某些情况下可能会导致问题,例如:

WARNING: Could not get the source MAC: Unsupported address family (-2) for interface [tun0]
WARNING: Mac address to reach destination not found. Using broadcast.

这是谷歌搜索的第一个结果,比如“欺骗udp数据包python”,所以我将使用scapy扩展@Cukic0d的答案

使用scapy CLI工具(一些Linux发行版将其单独打包到scapy Python库):

pkt=IP(dst=“1.1.1.1”)/UDP(sport=13338,dport=13337)/“fm12abcd”
发送(pkt)
这将通过源端口
13338
、目标端口
13337
和内容
fm12abcd
向IP
1.1.1
发送UDP数据包

如果出于某种原因(如通过非默认路由的VPN发送)需要访问某个接口,可以使用
send(pkt,iface='tun0')
来指定它

@Cukic0d的答案的一个不同之处是,通过使用
send
发送第3层数据包,而不是使用
sendp
发送第2层数据包,此解决方案更加灵活。因此,无需在正确的以太网报头前加上
Ether()
,这在某些情况下可能会导致问题,例如:

WARNING: Could not get the source MAC: Unsupported address family (-2) for interface [tun0]
WARNING: Mac address to reach destination not found. Using broadcast.

你的问题是什么?@周泉问题是我如何创建伪造的UDP数据包,我的意思是我如何将源ip(我的计算机ip)更改为其他随机的。你的问题是什么?@周泉问题是我如何创建伪造的UDP数据包,我的意思是我如何更改源ip(我的计算机ip)你能为这个案例提供完整的scapy陈述吗?你能为这个案例提供完整的scapy陈述吗?