自建 dnslog 回显平台:渗透测试场景下的隐蔽回显利器
🔍 背景介绍
在渗透测试与红队评估过程中,DNS 外带(DNS Exfiltration) 是一种常见且隐蔽的通信通道。由于多数目标环境默认具备外网 DNS 解析能力,即便在 无回显、无文件上传权限 的条件下,仍可通过 DNS 请求实现:
- 敏感数据传出
- 漏洞验证与打点
- 内网信息探测
DNSLog 平台因此成为漏洞验证阶段的核心辅助工具。
🛑 现有问题
然而,公共平台(如 dnslog.cn
)存在以下限制:
- 流量拦截:被主流安全设备/防火墙标记
- 日志溯源:请求记录可能被第三方留存
- 隐蔽性差:固定域名特征易触发告警
- 工具适配:渗透测试工具需要适配平台
✨ 解决方案
本项目是对 dnslog.cn 平台的简洁克隆,支持自定义域名部署,便于内网渗透测试与痕迹收集,同时绕过部分安全设备对 dnslog.cn
的拦截。
🚀 特性
- 🔧 自定义域名接入,避免被规则识别
- 📈 实时记录 DNS 请求信息,包括域名、IP、时间戳
- 📊 展示最近 5 条历史查询记录,便于快速调试
- 🛡️ 增强 SQLite 写入机制,避免并发访问造成锁定
- 🗂️ 数据库自动备份机制,保障数据完整性与可恢复性
- 🧩 Nginx + PHP7.4 架构部署,兼容性强、部署便捷
⚙️ 快速部署指南(CentOS 7.9)
1. 安装依赖环境
sudo yum install -y epel-release
sudo yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum install -y yum-utils
sudo yum-config-manager --enable remi-php74
sudo yum install -y php74-php php74-php-cli php74-php-fpm php74-php-mbstring php74-php-opcache php74-php-sqlite3
2. 启动 PHP-FPM 服务
sudo systemctl start php74-php-fpm
sudo systemctl enable php74-php-fpm
3. 安装并配置 Nginx
sudo yum install -y nginx
sudo systemctl enable nginx
Nginx 配置示例:
server {listen 80;server_name example.com;root /var/www/dnslogcn/web;index index.php;location / {try_files $uri $uri/ /index.php?$query_string;}location ~ \.php$ {include fastcgi_params;fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;}
}
确保 PHP session 路径有写权限:
chmod 777 /tmp
chmod 777 /var/www/dnslogcn/data
chown -R nginx:nginx /var/lib/php/session
chmod -R 700 /var/lib/php/session
🌐 域名配置说明
-
新增A记录
-
自定义dns服务器
-
修改dns服务器为自定义服务器
🧬 使用说明
1. 修改配置文件 db.php
$db_file = '../data/domain.db';
$domain_suffix = "example.cn"; // 替换为自定义域名
2. 启动 DNS 服务
php dnsServer.php &
3. 访问平台管理界面
浏览器打开:http://<部署IP>/index.php
支持查看已生成的子域名记录,点击后可获取专属测试域名。
📋 项目结构
.
├── data
│ ├── archive
│ │ ├── archive_create_domains_2025-06.sql
│ │ └── archive_dns_requests_2025-06.sql
│ └── domain.db
└── web├── archive.php //定时归档文件,0-13点,每月归档一次├── banner.png├── db.php //配置文件├── dnsServer.php ├── favicon.ico├── getdomain.php└── getrecords.php
📝 更新日志(Changelog)
日期 | 更新内容 |
---|---|
2025-06-06 | ✅ 优化 SQLite 写入机制,避免并发冲突 |
✅ 支持 DNS 查询记录展示最近 5 条 | |
✅ 增加 SQLite 文件备份与数据库清理机制,减轻读写压力 |
✅ TODO
- Docker 快速部署
📬 项目地址
项目源码已开源至 GitHub,支持二次开发与集成:
👉 GitHub 链接(https://github.com/Secur1ty0/dnslog.cn)
🚧 更多功能正在持续开发中,欢迎 🌟 Star 支持 或 🛠️ 提交 Issue 反馈建议!