DNS协议是一个二进制协议,不同于HTTP的文本协议使用任何文本编辑器都可以解析。二进制协议通常使用Wireshark等专门的协议解析器,才能够解析每个字段的含义。
有的时候DNS请求的数据并不是都以PCAP的格式进行存储。例如有的时候可能只有DNS应用层的二进制数据,没有传输层和网络层的数据。这个时候该如何解析DNS应用层数据?
本文介绍三种解码DNS应用层数据的方法,如下:
- 使用scapy构造PCAP数据包,借助wireshark解析。
- 使用scapy直接解码DNS层的数据 。
- 使用cyberchef进行解析。
DNS数据示例
访问如下链接可以得到DNS应用层的数据:
https://dns.alidns.com/dns-query?dns=uGkBAAABAAAAAAAAB2FsaWJhYmEDY29tAAABAAE
该链接为阿里公共DNS通过RFC 8484指定的经过TLS加密的HTTP连接提供DNS解析返回的数据,即DOH,背后的原理链接见这里。
该链接返回的内容是文件名称为dns-query的文件,只包含DNS的数据响应&