引言
在渗透测试过程中, 经常会使用到dnslog服务器,用于dns嗅探以及OOB,当前网络上有许多公开的dnslog平台工具可供使用,主要有
http://www.dnslog.cn
http://ceye.io
nuclei是一个开源的基于模板的漏洞扫描工具, 对于RCE类漏洞, nuclei会使用dnslog进行检测,其中nuclei默认支持的dnslog服务器为:
oast.pro,
oast.live,
oast.site,
oast.online,
oast.fun,
oast.me
在安全测试过程中, 这些公开的dnslog地址可能会被封禁掉,无法正常执行dns嗅探。 因此, 可以自己搭建一个dnslog服务器。 这里输出一个操作指导。
dnslog服务区搭建指导
前提条件:
- 申请一个自己的域名
- 有一台自己的云服务器(注意: 建议申请海外的云服务器, 笔者在搭建的过程中发现使用国内的服务器, 搭建网站需要备案,流程比较复杂)
- 云服务器需要直接绑定一个公网ip(需要可以在机器中[ip a 命令]查询到绑定了公网IP的弹性网卡)。
项目地址
https://github.com/projectdiscovery/interactsh
interactsh 客户端和服务端的区别是什么?
客户端可以申请服务端的子域名, 这样的话, 访问子域名就可以直接定向到对应的主机上。
服务端相当于一个域名服务器, 可以找到对应的子域名对应的地址,
操作步骤
- 申请一个个人域名
- 申请一台海外的个人云服务器
- 申请一个海外弹性公网ip
- 将弹性公网ip绑定到网卡上
- 按照 interactsh项目的安装指导, 部署项目, 并启动进程
- 将域名和步骤3的公网ip绑定
- 验证dnslog 可用性。
总结:
笔者在阿里云平台中搭建了dnslog服务器, 过程中遇到了许多坑, 下面做一个避坑指南:
- 一开始使用国内的服务器, 结果绑定了域名后,没过多久, 网页无法访问了,需要备案才可以使用, 备案过程非常麻烦。
- 申请云服务器时, 自带一个公网ip, 但是这个公网ip没有绑定在本地的网卡中, 安装interactsh会有问题, dnslog无法正常使用, 需要额外再绑定一个公网ip, 才可以保证dnslog正常使用。
- 一个云服务器绑定了新的公网ip, 则原来的公网ip就没有办法使用了, 还会导致主机连接不上的风险, 摸索过程中, 暂时没有一个很成熟的方案。
- 搭建完dnslog服务器后, 只能使用http协议, 没有办法使用https服务器(申请证书失败), 这个还需要继续探究一下。