一个DNS数据包的惊险之旅

踏上旅程

“小子,快去查一下www.paypal.com的IP地址,我急用,晚了我弄你!”,暴躁老哥一把关上了门,留我一个DNS数据包在冷冰冰的房间。

过了一会儿,一位大叔打开了门,带着我来到了一座叫tcpip大厦。
“等我一下啊,我马上回来”,大汉走进了这座大厦。

这时,我看到旁边另外有一个DNS数据包也在等着。
“Hi,你查什么域名呢?让我看看”,我上前打招呼。

他没有搭理,反而后退了几步,躲开了我。

这一来,我反而更好奇了!我老远瞟了一眼,只看到了部分:

这域名长的好生奇怪,在我的职业生涯还从未见过如此长如此怪异的域名。

没过多久,大叔提着一个箱子走了出来,箱子正面写了三个字母:UDP

“进箱子里去吧!”

“这个箱子也太寒酸了一点吧,才8个字节。你看旁边那位大叔提的TCP箱子多华丽,多厚实,足足有20个字节,能不能换一个?”

“人家是HTTP数据包,你是个DNS数据包,没那个命!不由得你选择,快进去吧,少废话”。

“王侯将相宁有种乎?DNS数据包就不配拥有TCP的箱子吗,我不服!”

“那倒也不是,其实也是可以的,只不过这一趟没机会了”

“咦?真的?”“快走了,废话可真多!”

接着,大叔又给我套了一个叫IP的箱子,把我带到网络码头,过了海关后,我就被发送了出去。

递归解析

很快我就来到DNS服务器。

“欢迎光临,请问需要打听点什么?”,一个留着络腮胡的老头接待了我。

“老板您好,我奉主人之命,想查一下www.paypal.com的IP地址”

“额,我不知道这个域名的地址”

“啊,我家主人说你知道啊,专程让我来问你”

“小兄弟别急,我不知道,但我可以帮你问问大宗师,他或许知道!”

“大宗师?他是谁”

“大宗师就是根域名服务器,遍布整个比特宇宙,总共13位大宗师,天下之事无所不知无所不晓”

“为什么是13位大宗师?”

“我没工夫给你解释,这有个地址:为何根域名服务器只有13个?,你先看着,我去帮你打听,稍候片刻”

片刻之后,老板果然回来了

“怎么样老板,大宗师告诉你www.paypal.com地址了吗?”

“开什么玩笑,大宗师何等尊贵身份,怎么会告诉我这些小网站的地址。”

“啊,那怎么办?”

“他倒是告诉了我一代长老.com的地址,让我去问问他。”
“一代长老又是什么?”

“一代长老就是顶级域名服务器,你所查的www.paypal.com就是归属.com这位一代长老管辖范围的,我再去问问他,他或许知道”

又过了一会儿,老板再次回来。

“怎么样老板,这次该有结果了吧!”

“容我喝口水”,大叔气喘吁吁的说。

“.com长老也不知道,不过他告诉了我负责paypal.com的二代长老地址,我还要再去问问他”

“还有二代长老!你们这不会是个传销组织吧!”

“小兄弟可不要胡言,再这样我不帮忙了”

“老板我错了,麻烦您再跑一趟”

老板又去了一会儿

“查到了,小兄弟,二代长老总算知道www.paypal.com的地址了!”,大叔一边喊着,一边朝我跑来。

“太好了!快发给我家主人”

只见老板一顿操作猛如虎,构建了一个DNS响应包,然后指着我一点,我的灵魂居然来到了这个响应包上。

“小兄弟,坐好了,送你回去复命了!”,老板推了我一把,把我发了出去。

半路遇险

没多久,就被人接收了,没想到回去的路走得比我来时更快。

不过我很快发现,这里不是我原来所在的Windows帝国啊!我有点慌,不知所措。

“小哥,累了吧,来喝口水歇息歇息再赶路吧,我们这里是路由器”,一位美丽的姑娘出现在我面前。

“多谢姑娘,那我就不客气了”,一路奔波正好休息休息,之前经过那么多路由器也没人招待我歇息,这次是遇到好人了。

坐下喝了口水,环顾四周,发现和我之前经过的路由器繁忙的景象不同,这里冷冷清清,并没有什么数据包来往。

心中涌上一股不好的感觉,此地不宜久留,还是速速赶路要紧。

刚起身要走,脑中一片眩晕,很快就两眼一抹黑,不省人事。

不知道过了多久,醒来的时候我又在网络中传输了,刚刚发生了什么一点印象也没了,就好像做了一场梦一般。

再起疑云

过了一会儿,终于回到了出发时的地方,熟悉的Windows帝国。

“你怎么才回来,慢的要死!”,很明显,暴躁老哥已经等得不耐烦了。

“DNS服务器那老板不靠谱,他也不知道,到处打听才帮我问到的这个地址,所以回来的慢了些”。

“等一下,不对!”,老哥一下子眉头紧锁。

“什么不对,IP地址错了吗?这老板,问了半天居然给我问了个错的”,我也有点生气,害我白跑一趟。

“你回来的路上有没有遇到什么人?”

“没有啊,我不记得我···”,话还没说完,我突然想起那位神秘的姑娘,难不成她对我做了什么?

“我什么我,别吞吞吐吐的”

“我想起来了,中途遇到一位姑娘,请我歇息喝口水”,我只好如实交代。

“然后呢?”“然后喝完水我就晕了,不知道发生了什么,醒了就又在网络传输中了,到底哪里不对啊?”,我被弄糊涂了。

“这就对了!你是遇到劫道的了,对方肯定在你晕了之后,修改了你的内容,你的IP地址已经不能使用了”。

“你是怎么知道我被改过啊?”,我非常好奇这一切究竟是怎么回事。

“这要换做以前,被改了我还确实不知道,不过现在不一样了,我们用上了DNSSEC技术,改没改,一验便知!”,老哥非常自豪的跟我说到。

“DNSSEC?这是个啥?”

“还在用DNS啊,又被劫持了吧?要不要试试我们的最新产品httpDNS?”,我还没回过神,隔壁QB浏览器公司的胖虎不知何时跑了过来。

“httpDNS?这又是个啥?”,我和老哥异口同声的问到。

未完待续·······

彩蛋

“老周,发现有可疑DNS请求,域名非常古怪”

“保持关注,去打听一下是哪个进程,注意别打草惊蛇”

欲知后事如何,请关注后续精彩......

精彩回顾

DDoS攻击:无限战争

一条SQL注入引出的惊天大案

内核地址空间大冒险:系统调用

闯荡Linux帝国:nginx的创业故事

一个HTTP数据包的奇幻之旅

远去的传说:安全软件群雄混战史

我是一个流氓软件线程

产品vs程序员:你知道www是怎么来的吗?

比特宇宙-TCP/IP的诞生

我是一个IE浏览器线程

我是一个杀毒软件线程

我是一个explorer的线程

原文地址:https://www.cnblogs.com/xuanyuan/p/12206894.html

时间: 2024-11-09 22:59:24

一个DNS数据包的惊险之旅的相关文章

Python解析DNS数据包

工作中有时需要对DNS数据包进行解析,抽取出其中的Qurey Name和Answer中的IP地址,今天写了一个简单的脚本分析PCAP包中的DNS,用到了dpkt模块. 我只抽取了关键的Query Name和Answer中的IP地址,没有解析授权和额外信息. 如果不想写脚本,可以使用tshark工具(wireshark的命令行版本),使用简单的命令行即可抽取想要的信息.但是tshark在抽取IP地址的时候,会将授权域和额外域中的IP地址也会一起抽取出来,难以区分. 1 #!/usr/bin/pyt

第二十九天:DNS数据包分析

前些日子分析了数据链路,网络层,传输层的数据包后,今天的认为是分析应用层的数据包,应用有千千万万,这次分析的是DNS的数据包. DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串.通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析).DNS协议运行在UDP协议之上,使用端口号53.--摘自百度百科. 第一步是查找dns协议格式.英文好直接看相

【转载】串口中怎样接收一个完整数据包的解析

这里以串口作为传输媒介,介绍下怎样来发送接收一个完整的数据包.过程涉及到封包与解包.设计一个良好的包传输机制很有利于数据传输的稳定性以及正确性.串口只是一种传输媒介,这种包机制同时也可以用于SPI,I2C的总线下的数据传输.在单片机通信系统(多机通信以及PC与单片机通信)中,是很常见的问题. 一.根据帧头帧尾或者帧长检测一个数据帧 1.帧头+数据+校验+帧尾 这是一个典型的方案,但是对帧头与帧尾在设计的时候都要注意,也就是说帧头.帧尾不能在所传输的数据域中出现,一旦出现可能就被误判.如果用中断来

Wireshark数据包分析之DNS协议包解读

*此篇博客仅作为个人笔记和学习参考 DNS协议包格式 DNS资源记录类型 DNS数据包分析(查询) Domain Name System (query)[Response In: 16]Transaction ID: 0x0002 #DNS ID号#Flags: 0x0100 Standard query #标志#0... .... .... .... = Response: Message is a query ##响应信息,该值为0,表示一个DNS查询.000 0... .... ....

一个简单的SOCKET程序的数据包结构和封解包函数

/*练习写套接字通信程序时候写的一段代码,本来想写个聊天室但写来写去进度卡在界面上接节下来都是通信部分的代码 因为只是试验用所以都是用C写的,等界面部分完工后会用类来封装一下 因为本人E文很烂所以变量和函数的命名是具有中国特色的,求理解.不过我注释的很详细了 谨以此文纪念我那坑爹的编程自学生涯......................**/ #include "stdio.h" #include <windows.h> //////////////////////////

Wireshark抓包分析---分析数据包

Wireshark数据抓包教程之认识捕获分析数据包 认识Wireshark捕获数据包 当我们对Wireshark主窗口各部分作用了解了,学会捕获数据了,接下来就该去认识这些捕获的数据包了.Wireshark将从网络中捕获到的二进制数据按照不同的协议包结构规范,显示在Packet Details面板中.为了帮助用户能够清楚的分析数据,本节将介绍识别数据包的方法. 在Wireshark中关于数据包的叫法有三个术语,分别是帧.包.段.下面通过分析一个数据包,来介绍这三个术语.在Wireshark中捕获

Linux数据包路由原理、Iptables/netfilter入门学习

相关学习资料 https://www.frozentux.net/iptables-tutorial/cn/iptables-tutorial-cn-1.1.19.html http://zh.wikipedia.org/wiki/Netfilter http://www.netfilter.org/projects/iptables/ http://linux.vbird.org/linux_server/0250simple_firewall.php http://linux.vbird.o

Wireshark数据抓包教程之认识捕获分析数据包

Wireshark数据抓包教程之认识捕获分析数据包 认识Wireshark捕获数据包 当我们对Wireshark主窗口各部分作用了解了,学会捕获数据了,接下来就该去认识这些捕获的数据包了.Wireshark将从网络中捕获到的二进制数据按照不同的协议包结构规范,显示在Packet Details面板中.为了帮助用户能够清楚的分析数据,本节将介绍识别数据包的方法. 在Wireshark中关于数据包的叫法有三个术语,分别是帧.包.段.下面通过分析一个数据包,来介绍这三个术语.在Wireshark中捕获

九度oj 题目1475:IP数据包解析

题目描述: 我们都学习过计算机网络,知道网络层IP协议数据包的头部格式如下: 其中IHL表示IP头的长度,单位是4字节:总长表示整个数据包的长度,单位是1字节. 传输层的TCP协议数据段的头部格式如下: 头部长度单位为4字节. 你的任务是,简要分析输入数据中的若干个TCP数据段的头部. 详细要求请见输入输出部分的说明. 输入: 第一行为一个整数T,代表测试数据的组数. 以下有T行,每行都是一个TCP数据包的头部分,字节用16进制表示,以空格隔开.数据保证字节之间仅有一个空格,且行首行尾没有多余的