【问题标题】:Creating DNS packet with dnslib python使用 dnslib python 创建 DNS 数据包
【发布时间】:2014-08-11 20:42:31
【问题描述】:

在 python 2.6 中使用 dnslib

我创建了以下代码

#!/usr/bin/env python

from dnslib import *
import sys

a = DNSRecord.question(sys.argv[1])

print a.pack()

当我尝试执行以下操作时

a = DNSRecord.question(sys.argv[1],"A MX NS AAAA dnssec trace multiline")

dnslib.dns.DNSError: QTYPE: Invalid reverse lookup: [A MX NS AAAA dnssec trace multiline]

我想做的很简单

制作一个设置了以下标志的数据包,然后只打印打包的数据

这可以使用 dnslib 吗?

【问题讨论】:

    标签: python dns packet-injection


    【解决方案1】:
    1. tracemultiline 是特定于“dig”的标志,它们会影响 dig 的行为而不是有线协议。

    2. dnssec 标志设置 EDNS0 OPT RR 中的 DNSSEC OK(又名DO)位,您需要创建该位并将其放入查询的“附加”部分。但是 dnslib 中的 EDNS0 支持很差。

    3. 您不能在一个问题中输入多个QTYPE(即A MX NS AAAA) - 您需要为每个问题分别提出一个问题。

    【讨论】:

    • 你建议用 scapy 代替吗?
    • 嗯,这取决于你的最终目标是什么
    • 只需构造一个原始 dns 数据包 .. 使用 hping / nemesis 发送它,并将 A 查询和 DNSSEC 标志设置为 1
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-03
    • 1970-01-01
    • 2014-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多