
如何用 theHarvester --limit 0 取消共享结果上限并采集到数据源耗尽【免费下载链接】theHarvesterE-mails, subdomains and names Harvester - OSINT项目地址: https://gitcode.com/GitHub_Trending/th/theHarvestertheHarvester 每次运行时默认给每个数据源设置一个共享的结果上限默认每个源 500 条采集到上限即停止。当你在授权目标上做子域名或 OSINT 采集、希望把某个数据源拉到“耗尽”而不是拿到一个被本地上限截断的样本时需要把-l/--limit参数设为0。本文给出从安装到验证的完整路径用--limit 0取消本地结果与分页上限让各适配器一直运行到 provider 侧数据耗尽并通过 JSONL 报告确认每个源究竟是完整跑完还是被 provider 配额等外部限制提前停下。前提目标必须是你拥有或被明确授权测试的域名theHarvester 要求 Python 3.14。准备环境从源码检出并安装锁定版本依赖uv会根据仓库的.python-version自动选择 Python 3.14git clone https://github.com/laramies/theHarvester.git cd theHarvester uv sync uv run theHarvester -h-h会列出所有选项及其当前行为。参数-l/--limit的帮助文本说明其含义Maximum results requested from each source that supports result limits; 0 continues to provider exhaustion with no local result or page-count cap (default: 500).也就是默认值 5000表示继续运行直到 provider 耗尽、且不设本地结果数或页数上限。首次运行时会在~/.theHarvester/下创建api-keys.yaml、proxies.yaml等默认配置看到相关提示属正常现象。本文主路径选用无需 API key 的源如crtsh、certspotter因此不需要预先配置凭据需要 key 的源请先在api-keys.yaml中配置参见 Configuration and API Keys。执行 --limit 0 采集主路径命令以无 key 的crtsh和certspotter为例并把结果写成 JSONL 报告uv run theHarvester -d example.com -b crtsh,certspotter --limit 0 -f report其中example.com替换为授权目标。-f report会生成report.jsonl自动化与留证用主格式同时写出report.json和report.xml两个兼容格式。--limit 0的实际效果Operator workflows 与 README 描述一致移除共享的每个源结果上限和本地分页上限各适配器一直运行到其 provider 耗尽provider 配额、协议上限、响应体积保护、运行时限制仍然生效若某个源在已保留部分结果后被 provider 或安全限制停下本次运行会保留这些结果并记录该源为partial及其停止原因。注意--limit 0只影响数据源采集阶段它不改变其他动作的固定预算。例如 RouteViews 的固定预算是 300 次顺序请求和 300 秒limit不会改变它见 Responsible-Use-and-Scope。验证如何判断“采集到数据源耗尽”判断依据是report.jsonl的第一行 summary 记录重点看evidence_status和各源的source_executionsjq -c select(.type summary) | {evidence_status, source_executions} report.jsonlsource_executions中每个源带status与stop_reason字段Troubleshooting 给出了同样的排查方法。判读方式源状态为completed且stop_reason为空该源的 provider 交互正常走完了即达到了“provider 耗尽”意义上的完整采集源状态为partial且带停止原因provider 配额或安全限制在结果已保留后提前停下证据仍被保留但覆盖不完整no-results的completed结果表示 provider 交互正常结束但没有匹配项不等于工具故障failed或rate-limited是独立的覆盖问题不要与零结果混为一谈。运行级evidence_status取值complete、partial、failed汇总整次运行的证据质量逐源的结论以source_executions为准。下面是一个结构参照文档中的示例数据实际数值会不同{counts:{hostname:1},evidence_status:complete,result_count:1,source_executions:[{duration_ms:127.4,error_type:null,result_count:1,source:haveibeenpwned,status:completed,stop_reason:null}],target:example.com,type:summary}如需核对具体结果内容可继续用jq抽取jq -r select(.type hostname) | .value report.jsonl可选分支通过 REST API 提交 limit 为 0 的运行如果采集通过本地 HarvestView 服务而不是 CLI 发起同一语义由运行请求的limit字段表达。REST API 指南 的说明limit默认每源 500取0时移除结果与分页的共享上限适配器继续运行到 provider 耗尽无数值上限provider 配额、协议上限、响应体积保护和运行时限制仍然适用。启动服务THEHARVESTER_API_KEY替换为一个长的随机值export THEHARVESTER_API_KEYreplace-with-a-long-random-value uv run harvestview提交limit: 0的运行并轮询其状态run_id$(curl -s http://127.0.0.1:5000/api/v1/runs \ -X POST \ -H X-API-Key: $THEHARVESTER_API_KEY \ -H Content-Type: application/json \ -d { target: example.com, sources: [crtsh], limit: 0 } \ | jq -r .run_id) curl -s http://127.0.0.1:5000/api/v1/runs/$run_id \ -H X-API-Key: $THEHARVESTER_API_KEY \ | jq {status, evidence_status, source_executions, source_yields}example.com同样替换为授权目标。API 运行是异步的提交成功返回持久化运行记录需要用statusqueued、running、completed等生命周期状态和evidence_statuscomplete、partial、failed两个字段分开判读验证方法与上一节相同。source_yields会给出本次运行内每个源归一化后的 hostname 贡献可与source_executions的停止原因一起阅读。某源没有跑完时怎么查当 summary 里出现partial、failed或rate-limited的源时按 Troubleshooting 的路径缩小范围单独重跑该源并保存诊断报告uv run theHarvester -d example.com -b source-name -l 10 -f diagnostic jq -c select(.type summary) | {evidence_status, source_executions} diagnostic.jsonl把source-name替换为出问题的源名。重跑正常后再逐项核对 provider 侧provider 状态与当前 API 文档、凭据有效性和订阅权限、provider 限流或对共享 CI/云地址的临时封禁、provider 是否声明支持该目标或查询类型。--limit 0本身不会绕过这些限制排查时不应把它们当成工具缺陷。限制与边界“采集到耗尽”只针对数据源采集--limit 0不放宽 provider 配额、协议上限、响应体积保护和运行时限制也不影响 RouteViews 等动作的固定预算。provider 提前截断的源保留已获取证据并记录partial与停止原因结果文件不会因此丢弃内容判读时不要把被截断的源当成零产出。采集结果属于敏感 OSINT 数据报告文件、截图和~/.local/share/theHarvester/stash.sqlite中的完成运行记录不要提交进版本库仅在授权范围内共享保留期结束后按流程清除见 Results-and-Local-Data。后续若要做跨运行的源产出对比保持目标、源集合、请求的 limit、版本、解析器集合和采集窗口一致并把 provider/适配器上限作为执行证据记录而不是把被截断的运行当作零产出。【免费下载链接】theHarvesterE-mails, subdomains and names Harvester - OSINT项目地址: https://gitcode.com/GitHub_Trending/th/theHarvester创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考