阿里云域名搭建DNSLOG

一、DNSlog简介

DNSLOG在测试无回显漏洞,如SQL盲注、无回显SSRF、无回显XXE、无回显RCE等漏洞时,是必不可少的工具。

在互联网上,有很多优秀的在线DNSLOG平台可供我们日常渗透测试使用,如www.dnslog.cn、ceye.io等。但正是由于这些在线DNSLOG平台被过多的使用,现在很多安全设备以及甲方自建的安全策略都将这些在线DNSLOG平台的域名、ip等加入了黑名单拦截策略库。所以,搭建一个自有的DNSLOG平台是非常有必要的。

二、搭建DNSLOG平台

1、域名准备

(1)本文使用阿里云平台域名,首先进入自定义DNSHost,然后创建两个DNS服务器

本文使用阿里云平台域名

(2)进入DNS修改,将DNS服务器修改为上一步在自定义DNS Host内配置的DNS服务器,目的是指将当前域名的解析DNS服务器更换为你即将搭建的DNS服务器(下文会配置),由修改后的DNS服务器负责域名解析服务。修改后一般需要24小时才会生效。

在这里插入图片描述

(3) 进入域名解析,添加三条域名解析记录,首先添加一条A记录,主机记录为log,记录值为你的服务器公网IP,然后添加两个NS记录,主机记录为ns1,ns2,记录值为log.(你的域名)

在这里插入图片描述

到此阿里云域名设置结束

2、服务器准备

本文使用的是华为云的免费试用的弹性ECS,首先需要找到服务器的公网IP,上面域名配置需要。接着只需要配置一下安全组(可以新建一个名为dnslog的安全组),开放UDP和TCP的53端口,还有前端需要的8000的端口,还有开放一些调试需要的端口(或者直接全部开放)。

在这里插入图片描述

到此服务器准备工作结束

3、代码部署

参考开源项目DNSlog-GO:https://github.com/lanyi1998/DNSlog-GO

在这里插入图片描述

下载第一个linux版本,上传至服务器。

(1)服务器安装go环境

wget -c https://studygolang.com/dl/golang/go1.17.5.linux-amd64.tar.gz

tar -xzf go1.17.5.linux-amd64.tar.gz -C /usr/local

vim /etc/profile

在文件内容后面加上 export PATH=$PATH:/usr/local/go/bin后保存

source /etc/profile

完成上述步骤后输入go version,返回安装的go版本即为安装成功。

(2)解压zip,并配置config.yaml

vim config.yaml

在这里插入图片描述

一共需要配置4个地方,(1)为前端开放的8000端口、(2)为你设置的登录token、(3)为你在阿里云域名出配置的ns1或ns2,此处我就设置为ns1,所以以后DNS解析都需使用ns1作为三级域名、(4)domain处设置为你的域名,保存退出。

(3)使用./main启动,出现如下图所示代表能够正常启动,访问服务器8000端口即可查看到DNSLOG前端。

在这里插入图片描述

输入config.yaml里设置的token值即可访问,接下来就可以正常ping,进行DNS解析。

在这里插入图片描述

在这里插入图片描述

如果第二次登录出现如下8000端口被占用,只需kill掉8000端口的进程即可。

在这里插入图片描述

------------------------------------------------------------------

第一次启动可能会有一个坑,默认情况下,Ubuntu在端口53上侦听systemd-resolved。如果您运行自己的DNS服务器,则因为端口53已被使用而无法执行。因此,发生以下错误。 “侦听tcp 0.0.0.0:53:bind:地址已在使用中”。

使用netstat -tlunp|grep 53查看53端口是不是systemd-resolved占用了。如果是,下面是解决方法可以试试看对你有没有帮助。

1、先停用 systemd-resolved 服务

systemctl stop systemd-resolved

2、编辑 /etc/systemd/resolved.conf 文件

vi /etc/systemd/resolved.conf

3、换下面说明更改,然后按一下“esc”键,再输入“:wq”(不要输入引号),回车保存即可。

[Resolve]
DNS=127.0.0.1  #取消注释,此处填写127.0.0.1,配置为使用本地解析DNS
#FallbackDNS=
#Domains=
#LLMNR=no
#MulticastDNS=no
#DNSSEC=no
#Cache=yes
DNSStubListener=no  #取消注释,把yes改为no

4、最后运行下面命令即可。

ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf