ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

如何在授权范围内选择 theHarvester P0 被动源与 P1/P2 主动动作

如何在授权范围内选择 theHarvester P0 被动源与 P1/P2 主动动作 如何在授权范围内选择 theHarvester P0 被动源与 P1/P2 主动动作【免费下载链接】theHarvesterE-mails, subdomains and names Harvester - OSINT项目地址: https://gitcode.com/GitHub_Trending/th/theHarvester在授权安全评估的初期侦察阶段需要用 theHarvester 对一个域名收集 OSINT但每次运行都会接触若干外部服务甚至可能主动向目标发请求。theHarvester 把所有发现源分成 P0被动源把动作分成 P1面向 DNS 解析器的动作和 P2面向目标或提供商的直接动作P1/P2 只有在你显式选择时才会执行。这篇文章给出一个从“核对授权”到“最小 P0 源集”“按需加 P1/P2”再到“验证证据”的连续操作路径让你在授权边界内决定每一步加什么、不加什么。先核对授权边界再谈选源theHarvester 的授权与范围文档把运行条件写得很直接只对你拥有、或被明确授权评估的目标使用授权应当指名目标、许可的技术、时间窗口、数据处理规则和第三方限制。两条容易被忽略的边界P0 被动源不直接探测目标主机但会把你查询的域名或组织名发给第三方服务这些服务会记录请求并执行自己的条款、配额和可接受使用规则。因此“选哪些源”本身就是一个授权问题。提供商的 API key、bug-bounty 项目或“目标公网可达”都不能当作授权依据。只选任务需要的提供商。准备环境从源码检出运行需要 Python 3.14仓库的.python-version让uv自动选用git clone https://github.com/laramies/theHarvester.git cd theHarvester uv sync uv run theHarvester -hKali 已打包分发安装后可省略uv runsudo apt update sudo apt install theharvester theHarvester -h注意发行版包可能落后于当前稳定版或dev分支命令和可用源以 安装指南和theHarvester -h输出为准。只使用需要 API key 的源时才配置凭据vi ~/.theHarvester/api-keys.yaml chmod 600 ~/.theHarvester/api-keys.yaml保留生成模板的完整结构只填写你要用的提供商字段例如文档示例your-...占位值需替换成真实密钥apikeys: censys: token: your-censys-personal-access-token organization_id: your-censys-organization-id未配置 key 的源会被跳过不会中断运行。不要提交已填写的配置到源码仓库。P0先选最小被动源集用-b按结果路由从 README 的源矩阵中选源。Operator workflows的建议是从能回答评估问题的最小源集、最少主动行为开始把源全加上通常会增加噪音、限流失败和运行时间而不是改善聚焦运行。主路径示例两个无需 key 的被动证书源uv run theHarvester -d example.com -b crtsh,certspotter-b all会运行目录里全部 P0 被动源接触大量独立服务并可能消耗配额且更难隔离提供商故障不作为默认起点。能力选择器subdomains、emails、ips、asns、urls、people、breaches取并集决定运行哪些源且不会丢弃这些源返回的其他结果类型也可以与显式源名混写如-b emails,urls,certspotter。示例中的example.com是 IANA 保留域名只用于展示命令语法替换为你授权范围内的目标。验证 P0 运行结果加-f report会写出report.jsonl同时写兼容用的report.json、report.xml。用jq读第一行摘要summary它记录证据状态、结果计数和每个源的执行结果uv run theHarvester -d example.com -b crtsh,certspotter -f report jq -c select(.type summary) | {evidence_status, result_count, counts, source_executions} report.jsonl文档明确说明空结果可能只是提供商没查到东西并不证明运行失败。区分正常空结果和源故障就靠摘要里的evidence_status与source_executions——源因提供商或安全限制停止时状态为partial并带stop_reason已保留的结果仍会写入报告。harvest-yields用于在已有 SQLite 结果库上按源对比产出只读库、不发起新的发现或 DNS 解析uv run harvest-yields uv run harvest-yields --database results.sqlite --kind ip --format json对比时保持目标、源集、limit 和采集窗口一致否则数字不可比。需要更大产出时传--limit 0移除共享的每源结果上限和本地页面上限各适配器运行到提供商耗尽提供商配额、协议上限、响应大小保护和运行时限制仍然生效。某个源在合并运行中失败时单独用保守上限重跑它来诊断source-name换成实际源名需要替换uv run theHarvester -d example.com -b source-name -l 10重跑前先确认该提供商的状态、鉴权要求、限流和条款再判断是工具缺陷还是提供商问题。授权允许时再升级到 P1 的 DNS 动作README 的活动分级被动源是 P0DNS 解析、暴力破解、递归 DNS 和反向查询是 P1HTTP、TLS、截图、接管、虚拟主机、端口和端点动作是 P2。P1 和 P2 活动只有你显式选择才会运行。选项网络路径作用-r,--dns-resolve面向解析器把发现的名字解析为 A、AAAA、CNAME 记录--dns-recursive-depth面向解析器对源结果做递归 DNS-n,--dns-lookup面向解析器跨发现的/24网段做反向 DNS-c,--dns-brute面向解析器用候选子域名主动向 DNS 发起尝试DNS 暴力破解主动向 DNS 尝试生成的候选名字只应对自有或被明确授权的目标运行不要对example.com或无关第三方域名运行。指定解析器文件每行一个 IP创建resolvers.txt后作为参数传入AUTHORIZED_DOMAINreplace-with-a-domain-you-control uv run theHarvester -d $AUTHORIZED_DOMAIN -b crtsh -r resolvers.txtAUTHORIZED_DOMAIN是文档中的示例变量替换为你控制或被授权的域名。--dns-resolvers IPS_OR_FILE可以在不启用名字解析的情况下为暴力破解、反向查询或递归 DNS 选择解析器。执行 P1 前要清楚文档给出的边界解析阶段会先去重候选名字每个名字和记录类型至多查询一次最多 20 个并发名字任务有每查询超时但没有默认的查询次数或阶段时长上限。反向 DNS 类似按/24去重最多 20 个并发 PTR 任务也没有默认请求次数或时长上限。在授权时间窗口内运行。指定解析器后候选名字会向这些解析器披露。递归 DNS 需要显式设置深度并创建恰好含三个不同解析器 IP 的resolvers.txt查询次数和运行时上限仍然适用AUTHORIZED_DOMAINreplace-with-a-domain-you-control uv run theHarvester \ -d $AUTHORIZED_DOMAIN \ -b crtsh \ --dns-resolvers resolvers.txt \ --dns-recursive-depth 1 \ -f report授权明确覆盖时才加 P2 直接动作P2 动作直接向目标发请求是否加入完全取决于授权书中许可的技术选项网络路径作用-t,--take-over面向目标对发现的检查接管指标-a,--api-scan面向目标请求常见 API 路径--screenshot DIR面向目标在浏览器中打开发现的 web 服务--vhost,--vhost-*面向目标用候选 SNI 和 HTTPHost值探测字面 IP 端点AUTHORIZED_DOMAINreplace-with-a-domain-you-control uv run theHarvester -d $AUTHORIZED_DOMAIN -b crtsh,certspotter -t -a -f report使用边界来自文档不是经验推断接管指标是需要人工确认的线索不能仅凭指纹匹配就声明可以接管。API 路径扫描直接向目标发请求必须在授权范围内可用-w FILE提供自定义路径词表。截图会打开发现的 web 服务可能保留敏感页面内容且需要 Playwright 兼容的 Chromiumuv run playwright install chromium。--vhost会保留已确认的主机名并把端点观察写入 JSONL调整其端点、候选、请求、运行时或 TLS 控制前应先阅读虚拟主机发现文档。两个可选的 provider-facing 动作Shodan 富集-s,--shodan在发现之后对解析出的主机通过 Shodan Host REST API 做富集与shodan源的子域名结果是两回事。--routeviews查询外部路由关系是一个单独选择的 P0 提供商动作-b all永远不会启用它固定 300 个顺序请求、300 秒的限制-l不会改变它。未配置routeviews.key时按 1 请求/秒的 guest 速率运行配置 key 走 PeeringDB 验证的 10 请求/秒通道且 key 被拒绝时动作失败而不是回退 guest。返回的前缀不会被递归查询也不会扩大 DNS 或直接动作范围——它是关系证据不代表所有权、授权或可达性。收尾数据、验证与限制结果即使来自公开数据也可能包含私有基础设施、员工地址等敏感上下文。报告、截图和~/.local/share/theHarvester/stash.sqlite都要远离源码库并按任务书的保留与共享规则处理提交 issue 前剔除凭据和目标私有数据。HarvestView 与 REST API 应保留在 localhost/api/v1/*路由都需要THEHARVESTER_API_KEY需要远程访问时在现有 API 鉴权前加网络控制和 TLS。组合运行失败时用-b source-name -l 10单独重跑受影响源并核对提供商状态、鉴权、限流和条款。一条可复用的决策顺序最小 P0 源集起步只有授权允许对应技术时才加 P1/P2且-b all不替你选它们每加一次动作就核对一次授权书里的许可技术用 JSONL 摘要行的evidence_status和每个源的status/stop_reason区分空结果、partial 与失败当前行为以uv run theHarvester -h为准。【免费下载链接】theHarvesterE-mails, subdomains and names Harvester - OSINT项目地址: https://gitcode.com/GitHub_Trending/th/theHarvester创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表