自建 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 反馈建议

相关推荐
码云数智-大飞10 小时前
PHP 接口开发规范:统一返回格式、异常处理与参数校验
开发语言·php
admin and root10 小时前
「移动安全」安卓APP 反编译&frida脱壳技巧分享
android·开发语言·python·web安全·微信小程序·移动安全·攻防演练
dadaobusi10 小时前
仿真边界处理
开发语言·php
云水一下11 小时前
零基础玩转bWAPP靶场(十四):SQL 注入(GET/选择型)
web安全·sql注入·bwapp
Demons_kirit12 小时前
实验:文件路径遍历,简单情况(Lab: File path traversal, simple case)
网络安全
微学AI13 小时前
内网穿透的应用-把飞牛NAS变成家庭录像中心:EasyNVR部署与远程回放实战
开发语言·php
峥嵘life13 小时前
Android WiFi连接过程 wpa_supplicant 日志分析
android·开发语言·php
weixin_BYSJ198713 小时前
「课设设计」springboot校园超市助购系统26449 (附源码)
java·javascript·spring boot·python·django·flask·php
sbjdhjd13 小时前
SQL 注入零基础详解:原理、手工注入流程与 Sqli-Labs 靶场实战1~5关和第9关思路
数据库·sql·计算机网络·web安全·网络安全·网络攻击模型·安全架构
xuefeiniao14 小时前
CentOS + 宝塔服务器偶发 SSH、面板、网站全部无法访问排查记录(PHP-FPM 内存耗尽案例)
服务器·centos·ssh·php