python - 使用 Python 注入(inject)原始 TCP 数据包

标签 python tcp

用 Python 注入(inject)原始 TCP 数据包的合适方法是什么?例如,我有由十六进制数字组成的有效负载,我想将该十六进制数字序列发送到网络守护进程:这样,如果我选择发送“abcdef”,我也会在网络上看到“abcdef”。但不是“6162636566”,如以下情况:

new = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
new.connect(('127.0.0.1', 9999))
new.send('abcdef')

我可以为此目的使用 Python 的 SOCK_RAW 吗?如果是这样,您能否给我一个使用 SOCK_RAW 发送原始 TCP 数据包的示例(因为我自己没有让它工作)

谢谢!

叶凡

最佳答案

尝试 scapy ,一个强大的交互式数据包操作程序。

例子:

%> sudo scapy

>>> packet1 = IP(dst='127.0.0.1')/TCP(dport=9999)
>>> packet1.payload = 'abcdef'
>>> send(packet1)
.
Sent 1 packets.
>>> packet1.show()
###[ IP ]###
  version= 4
  ihl= None
  tos= 0x0
  len= None
  id= 1
  flags= 
  frag= 0
  ttl= 64
  proto= ip
  chksum= None
  src= 127.0.0.1
  dst= 127.0.0.1
  \options\
###[ Raw ]###
     load= 'abcdef'
>>> 

关于python - 使用 Python 注入(inject)原始 TCP 数据包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2912123/

相关文章:

python - pyqt4中listWidget的返回值

Python __init__(self,**kwargs) 采用 1 个位置参数,但给出了 2 个

http - 服务器未发送的自定义响应 header (Rails Devise)

.net - 示例 TCP 客户端/服务器应用程序

c - 无需多线程套接字的多个连接

Python:匹配多个正则表达式模式之一并在匹配时提取 IP 地址

python - 使用 HDF5 和 Pandas 通过分块读取数据

python - 根据行值执行计算

c++ - 是否可以使用 WFP 发送带有有效负载的 tcp syn 数据包?

c - 检测 TCP 中的其他对等方已关闭