问题标签 [packet-injection]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3769 浏览

c++ - WinDivert - 修改数据包数据/有效负载内容

例如,我已经看到 WinDivert 的示例和示例代码用于修改数据包的属性,例如它们的目标地址。

但是我已经尝试过非常努力地搜索,并且在重新注入之前找不到任何修改数据包实际有效负载的文档或示例。

这是我到目前为止的代码:

在 //修改数据包。步骤我需要执行有效负载修改。具体来说,我希望用新字符串替换或完全覆盖数据。

在 WinDivert 文档中,我唯一能找到的处理数据包数据的方法是解析数据包的方法:

ppData:指向数据包数据/有效负载的输出指针。

但是我不确定这是否可以让我修改数据(也许可以?),因为它似乎只会让我检索数据包数据以进行输出。

那么我将如何编辑有效载荷?

0 投票
1 回答
150 浏览

wireshark - Libpcap ICMP 数据包从未响应

我正在尝试使用 Libpcap 尝试发送 ping,但每当我发送请求时,它们从未响应,没有给出错误,并且它看起来与通过 ping 实用程序发送的常规 ping 相同。

左边的数据包通过终端上的 ping 发送,右边的数据包通过我的应用程序发送。据我所知,数据字段是可选的,所以我不包括它,并且标识符/序列号可以是随机的,所以它们是随机的。

我在这里遗漏了一些明显的东西吗?

在此处输入图像描述

0 投票
2 回答
604 浏览

linux - 是否可以在使用 XDP 捕获数据包并在用户空间处理后重新传输数据包?

我需要编写一个位于两台服务器之间的应用程序,并通过向每个数据包添加特定的 HTTP 标头来修改从一台服务器发送到另一台服务器的 HTTP 数据包。
显然它必须尽可能快地完成,我发现通过使用 eBFP 和 XDP,我可以捕获具有高性能的数据包,但据我所知,XDP 的判断是abort、drop、pass 和 tx
使用tx verdict 我可以将捕获的数据包发送到用户空间程序进行修改,但我不知道如何在标头修改后发送数据包?此处的此视频解释了使用 eBPF 和 XDP 可以完成的工作,并指出可以完成,但我不知道如何操作。
任何帮助,将不胜感激。

0 投票
0 回答
435 浏览

c++ - 使用 pcap_inject 将数据包发送到 ip

我可以像这样使用 scapy 将数据包发送到特定的 IP 地址。现在,我是新手libcap,我想对pcap_inject(). 我无法在网上找到任何pcap_inject()用于发送到特定IP 地址的代码片段。谁能帮助我?

0 投票
0 回答
289 浏览

nginx - Nginx js_filter 脚本内存泄漏

我使用 NGINX 作为 TCP 流的反向代理。服务器侦听 6680 个 TCP 端口(不是拼写错误)并将它们推送到端口 5000 上的上游服务器。在过滤阶段,涉及一个 njs 脚本,它将原始目标端口注入数据包的有效负载,以便我的应用程序知道。

看来,当我取消注释使 njs 脚本运行的行时,

NGINX 内存使用量稳步增加到系统耗尽的程度。

我的 NGINX 配置:

inject_filter.js 脚本

我试过直接插入内容:include listen_tcp.conf; 在 nginx.conf 中没有任何变化。我也用一个虚拟的 TCP 侦听服务器 nc -l -k -vv -w 30 -m 999999 5000 替换了我的应用程序,但也没有运气。

任何帮助表示赞赏。

随意建议(生产就绪)在数据包有效负载中注入端口的替代方案。iptables 可以做到这一点吗?

0 投票
1 回答
100 浏览

network-programming - Spoofed Ping 数据包注入失败

TLDR:当数据包是来自“ping”计算机的成功数据包注入 PING 请求的相同结构数据包时,为什么 PING 请求的第 2 层数据包注入在计算机上不起作用?(本质上为什么欺骗性的 ping 请求会失败?)

测试设置/问题:

我有两台计算机,A (192.168.0.36) & B (192.168.0.36),直接通过以太网连接。

我在 A 上手动创建 PING 请求并将其注入到 ping B(即好像从 A 上的终端运行“ping 192.168.0.37”)。这可行,我可以看到 B 在计算机 B 上使用 Wireshark 接收并响应 ping 请求。

然后,我在 B 上手动创建并注入一个相同的PING 请求(来自上面的测试)以 ping B(即好像在 A 上运行“ping 192.168.037”,除了从 B 上本地运行的软件直接注入 B 的以太网接口) . 注入有效,Wireshark 显示了一个与从 A 到 B 的原始测试相同的数据包,预计没有响应。

我的问题是,为什么?

我假设我缺乏关于网络接口安全或操作系统安全设置或其他东西的基本知识。

我正在运行 Ubuntu 16.04。我正在使用手动创建的第 2 层标头注入数据包。我在我的可执行文件上设置cap_net_raw,cap_net_admin+eip 。遵循本网站的代码/指南:http ://www.pdbuchan.com/rawsock/rawsock.html

在 Wireshark 主图像中,首先 ping 条目显示了我自己注入的数据包到计算机 A 的成功事务。最后一个条目是我直接注入计算机 B 的欺骗数据包。数据包是相同的。第二个 Wireshark 并排显示数据包。 Wireshark 主视图 数据包并排

0 投票
1 回答
2027 浏览

testing - 如何使用多个问题执行 DNS 查找?

DNS 标准允许为每个查询指定超过 1 个问题(我的意思是在单个 DNS 数据包内)。我正在为 DNS 分析编写 Snort 插件,当 DNS 查询包含多个问题时,我需要测试它是否正常运行。

DNS 数据包结构如下所示:

因此,如果QDCOUNT大于 1,则单个查询中可能有多个 DNS 问题。

如何使用 linux 工具执行此类查询?dig domain1.example domain2.example仅创建 2 个单独的查询,每个查询有 1 个问题。host并且nslookup似乎当时只允许查询 1 个名称。

0 投票
0 回答
25 浏览

networking - 临时端口检测

我目前正在研究操作系统如何分配临时端口。
我知道几年前在应用程序的请求中,操作系统曾经逐步打开临时端口,但现在由于太容易检测到数据包注入,它已经改变了。

我的问题是,操作系统当前如何选择打开哪个临时端口?是否仍然可以在不强制所有可能端口的情况下进行数据包注入?(如果是,如何?)

谢谢

0 投票
0 回答
108 浏览

.net - 如何使用 WinDivert 驱动程序丢弃带有 SharpPacp 的数据包?

我知道 SharpPcap 主要是为数据包嗅探而不是修改或过滤而开发的,但现在我可以在其存储库中看到 WinDivert 将被添加到项目中但找不到任何文档。

我如何告诉 SharpPcap 使用该 WinDivert 以及如何通过它丢弃数据包?SharpPcap 中是否有任何等效的驱动程序用于拦截和修改 linux 的数据包?

0 投票
1 回答
117 浏览

wireshark - 如何通过 Macbook 捕获和发送数据包

我想捕获一些数据包并将其发送到接入点以进行测试。我有通过wireshark进行的数据包捕获,但我不知道如何继续能够从我的macbook发送这些数据包。

我尝试了 scapy、colaso​​ft 等,但它们似乎不起作用,因为它们需要外部 wifi 适配器才能向外中继这些数据包。

两个主要问题:

  1. 是否可以将自定义数据包从 macbook 发送到所需的接入点。(不使用外部网络适配器)。
  2. 如果是,我可以查看哪些工具/脚本选项?有什么建议吗?

我是网络新手,所以如果问题微不足道,请原谅我。谢谢!