subfinder子域名探测

admin 2024年11月7日11:31:19评论5 views字数 4472阅读14分54秒阅读模式

1.1简介

Subfinder 是一款开源的子域名发现工具,广泛应用于网络安全领域中的信息收集阶段。它可以帮助安全研究人员、渗透测试人员以及开发人员快速找到目标域名下的所有公开可访问的子域名。Subfinder 通过查询多个在线数据源(如公共DNS记录、证书透明度日志等),并结合一些智能算法,能够高效地发现和枚举出大量子域名。

1.1.1主要特点

  • 多源查询Subfinder可以从多个数据源获取子域名信息,包括但不限于公共DNS记录、证书透明度日志、WHOIS数据库等。

  • 高效率:利用并发处理技术,Subfinder能够在短时间内完成大量的子域名查询任务。

  • 灵活配置:用户可以根据需要配置不同的查询参数,如设置超时时间、指定输出格式等。

  • 易于集成Subfinder支持多种输出格式(如JSON、CSV等),方便与其他工具或脚本集成。

  • 社区支持:作为一个开源项目,Subfinder 拥有一个活跃的开发者和用户社区,持续更新和完善功能。

1.2安装及使用

1.2.1centos安装

在 CentOS 上安装 subfinder

1. 安装 Go 语言环境

首先,你需要安装 Go 语言环境。你可以使用以下命令来安装

sudo yum update

sudo yum install -y golang

2. 安装 subfinder

使用 Go 的 go install 命令来安装 subfinder:

GO111MODULE=on go install -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest

3. 将 Go 二进制文件路径添加到系统 PATH

默认情况下,Go 会将可执行文件安装到 $GOPATH/bin 目录下。你需要将这个目录添加到系统的 PATH 环境变量中。

打开或创建 ~/.bash_profile 文件:

nano ~/.bash_profile

添加以下行到文件末尾:

export GOPATH=$HOME/go

export PATH=$PATH:$GOPATH/bin

保存并关闭文件,然后使更改生效:

source ~/.bash_profile

4. 验证安装

检查 subfinder 是否安装成功:

subfinder -version

你应该会看到 subfinder 的版本信息,表示安装成功。

1.2.2在Kali Linux 上安装

1.直接安装

(1)安装subfinder

sudo apt install subfinder

subfinder子域名探测

(2)验证

subfinder子域名探测

2.使用go安装

GO111MODULE=on go install -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest

将 Go 二进制文件路径添加到系统 PATH(如果尚未添加):

echo 'export PATH=$PATH:$(go env GOPATH)/bin' >> ~/.bashrc

source ~/.bashrc

验证安装:

subfinder -version

1.2.3在 macOS 上安装

安装 Homebrew(如果尚未安装):

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

安装 subfinder:

brew install subfinder

验证安装:

subfinder -version

1.2.4在 Windows 上安装

安装 Go 语言环境(如果尚未安装):

下载并安装 Go 从 官方下载页面。

配置环境变量,确保 GOPATH 和 GOBIN 路径正确。

打开命令提示符或 PowerShell,安装 subfinder:

GO111MODULE=on go install -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest

将 Go 二进制文件路径添加到系统 PATH:

打开“系统属性” -> “高级” -> “环境变量”。

在“系统变量”部分,编辑 Path 变量,添加 %GOPATH%bin。

验证安装:

subfinder -version

1.2.5直接下载编译好的二进制文件

https://github.com/projectdiscovery/subfinder/releases

1.2.6subfinder基本参数

用法:

 ./subfinder [选项]

选项:

输入:

  -d, -domain 字符串数组  要查找子域的域名

  -dL, -list 字符串     包含域名列表的文件,用于子域发现

来源:

  -s, -sources 字符串数组           用于发现的特定来源(例如 -s crtsh,github)。使用 -ls 显示所有可用来源。

  -recursive                      仅使用可以递归处理子域的来源,而不是同时使用递归和非递归来源

  -all                            使用所有来源进行枚举(较慢)

  -es, -exclude-sources 字符串数组  从枚举中排除的来源(例如 -es alienvault,zoomeyeapi)

过滤:

  -m, -match 字符串数组   要匹配的子域或子域列表(文件或逗号分隔)

  -f, -filter 字符串数组   要过滤的子域或子域列表(文件或逗号分隔)

速率限制:

  -rl, -rate-limit 整数      每秒发送的最大 HTTP 请求数量(全局)

  -rls, -rate-limits 值  以 key=value 格式为每个提供者设置每秒发送的最大 HTTP 请求数量(例如 -rls hackertarget=10/m)(默认值 ["github=30/m", "fullhunt=60/m", "robtex=18446744073709551615/ms", "securitytrails=1/s", "shodan=1/s", "virustotal=4/m", "hackertarget=2/s", "waybackarchive=15/m", "whoisxmlapi=50/s", "securitytrails=2/s", "sitedossier=8/m", "netlas=1/s", "github=83/m", "subdomaincenter=2/m"])

  -t 整数                    用于解析的并发 goroutine 数量(仅限 -active)(默认 10)

更新:

  -up, -update                 更新 subfinder 到最新版本

  -duc, -disable-update-check  禁用 subfinder 的自动更新检查

输出:

  -o, -output 字符串       输出文件

  -oJ, -json               以 JSONL(ines) 格式写入输出

  -oD, -output-dir 字符串  输出目录(仅限 -dL)

  -cs, -collect-sources    在输出中包含所有来源(仅限 -json)

  -oI, -ip                 在输出中包含主机 IP(仅限 -active)

配置:

  -config 字符串                配置文件(默认 "/root/.config/subfinder/config.yaml")

  -pc, -provider-config 字符串  提供者配置文件(默认 "/root/.config/subfinder/provider-config.yaml")

  -r 字符串数组                   要使用的解析器列表(逗号分隔)

  -rL, -rlist 字符串            包含要使用的解析器列表的文件

  -nW, -active                  仅显示活动子域

  -proxy 字符串                 与 subfinder 一起使用的 HTTP 代理

  -ei, -exclude-ip              从域名列表中排除 IP 地址

调试:

  -silent             仅在输出中显示子域

  -version            显示 subfinder 的版本

  -v                  显示详细输出

  -nc, -no-color      禁用输出中的颜色

  -ls, -list-sources  列出所有可用来源

  -stats              报告来源统计信息

优化:

  -timeout 整数   在超时前等待的秒数(默认 30)

  -max-time 整数  等待枚举结果的分钟数(默认 10)

1.3基本命令

1.直接对目标进行探测

subfinder -d example.com

-d:指定目标域名。

2.输出结果到文件

subfinder -d example.com -o subdomains.txt

subfinder -d baidu.com -o baidu.com.txt

subfinder子域名探测

subfinder子域名探测

-o:指定输出文件路径。

3.使用 API 密钥

subfinder 支持多个在线服务(如 SecurityTrails、VirusTotal 等),需要 API 密钥才能使用这些服务。

创建配置文件:

subfinder -config init

编辑配置文件(通常位于 ~/.config/subfinder/config.yaml),添加 API 密钥:

yaml

sources:

 - securitytrails

 - virustotal

apikeys:

 securitytrails: your_securitytrails_api_key

 virustotal: your_virustotal_api_key

4.使用 API 密钥进行子域名枚举

subfinder -d example.com -config ~/.config/subfinder/config.yaml

5.指定来源

你可以指定 subfinder 使用哪些数据源进行子域名枚举。

subfinder -d example.com -sources securitytrails,virustotal

subfinder -d zsyliaw1.com -sources securitytrails,virustotal

subfinder子域名探测

-sources:指定数据源,多个数据源用逗号分隔。

6.排除某些来源

你可以排除某些数据源,以避免不必要的查询。

subfinder -d example.com -exclude-sources bruteforce,passivedns

-exclude-sources:排除的数据源,多个数据源用逗号分隔。

7.示例

# 枚举 example.com 的子域名,并将结果输出到 subdomains.txt 文件

subfinder -d example.com -o subdomains.txt

# 使用 SecurityTrails 和 VirusTotal 进行子域名枚举

subfinder -d example.com -sources securitytrails,virustotal

# 排除 bruteforce 和 passivedns 数据源

subfinder -d example.com -exclude-sources bruteforce,passivedns

8.更新到最新版本

sudo subfinder -up

subfinder子域名探测

原文始发于微信公众号(小兵搞安全):subfinder子域名探测

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年11月7日11:31:19
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   subfinder子域名探测https://cn-sec.com/archives/3367341.html

发表评论

匿名网友 填写信息