防火墙ALG技术之DNS协议穿墙术

工控安全 3年前 (2021) admin
1,387 0 0
防火墙ALG技术之DNS协议穿墙术

时光飞逝,转眼间2021年已过大半,我们的“防火墙ALG技术”系列文章也已经更新到了第四期,之前推送的《防火墙ALG技术之安全策略》《防火墙ALG技术之FTP协议穿墙术》《防火墙ALG技术之TFTP协议穿墙术》可点击链接进行阅读本期介绍DNS协议穿越防火墙NAT,浅谈个人理解与认知。



DNS协议学习


DNS协议简介


DNS(Domain Name System,域名系统)是一个应用层协议,DNS 的作用是将人类可读的域名(如:www.winicssec.com) 转换为机器可读的 IP 地址(如:123.56.238.105)。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。DNS协议建立在UDP或TCP协议之上,默认使用 53号端口。客户端默认通过 UDP 协议进行通信,但是由于广域网中不适合传输过大的 UDP 数据包,因此规定当报文长度超过了512字节时,应转换为使用 TCP 协议进行数据传输。此时可能会出现如下的两种情况:


  • 客户端认为UDP响应包长度可能超过512字节,主动使用TCP协议;
  • 客户端使用UDP协议发送DNS请求,服务端发现响应报文超过了 512 字节,在截断的UDP响应报文中将TC设置为1,以通知客户端该报文已经被截断,客户端收到之后再发起一次 TCP求(该特性通常也被安全厂商作为一种有效防御DNS Query Flood攻击的手段)。


DNS服务类型


DNS服务器按照配置和实现功能的不同,包括多种不同的类型。


(1)授权型 DNS


一种授权型DNS服务提供一种更新机制,供开发人员用于管理其公用 DNS 名称。然后,它响应DNS查询,将域名转换为IP地址,以便计算机可以相互通信。授权型DNS对域有最终授权且负责提供递归型DNS服务器对IP地址信息的响应。


(2)递归型 DNS


客户端通常不会对授权型DNS服务直接进行查询。而是通常连接到称为解析程序的其他类型DNS服务,或递归型DNS服务。递归型DNS服务就像是旅馆的门童:尽管没有任何自身的DNS记录,但是可充当您获得DNS信息的中间程序。如果递归型DNS拥有已缓存或存储一段时间的DNS参考,那么它会通过提供源或IP信息来响应DNS查询。如果没有,则它会将查询传递到一个或多个授权型 DNS 服务器以查找信息。


DNS记录类型


DNS中,常见的资源记录类型有:


  • A记录(地址) ─ 指定域名对应的 IPv4 地址记录。
  • AAAA记录(地址) ─ 指定域名对应的 IPv6 地址记录。
  • NS记录(域名服务) ─ 指定解析域名或子域名的DNS服务器。
  • MX记录(邮件交换) ─ 指定接收信息的邮件服务器。
  • CNAME(规范)─ 一个域名映射到另一个域名或 CNAME 记录(www.winicssec.com指向 www.wnt.com )或映射到一个 A记录。
  • PTR记录(反向记录) ─ PTR 记录用于定义与 IP 地址相关联的名称。PTR 记录是 A 或 AAAA 记录的逆。PTR 记录是唯一的,因为它们以 .arpa 根开始并被委派给 IP 地址的所有者。

DNS工作流程


在浏览器中输入www.winicssec.com域名,操作系统会先检查自己本地的hosts文件是否有这个域名映射关系。如果有这个域名的映射,就先调用这个IP地址映射,完成域名解析;如果没有这个域名的映射,则查找本地DNS缓存,是否有这个域名映射关系,如果有,直接返回,完成域名解析。


如果hosts与本地DNS缓存都没有相应的域名映射关系,首先会找网络配置参数中设置的首选DNS服务器(记为A-DNS服务器),此服务器收到查询时,如果要查询的域名,包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析,此解析具有权威性。


如果要查询的域名,不由A-DNS服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析,此解析不具有权威性。


如果A-DNS服务器本地区域文件与缓存解析都失效,则根据A-DNS服务器的设置(是否设置转发器)进行查询,如果未用转发模式,本地DNS就把请求发至根DNS服务器(记为B-DNS服务器),B-DNS服务器收到请求后会判断这个域名(.com)是谁来授权管理,并会返回一个负责该顶级域名服务器的一个IP。A-DNS服务器收到IP信息后,将会联系负责.com域的这台服务器(记为C-DNS服务器)。C-DNS服务器收到请求后,如果自己无法解析,它就会找一个管理.com域的下一级DNS服务器地址(记为D-DNS服务器)给A-DNS服务器。当A-DNS服务器收到这个地址后,就会找D-DNS服务器,重复上面的动作,进行查询,直至找到www.winicssec.com主机。


如果用的是转发模式,A-DNS服务器就会把请求转发至上一级DNS服务器(记为E-DNS服务器),由E-DNS服务器进行解析;如果E-DNS服务器如果不能解析,那么会继续找根DNS或把转请求转至上上级,以此循环。


DNS报文分析


DNS 分为查询请求和查询响应,请求和响应的报文结构基本相同。DNS 报文格式如表1-1所示:


表1-1 DNS报文格式

防火墙ALG技术之DNS协议穿墙术


基础结构部分:DNS 报文的基础结构部分指的是报文首部,每个字段含义:上表中显示了 DNS 的报文格式。其中,事务ID、标志、问题计数、回答资源记录数、权威名称服务器计数、附加资源记录数这6个字段是DNS的报文首部,共12个字节。整个DNS 格式主要分为3部分内容,即基础结构部分、问题部分、资源记录部分,下面将详细地介绍每部分的内容及含义:


  • 事务 ID:DNS 报文的 ID 标识。对于请求报文和其对应的应答报文,该字段的值是相同的。通过它可以区分 DNS 应答报文是对哪个请求进行响应的。
  • 标志:DNS 报文中的标志字段。
  • 问题计数:DNS 查询请求的数目。
  • 回答资源记录数:DNS 响应的数目。
  • 权威名称服务器计数:权威名称服务器的数目。
  • 附加资源记录数:额外的记录数目(权威名称服务器对应 IP 地址的数目)。


问题部分:问题部分指的是报文格式中查询问题区域(Queries)部分。该部分是用来显示 DNS 查询请求的问题,通常只有一个问题。该部分包含正在进行的查询信息,包含查询名(被查询主机名字)、查询类型、查询类。


资源记录部分:资源记录部分是指 DNS 报文格式中的最后三个字段,包括回答问题区域字段、权威名称服务器区域字段、附加信息区域字段。


如图1-1所示,DNS请求报文,问题计数为1、域名为www.baidu.com


防火墙ALG技术之DNS协议穿墙术

图1-1 DNS请求报文


如图1-2-(a) 所示,DNS响应报文,可以看出问题计数为1、也就是对应的请求报文中的问题,而回答计数为3个。


防火墙ALG技术之DNS协议穿墙术

图1-2-(a) DNS响应报文


分析Answers字段,如图1-2-(b)所示:其中type A记录是在穿越防火墙NAT网关时需要重点关注内容。


防火墙ALG技术之DNS协议穿墙术

1-2-(b) DNS响应报文-Answers


分析Authoritative nameservers字段,如图1-2-(c)所示:


防火墙ALG技术之DNS协议穿墙术

1-2-(c) DNS响应报文-Authoritative


分析Additional records字段,如图1-2-(d)所示:


防火墙ALG技术之DNS协议穿墙术

1-2-(d) DNS响应报文-Additional

 

DNS协议穿越SNAT


DNS协议穿越SNAT使用场景为私网的用户访问公网上的DNS服务器进行A查询,根据DNS域名获得内部服务器的私网IP地址。如图2-1所示,Client A/B/C是DMZ区域内的主机,它们的域名在全网内是唯一的,但它们的地址是内部私有地址,其公网地址注册到 Internet 上的DNS服务器上。如果trust区域内的User想用DNS域名访问DMZ内部主机,它必须通过Internet 上的DNS服务器查询内部服务器的域名以获得其IP地址,但这个IP地址是公网地址,需要由DNS NAT应用级网关将其转换为私网地址,这样私网用户就可以在私网内通过域名方式直接访问内部服务器了。


防火墙ALG技术之DNS协议穿墙术

图2-1 DNS服务器位于公网外部


如图2-2-(a)、2-2-(b)、2-2-(c)所示,为私网客户端通过域名方式访问私网WEB服务器过程中的抓包示例,其重点在于公网DNS服务器的响应报文中A记录“123.56.238.105”在经过NAT后转换为“192.168.13.2”。


防火墙ALG技术之DNS协议穿墙术

图2-2-(a) SNAT时DNS穿墙-Client


防火墙ALG技术之DNS协议穿墙术

图2-2-(b) SNAT时DNS穿墙-DNS-Server


防火墙ALG技术之DNS协议穿墙术

图2-2-(c) SNAT时DNS穿墙-WEB-Server


DNS协议穿越DNAT


DNS协议穿越DNAT使用场景为公网的用户访问私网上的DNS服务器进行A查询,根据DNS名获得内部服务器的公网IP地址。如图3-1所示,Client A/B/C是DMZ区域内的主机,它们的域名在全网内是唯一的,但它们的地址是内部私有地址,只有在内部的DNS服务器上才有其域名和IP地址对应的信息。如果外部主机想访问DMZ区内的服务器,它必须通过内部DNS服务器查询内部主机域名以获得其IP地址,但这个IP地址是私有地址,需要由DNS NAT应用级网关将其转换为公有地址,这样外部主机可以通过域名访问到内部服务器。DNS NAT应用级网关仅对DMZ区域内的内部服务器的进行地址转换。


防火墙ALG技术之DNS协议穿墙术

图3-1 DNS服务器位于私网内部



附件—DNS协议穿墙抓包


  • 01_SNAT时DNS穿墙-WEB.pcap

  • 02_SNAT时DNS穿墙-DNS-Server.pcap

  • 03_SNAT时DNS穿墙-WEB-Server.pcap



下载方式


防火墙ALG技术之DNS协议穿墙术

微信扫码关注我们

回复DNS” 获取下载链接


防火墙ALG技术之DNS协议穿墙术
威努特简介
防火墙ALG技术之DNS协议穿墙术
北京威努特技术有限公司(简称:威努特)成立于2014年,专注于工控安全领域,以自主研发的全系列工控安全产品为基础,为电力、轨道交通、石油石化、市政、烟草、智能制造、军工等国家重要行业用户提供全生命周期纵深防御解决方案和专业化的安全服务。凭借持续的研发创新能力和丰富的实战经验入选全球六家荣获国际自动化协会ISASecure认证企业之一和亚太地区唯一全球网络安全联盟(GCA)创始成员。
威努特秉承首创的工业网络“白环境” 技术理念,迄今为国内及“一带一路”沿线国家的2000多家客户实现了业务的安全合规运行,已成为最受客户信赖的工控安全领军企业。同时,作为中国工控安全国家队,积极推动产业集群建设构建生态圈发展,牵头和参与工控安全领域国家、行业标准制定和重大活动网络安全保障工作,致力于为国家关键信息基础设施保驾护航。
威努特始终以“专注工控,捍卫安全”为使命,致力于为我国关键信息基础设施网络空间安全保驾护航!
防火墙ALG技术之DNS协议穿墙术

防火墙ALG技术之DNS协议穿墙术

防火墙ALG技术之DNS协议穿墙术

防火墙ALG技术之DNS协议穿墙术

防火墙ALG技术之DNS协议穿墙术

渠道合作咨询   张先生 18201311186

稿件合作   微信:shushu12121

原文始发于微信公众号(威努特工控安全):防火墙ALG技术之DNS协议穿墙术

版权声明:admin 发表于 2021年10月25日 上午12:01。
转载请注明:防火墙ALG技术之DNS协议穿墙术 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...