serain/bbrecon

GitHub: serain/bbrecon

一款面向 Bug Bounty 猎人的 Python 库和 CLI 工具,用于检索公开漏洞赏金项目的目标范围和域名信息(项目已停止维护)。

Stars: 227 | Forks: 39


**本项目已不再维护,我已将抓取基础设施下线。** **受众群体不够大,不足以证明维护它的必要性。** Bug Bounty Recon (`bbrecon`) 是一款面向 Bug Bounty 猎人和安全研究人员的免费 Recon-as-a-Service。该 API 旨在提供一份持续更新的互联网“安全港”攻击面地图,并排除了不在范围内的目标。 它附带了一个符合人体工程学的 CLI 和 Python 库。 ## 重要提示 尽管我们已尽力确保 `bbrecon` 返回的结果可靠且值得信赖,但本服务及其运营者对您如何使用所提供的数据概不负责。 请仔细检查您的目标范围,并确保您始终在安全港范围内操作。 ## 功能 - **公开项目** - 已收录的公开 Bug Bounty 项目,支持通过过滤器进行搜索 - **域名** - 各个项目中包含的目标域名 - **通知** - 在创建项目或发现域名时通过 webhook 发送警报 ## 状态 `bbrecon` 目前正处于渐进的 **Beta** 发布阶段;每隔几周就会发布主要功能,以获取反馈并修复问题。您可以注册并开始使用它,但请注意,**可能会在未经通知的情况下部署破坏性更新**。虽然该服务和基础设施在设计上具备可扩展性,但**目前并未配置为服务全球大量受众**。这在未来可能会有所改变,但目前您的实际体验可能会有所不同 (YMMV)。 ## 入门指南 ### API key 从控制台获取 API key:https://console.bugbountyrecon.com 目前仅支持 Google SSO。 ### 安装 ``` $ pip3 install bbrecon ``` 如果您打算使用 CLI,您应该永久配置您的 key: ``` $ bbrecon configure key Enter your API key: YOUR_API_KEY ``` 如果您愿意,也可以选择设置 `BBRECON_KEY` 环境变量。 ## CLI 以下命令将输出过去一个月内发布的所有包含 "web" 类型目标(API/web 应用)的项目: ``` $ bbrecon get programs --type web --since last-month SLUG PLATFORM CREATED REWARDS MIN.BOUNTY AVG.BOUNTY MAX.BOUNTY SCOPES TYPES cybrary bugcrowd 2020-07-22 fame $0 $0 $0 6 android,ios,web expressvpn bugcrowd 2020-07-14 cash,fame $150 $1047 $2500 17 android,ios,other,web prestashop yeswehack 2020-07-23 cash $0 $0 $1000 1 web ... ``` 要获取特定项目的范围,请使用 `get scopes`: ``` $ bbrecon get scopes rockset codefi-bbp SLUG PLATFORM TYPE VALUE rockset hackerone web console.rockset.com rockset hackerone web docs.rockset.com rockset hackerone web api.rs2.usw2.rockset.com codefi-bbp hackerone web activate.codefi.network ``` 要获取特定项目的域名,请使用 `get domains`: ``` $ bbrecon get domains dropcontact rebellion-defense SLUG DOMAIN CREATED dropcontact www.dropcontact.io 2020-08-23 rebellion-defense mooch.rip 2020-08-23 rebellion-defense www.rebelliondefense.com 2020-08-23 rebellion-defense rebelliondefense.com 2020-08-23 ... ``` 要创建 Slack 或 Discord 的 webhook 通知,请使用 `create notifications`: ``` bbrecon create notifications --resources programs --program ALL --webhook https://SLACK_OR_DISCORD_WEBHOOK_URL/ ``` 您可以使用 `get notifications` 查看已配置的通知。 大多数命令都可以输出 JSON,以便于在您的脚本中处理。请尝试 `--output json`: ``` $ bbrecon get programs --output json [ { "url": "https://bugcrowd.com/optimizely", "name": "Optimizely", "platform": "bugcrowd", "rewards": [ "cash", "fame" ], ... ``` 您可以通过向 `get programs` 命令传递一个或多个 slug 来获取特定项目的信息: ``` $ bbrecon get programs twago optimizely SLUG PLATFORM CREATED REWARDS MIN.BOUNTY AVG.BOUNTY MAX.BOUNTY SCOPES TYPES twago intigriti 2020-04-09 $0 $0 $0 5 web optimizely bugcrowd 2018-03-22 cash,fame $0 $750 $5000 6 web ``` 使用 `--help` 获取每个命令的过滤器列表: ``` $ bbrecon get programs --help ... Output format. [default: wide] -n, --name TEXT Filter by name. -t, --type TEXT Filter by scope type. Can be used multiple times. -r, --reward TEXT Filter by reward type. Can be used multiple times. -p, --platform TEXT Filter by platform. Can be used multiple times. --exclude-platform TEXT Exclude specific platform. Ignored if --platform was passed. Can be used multiple times. -s, --since TEXT Filter by bounties created after a certain date. A specific date in the format '%Y-%m-%d' can be supplied. Alternatively, the following keywords are supported: 'yesterday', 'last-week', 'last-month', 'last-year' as well as 'last-X-days' (where 'X' is an integer). ... ``` 请注意,某些过滤器是列表,可以多次使用!如果您想获取所有范围内包含移动应用的项目,您可以运行: ``` $ bbrecon get programs --type android --type ios SLUG PLATFORM CREATED REWARDS MIN.BOUNTY AVG.BOUNTY MAX.BOUNTY SCOPES TYPES square bugcrowd 2018-03-22 cash,fame $300 $492 $5000 4 android,ios,other,web gojek bugcrowd 2018-03-22 cash,fame $200 $618 $5000 4 android,ios,web smartthings bugcrowd 2018-03-22 fame $0 $0 $0 5 android,hardware,ios,web ... ``` ## Python 欢迎查看本仓库的代码库以获取更多详细信息,以下是快速入门指南: ``` from bbrecon import BugBountyRecon bb = BugBountyRecon(token="API_KEY") programs = bb.programs( types=["web", "ios"], platforms=["hackerone"], rewards=["cash"], ) for program in programs: print(f"{program.name} rewards up to ${program.maximum_bounty}!") print(f"More information is available at: {program.url}") for scope in program.in_scope: if scope.type == "desktop": print("Found a desktop app in scope for this program. Cool!") domains = list(bb.domains(programs=[program.slug])) print("Here are some domains for this program:") for domain in domains[:3]: print(domain.name) ``` ## REST API 如果您愿意,可以直接与 REST API 进行交互。在[这里](https://docs.bugbountyrecon.com/index.html)查看 API 文档。 ## 其他客户端 以下用于 Bug Bounty Recon API 的客户端未经我个人审查或认可,但您仍然可能会对它们感兴趣。非常感谢这些贡献者! 如果您想将自己的项目列在这里,只需提交一个 PR 即可。 * [bbrecon_mobile_client](https://github.com/ponnamkarthik/bbrecon_mobile_client),作者 [ponnamkarthik](https://github.com/ponnamkarthik)
标签:GitHub, 动态分析, 实时处理, 文档结构分析, 逆向工具