标签: packet-injection

如何进行多个问题的DNS查找?

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

DNS数据包结构如下:

0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F 
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|                      ID                       |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|QR|   Opcode  |AA|TC|RD|RA|   Z    |   RCODE   |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|                    QDCOUNT                    |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|                    ANCOUNT                    |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|                    NSCOUNT                    |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|                    ARCOUNT                    |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|         <ACTUAL QUESTIONS GO HERE>            |
|                                               |
|                     ...                       |
|                                               |
Run Code Online (Sandbox Code Playgroud)

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

如何使用 Linux 工具执行此类查询? …

testing dns packet-injection

6
推荐指数
1
解决办法
4552
查看次数

如何快速发送数据包?

我已经比较了两种工具来发送数据包的速度,hping以及packETHcli.packETHcli的命令行选项是

./packETHcli -i eth0 -m 2 -n 0 -d -1 -f icmpSample.pcap
Run Code Online (Sandbox Code Playgroud)

对于hping来说

hping --flood 192.168.0.1
Run Code Online (Sandbox Code Playgroud)

但在iptraf中,它表明发送hping速度的数据包比packETHcli快10倍.

这两种工具都使用原始套接字,但为什么会有这么大的差异?

这是获取源代码的链接.

hping:http://wiki.hping.org/

packETHcli:http://sourceforge.net/projects/packeth/

编辑: 我注意到hping使用AF_INET原始套接字,有效负载是TCP.packETHcli使用PF_PACKET原始套接字,在我的示例中,有效负载是带有ICMP有效负载的IP数据包.它是否会影响数据包发送速度?

EDIT2

这一次,我用ifconfig找到TX包之前之间运行后计数差异hping3packETHcli.并发现两个工具的数据包生成速率接近.hping3每秒约100000个数据包,每秒packETHcli约80000个数据包.

我还vnstat用来测量数据包生成速率.结果与我得到的数字一致ifconfig.

所以,似乎iptraf谎言.我iptraf用来监视TCP数据包的重复重发,而不更新IP ID号和TCP序列号.iptraf我认为我的数据包发送速率是每秒0个数据包.可能是iptraf不计算重复的数据包?

c sockets linux raw-sockets packet-injection

5
推荐指数
1
解决办法
3638
查看次数

使用nfqueue/scapy更改TCP Payload

您好我使用nfqueue和scapy我的目标是在我的NFQUEUE接收数据包,更改有效负载并重新发送它们.

我可以在没有任何问题的情况下更改像TTL这样的字段,但是当涉及到更改有效负载时,我正在解决问题.

当我更改有效负载时,我用wireshark嗅探数据包,显然我发送的数据包修改了有效负载,但服务器没有回答.

这是我的代码:

#!/usr/bin/env python

import nfqueue
from scapy.all import *
def callback(payload):
    data = payload.get_data()
    pkt = IP(data)

    pkt[TCP].payload = str(pkt[TCP].payload).replace("ABC","GET")

    pkt[IP].ttl = 40

    print 'Data: '+ str(pkt[TCP].payload)
    print 'TTL: ' + str(pkt[IP].ttl)

    del pkt[IP].chksum
    payload.set_verdict_modified(nfqueue.NF_ACCEPT, str(pkt), len(pkt))
def main():
    q = nfqueue.queue()
    q.open()
    q.bind(socket.AF_INET)
    q.set_callback(callback)
    q.create_queue(0)
    try:
        q.try_run() # Main loop
    except KeyboardInterrupt:
        q.unbind(socket.AF_INET)
        q.close()

main()
Run Code Online (Sandbox Code Playgroud)

我已将此规则设置为端口80的传出流量: iptables -I OUTPUT -s 192.168.1.10 -p tcp --dport 80 -j NFQUEUE

并且,为了测试它,例如我打开telnet到谷歌端口80,做一个GET / HTTP/1.1,这就是我所看到的:

TTL: 40
DATA: GET …
Run Code Online (Sandbox Code Playgroud)

python netfilter scapy tcp-ip packet-injection

5
推荐指数
2
解决办法
2万
查看次数

访问单元如何在Apple的HLS中的PES数据包中对齐?

Apple会指定这个吗?应该在PES数据包有效负载中放入多少个访问单元?

另外,我想知道PES包中存在哪些前缀起始码(如果有的话).我假设访问单元中第一个NAL单元之前的那个是无用的,不能放.对?

我想知道它是如何在HLS中专门完成的 - 不一定是任何其他MPEG-2 TS应用程序.

h.264 http-live-streaming packet-injection mpeg2-ts

2
推荐指数
1
解决办法
1680
查看次数