首页 > 其他分享 >DNSLOG平台搭建及其原理分析

DNSLOG平台搭建及其原理分析

时间:2023-08-25 14:01:08浏览次数:37  
标签:DNSLOG 记录 域名 缓存 DNS 服务器 原理 解析 搭建

一、DNS基本概念

0x1:DNS中不同域名类型概念

DNS的全称是Domain Name System(网络名称系统),它作为将域名和IP地址相互映射,使人更方便地访问互联网。当用户输入某一网址如littlehann.com,网络上的DNS Server会将该域名解析,并找到对应的真实IP如101.37.97.51,使用户可以访问这台服务器上相应的服务。

DNSlog就是存储在DNS Server上的域名访问信息,它记录着用户对域名littlehann.com等的访问信息,类似日志文件。

按照解析类型分类,DNS域名有如下几种:

  • A记录:A (Address) 记录是用来指定主机名(或域名)对应的IP地址记录。就是说:通过A记录,大家可以设置自己的不同域名转到不同的IP上去。如:
    • www.dns.la转到IP 116.255.202.1
    • web.dns.la 转到IP 116.255.202.11
    • mail.dns.la 转到IP 116.255.202.111
  • MX记录(Mail Exchange):邮件交换记录,用户可以将该域名下的邮件服务器指向到自己的Mail Server上,然后即可自行操作控制所有的邮箱设置。
  • CNAME(Canonical Name)记录:通常称别名解析,可以将注册的不同域名都转到一个域名记录上,由这个域名记录统一解析管理,与A记录不同的是,CNAME别名记录设置的可以是一个域名的描述而不一定是IP地址。
  • URL(Uniform Resource Locator)转发:网址转发功能,如果您没有一台独立的服务器(也就是没有一个独立的IP地址)或者您还有一个域名B,您想访问A域名时访问到B域名的内容,这时您就可以通过URL转发来实现。URL转发可以转发到某一个目录下,甚至某一个文件上。而CNAME是不可以,这就是URL转发和CNAME的主要区别所在。
  • NS(Name Server):NS记录是域名服务解析记录,NS用来指定该域名由哪个DNS服务器来进行解析,可以把一个域名的不同二级域名分别指向到不同的DNS系统来解析。
  • AAAA记录:IPV6解析记录,该记录是将域名解析到一个指定的IPV6的IP上。

0x2:DNS解析顺序 

当客户端对域名发起访问时,会将解析请求发送给递归解析服务器,递归服务器会代替客户端进行全球递归查询。

  • 首先递归服务器会请求根域名服务器,根域名服务器根据域名后缀,告知对应的顶级域名服务器
  • 递归服务器再向顶级服务器发起请求,顶级域名服务器告知对应的权威服务器
  • 递归服务器向权威服务器发起请求,权威服务器告知解析结果
  • 递归服务器将结果告知客户端,客户端完成访问

以上是DNS解析的标准流程,但是由于各种DNS缓存的存在,导致DNS解析环节更为复杂。

所谓DNS缓存是指DNS返回正确的IP地址之后,系统会将这个结果临时储存起来,并为缓存设定一个失效时间(TTL值),在TTL失效前,当再次访问这个网站,系统就会直接从DNS 缓存中将结果返回,而不必再次委托递归服务器进行全球解析查询,加快了DNS解析的流程。

当然TTL值失效后,系统还会自动再次询问DNS服务器以获取最新的解析结果。

按照缓存位置的不同,DNS缓存可以分为以下几类:

  • (1)浏览器DNS缓存:浏览器会根据一定频率缓存DNS记录
  • (2)本地DNS缓存:如果浏览器缓存中找不到解析记录,就会去询问操作系统中的缓存
  • (3)本地HOSTS文件:HOSTS是记录域名与IP地址一一映射关系的本地文件,Windows系统中位于C:\Windows\System32\drivers\etc
  • (4)路由器DNS缓存:我们常用的路由器也带有自动缓存功能,路由器DNS被篡改会造成域名劫持,将访问网址定位到另外一个服务器
  • (5)递归服务器缓存:递归服务器在将解析结果告知客户端的同时,将记录缓存下来,当下次请求同一个域名时,直接会将记录返回,而无需再进行全球查询

DNS解析顺序是“先查缓存,再递归解析”,查询顺序为:浏览器缓存—系统缓存—路由器缓存—递归服务器缓存—递归查询。

参考链接:

https://developer.aliyun.com/article/331012 

 

二、DNSlog安全风险分析

0x1:为什么需要DNSlog平台

在某些情况下,无法利用漏洞获得回显。但是,如果目标可以发送DNS请求,则可以通过DNS log方式将想获得的数据外带出来(oob)。

DNS log常用于以下情况:

  • SQL盲注
  • 无回显的命令执行
  • 无回显的SSRF

0x2:为什么能够出现DNSlog平台这种技术

首先,DNS服务是互联网核心基础设施之一,DNS query外连端口和外连请求几乎在整个互联网上都是默认开放的,这对攻击者来说就是一个绝佳地稳定oob通道。

其次,因为DNS解析服务整体上看是一个分布式地架构,NS server则是这个分布式架构的基础设施,同时攻击者可以很容易地创建自己的NS server,从而给攻击者利用DNS递归查询流程作为oob信息收集提供了极大地便利。

攻击者劫持受害机器的执行流后,发起DNS query查询,查询的域名是攻击者自有的A记录域名,同时由于攻击者声明了该A记录的NS记录,该NS记录指向的是攻击者控制的一台域名服务器,所以根路由会将该DNS query查询发送到攻击者控制的域名服务器上(也就是运行了dnslog程序的机器上),至此完成了oob信道传递过程。

 

三、DNSlog平台搭建

0x1:前期准备

  • 一台公网可访问机器:运行DNS解析服务程序,作为DNS域名服务器,接受来自53端口的DNS解析请求,并将DNS query继续递归查询,完成最终查询,相当于一个DNS query proxy的作用。
  • 一个有效域名

注意,上述公网可访问机器必须开放UDP 53端口,以确保该机器可以接受DNS查询以及进行DNS递归查询。

0x2:域名解析准备

  • 添加一个A记录,将域名xxx指向公网可访问机器xx。
  • 添加一个NS记录,将NS记录指向A记录。

通过制定NS记录,便指定了解析对应A记录的DNS域名服务器,以此完成了DNS oob的信道搭建。

0x3:搭建充当NS Server的DNSlog Server

下载地址: https://github.com/lanyi1998/DNSlog-GO/releases

下载对应版本并解压,

wget https://github.com/lanyi1998/DNSlog-GO/releases/download/1.5.6/dnslog-linux.zip

编辑配置文件,

启动服务,

./dnslog-linux

参考链接:

https://github.com/aboul3la/Sublist3r 
https://blog.csdn.net/m0_51468027/article/details/125734951
https://cloud.tencent.com/developer/article/1948254
https://www.f12bug.com/archives/dnslog%E5%B9%B3%E5%8F%B0%E6%90%AD%E5%BB%BA
https://github.com/lanyi1998/DNSlog-GO/releases/tag/1.5.6

 

标签:DNSLOG,记录,域名,缓存,DNS,服务器,原理,解析,搭建
From: https://www.cnblogs.com/LittleHann/p/17656043.html

相关文章

  • 汇编语言编译环境搭建(MASM+NASM)
    (目录)一、Windows1.下载相关软件DOSBox官网:https://sourceforge.net/projects/dosbox/下载:DOSBox0.74-3-win32-installer.exeMASM5.0网上可以下载2.配置环境双击之后,修改配置文件:windowresolution=1024x768output=ddraw在DOSBox模拟器中挂载MASM5.0mountc:d......
  • Docker下spark环境搭建
    RUNecho"InstallSpark"&&\wget-O/tmp/spark-2.3.4-bin-hadoop2.6.tgzhttp://mirror.bit.edu.cn/apache/spark/spark-2.3.4/spark-2.3.4-bin-hadoop2.6.tgz&&\cd/tmp/&&\tar-zxvf/tmp/spark-2.3.4-bin-hado......
  • 单点登录的原理
    1.http无状态协议web应用采用browser/server架构,http作为通信协议。http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明,三次请求/响应对之间没有任何联系2.会话机制浏览器第一次请求服务器,服务器创建一个会话,并将会话的id作......
  • Ribbon-负载均衡原理
            ......
  • Eureka-搭建eureka服务
            ......
  • 共享服务器的复杂性与核心原理
    本文分享自天翼云开发者社区《共享服务器的复杂性与核心原理》,作者:不知不觉共享服务器是现代网络技术中的重要组成部分,它在各种网络应用中发挥着核心作用。然而,随着网络规模的扩大和复杂性的增加,共享服务器的复杂性也随之提高。为了更好地理解和应用共享服务器,本文将详细阐述其......
  • centos简单搭建git服务端
    注意事项:1、git常用的客户端管理工具有sourcetree、TortoiseGit,个人比较喜欢sourcetree2、按照本文装的git服务端如果需要创建用户得在命令行操作,也可部署gitlab开源项目实现在web端进行管理用户3、如果觉得麻烦不想自己部署,也可直接把代码推广到github上本人采用的是virtualbo......
  • 窗口到底有多滑动?揭秘TCP/IP滑动窗口的工作原理
    本文分享自华为云社区《窗口到底有多滑动?揭秘TCP/IP滑动窗口的工作原理》,作者:LionLong。当涉及网络性能优化和数据传输可靠性时,TCP/IP滑动窗口是一个关键的技术。本文将深入揭示TCP/IP滑动窗口的工作原理,探讨其在确保数据准确性和实现高效通信方面的重要性。通过对滑动窗口大小、......
  • 窗口到底有多滑动?揭秘TCP/IP滑动窗口的工作原理
    本文分享自华为云社区《窗口到底有多滑动?揭秘TCP/IP滑动窗口的工作原理》,作者:LionLong。当涉及网络性能优化和数据传输可靠性时,TCP/IP滑动窗口是一个关键的技术。本文将深入揭示TCP/IP滑动窗口的工作原理,探讨其在确保数据准确性和实现高效通信方面的重要性。通过对滑动窗口大小、......
  • ShowMeBug X 国信证券 | 提升金融企业技术人才识别效率,实现高效团队搭建
    国信证券股份有限公司(以下称国信证券)与ShowMeBug完成签约。ShowMeBug技术测评平台助力国信证券将招聘流程部分线上化,HR大幅减少了人才出筛时间,加速了整体招聘进程,提升了人才识别效率,推动建设更加坚实的技术人才团队。国信证券借助支持多种编程框架语言的技术测评系统 ShowMeBug......