eredotpkfr/subscan

GitHub: eredotpkfr/subscan

基于 Rust 构建的高性能子域名枚举工具,集成多种发现技术,专为渗透测试和资产测绘设计。

Stars: 48 | Forks: 2

Subscan 是一款使用 [Rust](https://www.rust-lang.org/) 构建的强大子域名枚举工具,专为渗透测试设计。它将多种发现技术结合在一个轻量级二进制文件中,使安全研究人员的子域名搜寻工作更加轻松快捷 ## 功能特性 - 🕵️ 智能发现技巧 - 使用多种搜索引擎(`Google`、`Yahoo`、`Bing`、`DuckDuckGo` 等) - 集成 `Shodan`、`Censys`、`VirusTotal` 等 API - 执行区域传送(zone transfer)检查 - 使用优化的字典进行子域名暴力破解 - 🔍 解析所有子域名的 IP 地址 - 📎 导出 `CSV`、`HTML`、`JSON` 或 `TXT` 格式的报告 - 🛠️ 可配置 - 自定义 HTTP 请求(user-agent、timeout 等) - 通过代理轮换请求(`--proxy` 参数) - 使用 `--resolver` 参数微调 IP 解析器 - 使用 `--skips` 和 `--modules` 过滤并运行特定模块 - 🐳 Docker 友好 - 原生支持 `amd64` 和 `arm64` Linux 平台 - 一个不会占用您存储空间的微型容器 —— 体积不足 1GB,即刻可用 🚀 - 💻 兼容多平台,易于作为单一二进制文件安装 ## 安装 🦀 使用 Rust 的包管理器 Cargo 安装 `subscan` 工具。请确保您的系统已安装 [Rust](https://www.rust-lang.org/)。然后运行 ``` ~$ cargo install subscan ``` ## 使用方法 ✨ 这里是关于如何使用它的快速概览 ``` ~$ subscan _ | | ___ _ _| |__ ___ ___ __ _ _ __ / __| | | | '_ \/ __|/ __/ _` | '_ \ \__ \ |_| | |_) \__ \ (_| (_| | | | | |___/\__,_|_.__/|___/\___\__,_|_| |_| Usage: subscan [OPTIONS] Commands: scan Start scan on any domain address brute Start brute force attack with a given wordlist module Subcommand to manage implemented modules help Print this message or the help of the given subcommand(s) Options: -v, --verbose... Increase logging verbosity -q, --quiet... Decrease logging verbosity -h, --help Print help (see more with '--help') -V, --version Print version ``` ### 开始扫描 要使用所有可用模块扫描域名,请使用以下命令 ``` ~$ subscan scan -d example.com ``` 您也可以使用 `--skips` 和 `--modules` 参数选择运行或跳过特定模块。模块名称应以逗号分隔的列表形式提供 ``` ~$ # skip the commoncrawl and google modules during the scan ~$ subscan scan -d example.com --skips=commoncrawl,google ``` ``` ~$ # run only the virustotal module ~$ subscan scan -d example.com --modules=virustotal ``` ### 暴力破解 使用 `brute` 命令配合特定字典启动暴力破解攻击 ``` ~$ subscan brute -d example.com --wordlist file.txt ``` ## 环境变量 所有环境变量均由 `.env` 文件管理。Subscan 可以从该 `.env` 文件中读取您的环境配置。您可以参考 `.env.template` 文件来了解如何创建它们
| 名称 | 必填 | 描述 | | :----------------------------- | :------: | :---------: | | `SUBSCAN_CHROME_PATH` | `false` | 指定您的 Chrome 可执行文件。如果未指定,headless_chrome 将根据您的系统架构自动获取 Chrome 二进制文件 | | `SUBSCAN__HOST` | `false` | 某些 API 集成模块可以提供用户特定的主机地址,对于这些情况,请设置模块特定的主机 | | `SUBSCAN__APIKEY` | `false` | 某些模块可能包含 API 集成并需要 API 密钥进行认证。在此类情况下设置 API 密钥 | | `SUBSCAN__USERNAME` | `false` | 如果模块使用 HTTP 基本认证,请设置用户名 | | `SUBSCAN__PASSWORD` | `false` | 如果模块使用 HTTP 基本认证,请设置密码 |
## Docker 🐳 对于容器化使用,您可以直接从 [Docker Hub](https://hub.docker.com/) 拉取 `eredotpkfr/subscan` Docker 镜像 ``` ~$ docker pull eredotpkfr/subscan:latest ``` 拉取预构建镜像后,您可以轻松运行容器以执行子域名枚举 ``` ~$ docker run -it --rm eredotpkfr/subscan scan -d example.com ``` 通过 docker `--env` 指定环境变量 ``` ~$ docker run -it --rm \ --env SUBSCAN_VIRUSTOTAL_APIKEY=foo \ eredotpkfr/subscan scan -d example.com --modules=virustotal ``` 将输出报告保存到主机,请使用 `/data` 文件夹 ``` ~$ docker run -it --rm \ --volume="$PWD/data:/data" \ eredotpkfr/subscan scan -d example.com ``` 要在 docker 容器中指定字典,请使用 `/data` 文件夹 ``` ~$ docker run -it --rm \ --volume="$PWD/wordlist.txt:/data/wordlist.txt" \ eredotpkfr/subscan brute -d example.com \ -w wordlist.txt --print ``` ## 开发 📚 您可以在项目文档页面的 [Development](https://www.erdoganyoksul.com/subscan/development/index.html) 章节中找到开发 Subscan 的所有资源和文档 ## 联系方式 博客 - [erdoganyoksul.com](https://www.erdoganyoksul.com)
邮箱 -
标签:GitHub, Pentest, Rust, Subdomain, URL枚举, Windows内核, 可视化界面, 域名爆破, 子域名扫描器, 子域名枚举, 密码管理, 白帽子, 系统安全, 网络安全, 网络流量审计, 请求拦截, 通知系统, 通知系统, 隐私保护