子域名收集全攻略

admin 2025年6月9日17:09:21评论20 views字数 3011阅读10分2秒阅读模式

子域名收集全攻略 —— 实用工具、技巧与实战案例详解

在网络安全、资产管理和信息收集领域,子域名收集是一项基础且关键的任务。通过全面地发现目标域名下的子域名,可以揭露更多隐藏资产、辅助漏洞挖掘或攻击面分析。本文结合多款实用工具和方法,系统阐述子域名的收集技巧,并通过详细代码示例演示实际操作和结果分析,助您快速掌握子域名收集的精髓。

一、子域名收集概述

子域名是主域名下的分支,比如example.com的子域名可能是blog.example.comshop.example.com等。全面收集子域名有助于安全研究、资产管理和攻击面扫描。

收集子域名的常见方法包括:

  • • DNS查询(正向解析)
  • • 字典暴力枚举
  • • 利用搜索引擎(Google、Baidu等)特定语法查询
  • • 利用第三方工具和API
  • • 分析证书透明日志

二、实用工具介绍及安装配置

1. 基于Node.js的子域名收集工具示例 —— subfinder

subfinder 是流行的开源子域名枚举工具,基于Go语言,但示范的安装与运行理念同样适用Node.js工具。

安装(示例以Linux为例)

# 安装Go环境(如未安装)
sudo apt update && sudo apt install golang-go -y

# 下载 subfinder
git clone https://github.com/projectdiscovery/subfinder.git
cd subfinder/v2/cmd/subfinder

# 编译
go build

# 运行(示例)
./subfinder -d example.com

Node.js工具安装示例(以subdomain-enum为例)

# 安装Node.js环境(示例Ubuntu)
sudo apt update
sudo apt install nodejs npm -y

# 安装工具
npm install -g subdomain-enum

# 运行示例
subdomain-enum example.com

2. “猪猪侠”开发的.NET工具(示例)

该工具基于.NET Framework 4.0,需要Windows环境。

  • • 下载工具压缩包,解压
  • • 确认安装.NET Framework 4.0或以上版本
  • • 运行*.exe文件即可使用

三、DNS扫描与域名枚举工具实战

以下示例以一个自制的Node.js脚本为例,展示如何利用DNS查询和暴力枚举方法进行子域名收集。

代码示例:基于Node.js的简单子域名枚举器

const dns = require('dns');
const fs = require('fs');

const domain = 'example.com';
const wordlist = ['www', 'mail', 'ftp', 'dev', 'test']; // 简单字典

asyncfunctionresolveDomain(subdomain) {
returnnewPromise((resolve) => {
        dns.resolve4(subdomain, (err, addresses) => {
if (err) returnresolve(null);
resolve(addresses);
        });
    });
}

(async () => {
let results = [];
for (let sub of wordlist) {
const fullDomain = `${sub}.${domain}`;
const addresses = awaitresolveDomain(fullDomain);
if(addresses) {
console.log(`[FOUND] ${fullDomain} -> ${addresses.join(', ')}`);
            results.push({subdomain: fullDomain, ips: addresses});
        } else {
console.log(`[MISS] ${fullDomain}`);
        }
    }
    fs.writeFileSync('subdomains.json', JSON.stringify(results, null, 2));
console.log('子域名收集完成,结果已保存到 subdomains.json');
})();

运行结果

[FOUND] www.example.com -> 93.184.216.34
[MISS] mail.example.com
[MISS] ftp.example.com
[MISS] dev.example.com
[MISS] test.example.com
子域名收集完成,结果已保存到 subdomains.json

说明

  • • 该脚本通过简单字典对目标域名进行DNS A记录查询。
  • • 查询成功的子域名及对应IP被保存为JSON文件,方便后续分析。
  • • 现实使用中可结合更大字典、异步并发优化扫描速度。

四、识别CDN服务及多IP域名的技巧

部分网站通过CDN(如Cloudflare、阿里云CDN)隐藏真实服务器IP。判断CDN的常用方法:

  • • DNS解析IP多样性:CDN通常返回多个不同的IP地址。
  • • 使用站长工具:如站长之家、爱站网等查询域名IP及DNS信息。
  • • 分析DNS CNAME记录:带有CDN厂商标识的CNAME通常表示使用CDN。
  • • 利用在线工具:例如“白帽子蜘蛛侠”等安全工具,查看域名解析详情。

五、搜索引擎辅助子域名挖掘

利用Google、Baidu等搜索引擎的特定语法,可以发现公开网页中提及的子域名。

常用语法示例

搜索语法
说明
示例
site:example.com
查询example.com下所有页面
site:example.com
site:*.example.com
查询所有子域名页面(部分支持)
site:*.example.com
"example.com"
精确匹配包含example.com的内容
"example.com"
inurl:subdomain
URL中包含特定字符串
inurl:dev.example.com

搜索工具示例

  • • 使用已有的子域名枚举工具支持搜索引擎API调用
  • • 结合爬虫技术爬取搜索结果页,提取子域名信息

六、面对IP封禁与长时间扫描的应对策略

  • • 合理控制扫描速率,避免触发目标防护机制
  • • 使用代理IP池,分散请求来源
  • • 分区域分时段扫描,降低持续压力
  • • 记录和导出扫描结果,避免重复扫描浪费时间
  • • 利用数据库或Excel管理扫描数据

七、进阶:扫描端口与Web服务信息获取

部分工具支持扫描子域名对应IP的常用端口,获取服务器服务信息。

工具示例

  • • nmap:常用端口扫描工具
  • • 自制脚本结合net模块或第三方库进行端口检测

八、总结与推荐资源

本文结合多种工具和方法,从基础的DNS查询、字典爆破,到搜索引擎辅助,再到CDN识别和扫描策略,全面覆盖了子域名收集的实战技巧。

推荐工具汇总

工具名称
语言/平台
功能
备注
subfinder
Go
多渠道子域名收集
开源广泛使用
amass
Go
枚举、被动收集、主动扫描
支持证书透明日志等多种数据源
whitehat-spider(白帽子蜘蛛侠)
Windows/.NET
域名扫描及CDN判断
国内安全工具
subdomain-enum
Node.js
简单字典爆破
可自定义字典

原文始发于微信公众号(网络安全者):2025渗透测试零基础学习 -- 子域名收集全攻略

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年6月9日17:09:21
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   子域名收集全攻略https://cn-sec.com/archives/4148902.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息