自建 dnslog 回显平台:渗透测试场景下的隐蔽回显利器

🔍 背景介绍

在渗透测试与红队评估过程中,DNS 外带(DNS Exfiltration) 是一种常见且隐蔽的通信通道。由于多数目标环境默认具备外网 DNS 解析能力,即便在 无回显、无文件上传权限 的条件下,仍可通过 DNS 请求实现:

  • 敏感数据传出
  • 漏洞验证与打点
  • 内网信息探测

DNSLog 平台因此成为漏洞验证阶段的核心辅助工具。


🛑 现有问题

然而,公共平台(如 dnslog.cn)存在以下限制:

  1. 流量拦截:被主流安全设备/防火墙标记
  2. 日志溯源:请求记录可能被第三方留存
  3. 隐蔽性差:固定域名特征易触发告警
  4. 工具适配:渗透测试工具需要适配平台

✨ 解决方案

本项目是对 dnslog.cn 平台的简洁克隆,支持自定义域名部署,便于内网渗透测试与痕迹收集,同时绕过部分安全设备对 dnslog.cn 的拦截。

🚀 特性

  • 🔧 自定义域名接入,避免被规则识别
  • 📈 实时记录 DNS 请求信息,包括域名、IP、时间戳
  • 📊 展示最近 5 条历史查询记录,便于快速调试
  • 🛡️ 增强 SQLite 写入机制,避免并发访问造成锁定
  • 🗂️ 数据库自动备份机制,保障数据完整性与可恢复性
  • 🧩 Nginx + PHP7.4 架构部署,兼容性强、部署便捷

⚙️ 快速部署指南(CentOS 7.9)

1. 安装依赖环境

bash 复制代码
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 服务

bash 复制代码
sudo systemctl start php74-php-fpm
sudo systemctl enable php74-php-fpm

3. 安装并配置 Nginx

bash 复制代码
sudo yum install -y nginx
sudo systemctl enable nginx

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 路径有写权限:

bash 复制代码
chmod 777 /tmp
chmod 777 /var/www/dnslogcn/data
chown -R nginx:nginx /var/lib/php/session
chmod -R 700 /var/lib/php/session

🌐 域名配置说明

  1. 新增A记录

  2. 自定义dns服务器

  3. 修改dns服务器为自定义服务器


🧬 使用说明

1. 修改配置文件 db.php

php 复制代码
$db_file = '../data/domain.db';
$domain_suffix = "example.cn";  // 替换为自定义域名

2. 启动 DNS 服务

bash 复制代码
php dnsServer.php &

3. 访问平台管理界面

浏览器打开:http://<部署IP>/index.php

支持查看已生成的子域名记录,点击后可获取专属测试域名。


📋 项目结构

bash 复制代码
.
├── 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 反馈建议

相关推荐
BingoGo2 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php
JaguarJack2 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php·服务端
BingoGo3 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php
JaguarJack3 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php·服务端
JaguarJack4 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
后端·php·服务端
BingoGo4 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
php
JaguarJack5 天前
告别 Laravel 缓慢的 Blade!Livewire Blaze 来了,为你的 Laravel 性能提速
后端·php·laravel
郑州光合科技余经理5 天前
代码展示:PHP搭建海外版外卖系统源码解析
java·开发语言·前端·后端·系统架构·uni-app·php
一次旅行5 天前
网络安全总结
安全·web安全
QQ5110082855 天前
python+springboot+django/flask的校园资料分享系统
spring boot·python·django·flask·node.js·php