DNS攻击面分析


前序

DNS(Domain Name Server,域名服务器)是进行域名(domainname)和与之相对应的IP地址 (IP address)转换的服务器。DNS中保存了一张域名(domain name)和与之相对应的IP地址 (IP address)的表以解析消息的域名。 域名是Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。域名是由一串用点分隔的名字组成的,通常包含组织名,而且始终包括两到三个字母的后缀,以指明组织的类型或该域所在的国家或地区。

DNS是计算机域名系统 (Domain NameSystem 或Domain Name Service) 的缩写,它是由域名解析器和域名服务器组成的。域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器。其中域名必须对应一个IP地址,一个IP地址可以有多个域名,而IP地址不一定有域名。域名系统采用类似目录树的等级结构。域名服务器通常为客户机/服务器模式中的服务器方,它主要有两种形式:主服务器转发服务器。将域名映射为IP地址的过程就称为“域名解析”。

要干什么?

2020年CVE-2020-1350漏洞爆出来之后,一堆人对DNS server进行的漏洞挖掘,挖掘出了很多的新漏洞,因为实习期间做了相关的研究,所以想要总结一下DNS的漏洞,漏洞对应的poc在网上可能能搜到或者搜不到,但是因为DNS协议本身比较简单,根据漏洞构造poc还是不难的。

DNS的攻击面

DNS Query/Response
DNS解析流程分为递归查询和迭代查询,递归查询是以本地名称服务器为中心查询,递归查询是默认方式,迭代查询是以DNS客户端,也就是客户机器为中心查询。其实DNS客户端和本地名称服务器是递归,而本地名称服务器和其他名称服务器之间是迭代。
在这里插入图片描述

Zone Transfer/DNS Notify
当一个新的DNS服务器添加到区域中并配置为从DNS服务器时,它则会执行完全区域传送,在主DNS服务器上获取完整的资源记录副本;同时,为了保证数据同步,主域名服务器有更新时也会及时通知辅助域名服务器从而进行更新(增量区域传送)。

Dynamic Update
允许通过授权的更新者updater对权威DNS服务器的区数据动态的增加、删除资源记录。

下表来源于DNS安全实践
攻击面参照:Secure Domain Name System(DNS)Deployment Guide
在这里插入图片描述

漏洞简介

DNS Query/Response

CVE-2020-1350

漏洞出现在SigWireread,该函数会在向域名服务器查询记录,对返回的Sig记录进行处理,该漏洞在网上已有公开exp,自己也对exp进行了分析,链接在这里
在这里插入图片描述

CVE-2020-1228/0836

有两个内存泄漏的漏洞在迭代查询的时候,接收到返回报文,未释放一些变量
在这里插入图片描述

CVE-2021-24078

当接收到域名服务器的返回报文,对0xf0f0的报文进行存储,但是这个类型的报文是DNS服务器使用的类型,两者处理代码不同,造成混淆
在这里插入图片描述

DNS动态更新

CVE-2021-26877

TxtFileWrite函数是对域文件进行写入,动态更新
在这里插入图片描述

CVE-2021-26897

SigFileWrite函数接收Sig记录更新,缓存区未考虑溢出
在这里插入图片描述

CVE-2021-26893

整数下溢,Key记录动态更新如果长度小于4的话
在这里插入图片描述

CVE-2021-26894

Atma记录更新发生整数下溢
在这里插入图片描述

CVE-2021-26895

对AAAA记录更新发生整数下溢
在这里插入图片描述

CVE-2021-26896

wks记录也会发生类似溢出的漏洞
在这里插入图片描述

CVE-2021-xxxxx

Nsec3FileWrite,编号未知,可能会溢出一个字节
在这里插入图片描述

CVE-2021-xxxxx

Name_WriteCountNameToBufferAsDottedName,将DNS编码的域名转换成字符串,memcpy未加边界验证
在这里插入图片描述

DNS管理端漏洞

下面是CVE-2021-33749,CVE-2021-33750,CVE-2021-33752,CVE-2021-33756
KeyFlatWrite,管理端对key记录读取会造成溢出
在这里插入图片描述
NxtFlatWrite,同样缓存区没有做验证
在这里插入图片描述
WKSFlatWrite,缓存区也没有做验证
在这里插入图片描述
SigFlatWrite,也没有对记录的长度进行限制
在这里插入图片描述


文章作者: P1n9
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 P1n9 !
评论
 上一篇
恶意代码静态分析 恶意代码静态分析
一、传统检测方法 1. 基于恶意代码的特征码作为检测特征值的提取选择具体如下:(1) 特定子串:从计算机病毒体内提取、为病毒所特有的特征串。如特定提示信息,特定签名信息等。例如大麻病毒的提示为:“Your PC is now stoned
下一篇 
渗透测试总结 渗透测试总结
前序我觉得渗透测试有点像机械化的过程,遇到一个目标时,就要按照某个流程都走一遍,工具什么的都用上,当都弄完还没有思路,就需要有些其他的思想了,我想先大致总结一波这个机械化的流程该怎么走,然后收集一些好的渗透思路,学习别人的渗透路径,而前面那
2022-02-27
  目录