自建 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. 安装依赖环境

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

🌐 域名配置说明

  1. 新增A记录

    在这里插入图片描述

  2. 自定义dns服务器

    在这里插入图片描述

  3. 修改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 反馈建议

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值