黑客的 OSINT 自动化。
项目描述
BEE·机器人
黑客的 OSINT 自动化。
BBOT是一个用 Python 编写的递归模块化OSINT 框架。
它能够在单个命令中执行整个 OSINT 进程,包括子域枚举、端口扫描、网页截图(及其gowitness模块)、漏洞扫描(带有nuclei)等等。
BBOT 目前有超过50 个模块并且还在增加。
安装(点)
pip install bbot
bbot --help
先决条件:
- Linux 或 WSL
- Python 3.9 或更新版本
安装(码头工人)
git clone https://github.com/blacklanternsecurity/bbot && cd bbot
docker build . -t bbot
docker run bbot --help
# note: alternatively there is a helper script that will automatically map docker volumes to persist your BBOT scan data:
./bbot-docker.sh --help
如果您在安装方面需要帮助,请参阅wiki。
使用 BBOT 扫描
注意:httpx大多数扫描都推荐使用该模块,因为BBOT 使用它来访问网页。
例子
# list modules
bbot -l
# subdomain enumeration
bbot --flags subdomain-enum --modules httpx --targets evilcorp.com
# passive modules only
bbot --flags passive --targets evilcorp.com
# web screenshots with gowitness
bbot -m naabu httpx gowitness --name my_scan --output-dir . -t subdomains.txt
# web scan
bbot -f web-basic -t www.evilcorp.com
# web spider (search for emails, etc.)
bbot -m httpx -c web_spider_distance=2 web_spider_depth=2 -t www.evilcorp.com
# everything at once because yes
bbot -f subdomain-enum web-basic -m naabu gowitness -c web_spider_distance=2 web_spider_depth=2 -t evilcorp.com
访问 wiki 以获取更多提示和技巧。
使用 BBOT 作为 Python 库
from bbot.scanner import Scanner
scan = Scanner("evilcorp.com", "1.2.3.0/24", modules=["naabu"], output_modules=["json"])
scan.start()
输出
BBOT 可以使用--output-module. 您可以同时输出多种格式。
# tee to a file
bbot -f subdomain-enum -t evilcorp.com | tee evilcorp.txt
# output to JSON
bbot --output-module json -f subdomain-enum -t evilcorp.com | jq
# output to CSV, TXT, and JSON, in current directory
bbot -o . --output-module human csv json -f subdomain-enum -t evilcorp.com
对于每一次扫描,BBOT 都会生成一个独特而有趣的名称,例如fuzzy_gandalf. 该扫描的输出,包括词云和任何 gowitness 屏幕截图等,都保存到~/.bbot/scans. 保留最近的 20 次扫描,并删除较旧的扫描。您可以使用 更改 BBOT 输出的位置,--output也可以使用 选择自定义扫描名称--name。
如果您重复使用扫描名称,它将附加到其原始输出文件并利用之前的词云。
Neo4j
Neo4j 是查看 BBOT 数据并与之交互的最有趣(也是最漂亮)的方式。
- 您可以使用单个 docker 命令启动并运行 Neo4j:
docker run -p 7687:7687 -p 7474:7474 --env NEO4J_AUTH=neo4j/bbotislife neo4j
- 之后,运行 bbot
--output-modules neo4j
bbot -f subdomain-enum -t evilcorp.com --output-modules human neo4j
用法
$ bbot --help
usage: bbot [-h] [-t TARGET [TARGET ...]] [-w WHITELIST [WHITELIST ...]] [-b BLACKLIST [BLACKLIST ...]] [-s] [-n SCAN_NAME] [-m MODULE [MODULE ...]] [-l] [-em MODULE [MODULE ...]] [-f FLAG [FLAG ...]]
[-rf FLAG [FLAG ...]] [-ef FLAG [FLAG ...]] [-om MODULE [MODULE ...]] [-o DIR] [-c [CONFIG ...]] [--allow-deadly] [-v] [-d] [--force] [-y] [--dry-run] [--current-config] [--save-wordcloud FILE]
[--load-wordcloud FILE] [--no-deps | --force-deps | --retry-deps | --ignore-failed-deps] [-a]
Bighuge BLS OSINT Tool
options:
-h, --help show this help message and exit
-n SCAN_NAME, --name SCAN_NAME
Name of scan (default: random)
-m MODULE [MODULE ...], --modules MODULE [MODULE ...]
Modules to enable. Choices: affiliates,asn,aspnet_viewstate,azure_tenant,binaryedge,blind_ssrf,bypass403,c99,censys,certspotter,cookie_brute,crobat,crt,dnscommonsrv,dnsdumpster,dnszonetransfer,emailformat,ffuf,ffuf_shortnames,generic_ssrf,getparam_brute,github,gowitness,hackertarget,header_brute,host_header,httpx,hunt,hunterio,iis_shortnames,ipneighbor,leakix,massdns,naabu,ntlm,nuclei,passivetotal,pgp,securitytrails,shodan_dns,skymem,smuggler,sslcert,sublist3r,telerik,threatminer,urlscan,viewdns,wappalyzer,wayback,zoomeye
-l, --list-modules List available modules.
-em MODULE [MODULE ...], --exclude-modules MODULE [MODULE ...]
Exclude these modules.
-f FLAG [FLAG ...], --flags FLAG [FLAG ...]
Enable modules by flag. Choices: active,aggressive,brute-force,deadly,passive,portscan,report,safe,slow,subdomain-enum,web
-rf FLAG [FLAG ...], --require-flags FLAG [FLAG ...]
Disable modules that don't have these flags (e.g. --require-flags passive)
-ef FLAG [FLAG ...], --exclude-flags FLAG [FLAG ...]
Disable modules with these flags. (e.g. --exclude-flags brute-force)
-om MODULE [MODULE ...], --output-modules MODULE [MODULE ...]
Output module(s). Choices: csv,http,human,json,neo4j,websocket
-o DIR, --output-dir DIR
-c [CONFIG ...], --config [CONFIG ...]
custom config file, or configuration options in key=value format: 'modules.shodan.api_key=1234'
--allow-deadly Enable running modules tagged as "deadly"
-v, --verbose Be more verbose
-d, --debug Enable debugging
--force Run scan even if module setups fail
-y, --yes Skip scan confirmation prompt
--dry-run Abort before executing scan
--current-config Show current config in YAML format
Target:
-t TARGET [TARGET ...], --targets TARGET [TARGET ...]
Targets to seed the scan
-w WHITELIST [WHITELIST ...], --whitelist WHITELIST [WHITELIST ...]
What's considered in-scope (by default it's the same as --targets)
-b BLACKLIST [BLACKLIST ...], --blacklist BLACKLIST [BLACKLIST ...]
Don't touch these things
-s, --strict-scope Don't consider subdomains of target/whitelist to be in-scope
Word cloud:
Save/load wordlist of common words gathered during a scan
--save-wordcloud FILE
Output wordcloud to custom file when the scan completes
--load-wordcloud FILE
Load wordcloud from a custom file
Module dependencies:
Control how modules install their dependencies
--no-deps Don't install module dependencies
--force-deps Force install all module dependencies
--retry-deps Try again to install failed module dependencies
--ignore-failed-deps Run modules even if they have failed dependencies
Agent:
Report back to a central server
-a, --agent-mode Start in agent mode
BBOT 配置
BBOT 按以下顺序从这些位置加载其配置:
~/.config/bbot/defaults.yml~/.config/bbot/bbot.yml<-- 使用这个作为你的主要配置~/.config/bbot/secrets.yml<-- 将此用于敏感内容,例如 API 密钥- 命令行(通过
--config)
这些配置文件将在您首次运行 BBOT 时自动为您创建。
命令行参数优先于所有其他参数。你可以给 BBOT 一个自定义配置文件--config myconf.yml,或者像这样的单个参数:--config http_proxy=http://127.0.0.1:8080 modules.shodan_dns.api_key=1234. 要显示完整和当前的 BBOT 配置,包括任何命令行参数,请使用bbot --current-config.
有关配置选项的说明,请defaults.yml参阅wiki
模块
注意:您可以在Module Playground找到更多有趣和有趣的模块。有关如何安装这些其他模块的说明,请参阅wiki。
| 模块 | 需要 API 密钥 | 描述 | 标志 | 产生的事件 |
|---|---|---|---|---|
| aspnet_viewstate | 解析网页的视图状态并对照 blacklist3r 检查它们 | 活跃、安全、网络 | 脆弱性 | |
| 绕过403 | 检查 403 页面的常见绕过 | 积极、进取、网络 | 发现 | |
| cookie_brute | 检查常见的 HTTP cookie 参数 | 积极的、进取的、蛮力的、缓慢的、网络的 | 发现 | |
| dnszone传输 | 尝试 DNS 区域传输 | 活动、安全、子域枚举 | DNS_NAME | |
| 呸呸呸 | 用 Go 编写的快速网络模糊器 | 主动、进取、蛮力、致命、网络 | 网址 | |
| ffuf_shortnames | 在组合 IIS 短名称中使用 ffuf | 主动,进取,蛮力,网络 | 网址 | |
| generic_ssrf | 检查通用 SSRF | 积极、进取、网络 | 脆弱性 | |
| getparam_brute | 检查常见的 HTTP GET 参数 | 积极的、进取的、蛮力的、缓慢的、网络的 | 发现 | |
| 见证 | 截取网页截图 | 活跃、安全、网络 | 截屏 | |
| header_brute | 检查常见的 HTTP 标头参数 | 积极的、进取的、蛮力的、缓慢的、网络的 | 发现 | |
| 主机头 | 尝试常见的 HTTP 主机头欺骗技术 | 积极、进取、网络 | 发现 | |
| httpx | 访问网页。许多其他模块依赖于httpx | 活跃、安全、网络 | HTTP_RESPONSE,网址 | |
| 打猎 | 注意通常可利用的 HTTP 参数 | 活跃、安全、网络 | 发现 | |
| iis_shortnames | 检查 IIS 短名称漏洞 | 主动、安全 | URL_HINT | |
| 纳布 | 使用 naabu 执行端口扫描 | 主动、积极、端口扫描 | OPEN_TCP_PORT | |
| ntlm | 注意支持 NTLM 身份验证的 HTTP 端点 | 活跃、安全、网络 | DNS_NAME,发现 | |
| 核 | 快速且可定制的漏洞扫描程序 | 积极的,积极的,致命的,网络 | 脆弱性 | |
| 走私者 | 检查 HTTP 走私 | 积极的、进取的、蛮力的、缓慢的、网络的 | 发现 | |
| sslcert | 访问开放端口并检索 SSL 证书 | 活动,电子邮件枚举,安全,子域枚举 | DNS_NAME,EMAIL_ADDRESS | |
| 泰利里克 | 扫描关键 Telerik 漏洞 | 积极、进取、网络 | 发现,漏洞 | |
| 虚拟主机 | 虚拟主机的模糊测试 | 活跃,进取,蛮力,致命,缓慢,网络 | DNS_NAME,VHOST | |
| 分析仪 | 从网络响应中提取技术 | 活跃、安全、网络 | 技术 | |
| 附属公司 | 在扫描结束时总结附属域 | 被动,报告,安全 | ||
| asn | 在 bgpview.io 中查询 ASN | 被动、报告、安全、子域枚举 | ASN | |
| azure_tenant | 在 Azure 中查询租户姐妹域 | 被动、安全、子域枚举 | DNS_NAME | |
| 二元边 | X | 查询 BinaryEdge API | 被动、安全、子域枚举 | DNS_NAME |
| 内置 | X | 查询 Builtwith.com 的子域 | 被动、安全、子域枚举 | DNS_NAME |
| c99 | X | 查询子域的 C99 API | 被动、安全、子域枚举 | DNS_NAME |
| 中央系统 | X | 查询 Censys API | 电子邮件枚举,被动,安全,子域枚举 | DNS_NAME、EMAIL_ADDRESS、IP_ADDRESS、OPEN_PORT、协议 |
| 证书观察者 | 查询 Certspotter 的子域 API | 被动、安全、子域枚举 | DNS_NAME | |
| 杂技演员 | 查询子域的 Project Crobat | 被动、安全、子域枚举 | DNS_NAME | |
| crt | 查询子域的 crt.sh(证书透明度) | 被动、安全、子域枚举 | DNS_NAME | |
| dnscommonsrv | 检查常见的 SRV 记录 | 被动、安全、子域枚举 | DNS_NAME | |
| dnsdumpster | 查询子域的 dnsdumpster | 被动、安全、子域枚举 | DNS_NAME | |
| 电子邮件格式 | 在 email-format.com 中查询电子邮件地址 | 电子邮件枚举,被动,安全 | 电子邮件地址 | |
| 全猎 | X | 查询子域的 fullhunt.io API | 被动、安全、子域枚举 | DNS_NAME |
| github | X | 查询 Github 的 API 获取相关仓库 | 被动、安全、子域枚举 | URL_UNVERIFIED |
| 黑客目标 | 查询hackertarget.com API 的子域 | 被动、安全、子域枚举 | DNS_NAME | |
| 亨特里奥 | X | 在hunter.io 中查询电子邮件 | 电子邮件枚举,被动,安全,子域枚举 | DNS_NAME、EMAIL_ADDRESS、URL_UNVERIFIED |
| 邻居 | 查看周围子网中的 IP | 积极、被动、子域枚举 | IP地址 | |
| 泄漏 | 在leakix.net 中查询子域 | 被动、安全、子域枚举 | DNS_NAME | |
| 群发 | 使用 massdns 的蛮力子域(高效) | 激进的,蛮力的,被动的,慢的,子域枚举 | DNS_NAME | |
| otx | 查询 otx.alienvault.com 的子域 | 被动、安全、子域枚举 | DNS_NAME | |
| 被动总 | X | 查询子域的 PassiveTotal API | 被动、安全、子域枚举 | DNS_NAME |
| pgp | 查询常用 PGP 服务器的电子邮件地址 | 电子邮件枚举,被动,安全 | 电子邮件地址 | |
| 快速域名 | 在 rapiddns.io 中查询子域 | 被动、安全、子域枚举 | DNS_NAME | |
| 安全路径 | X | 查询子域的 SecurityTrails API | 被动、安全、子域枚举 | DNS_NAME |
| shodan_dns | X | 查询 Shodan 的子域 | 被动、安全、子域枚举 | DNS_NAME |
| 天际线 | 在 skymem.info 中查询电子邮件地址 | 电子邮件枚举,被动,安全 | 电子邮件地址 | |
| 子列表3r | 查询 sublist3r 的子域 API | 被动、安全、子域枚举 | DNS_NAME | |
| 威胁矿工 | 查询threatminer的子域API | 被动、安全、子域枚举 | DNS_NAME | |
| 网址扫描 | 查询 urlscan.io 的子域 | 被动、安全、子域枚举 | DNS_NAME,URL_UNVERIFIED | |
| 浏览器 | 查询viewdns.info的相关域名的反向whois | 被动、安全、子域枚举 | DNS_NAME | |
| 回程 | 查询archive.org 的子域API | 被动、安全、子域枚举 | DNS_NAME,URL_UNVERIFIED | |
| 变焦眼 | X | 查询 ZoomEye 的子域 API | 被动、安全、子域枚举 | DNS_NAME |
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。