KyleDerZweite/basalt

GitHub: KyleDerZweite/basalt

基于 Go 编写的关系型 OSINT 工具,通过 29 个专用模块对用户名、邮箱和域名进行深度扫描,构建跨平台数字足迹关联图谱。

Stars: 1 | Forks: 0

# Basalt 用于发现您的数字足迹的关系型 OSINT 工具。Basalt 针对 username、email 和 domain 运行 29 个专用模块,随后根据所有发现的内容构建关系图谱。 不同于那些使用 URL 模板向数千个站点发送请求的工具,Basalt 采用包含结构化 API 调用、HTML 抓取以及模块级健康检查的独立模块逻辑。每个模块为其自身计算置信度评分。不会因为通用的状态码匹配而产生误报。 **仅限自我查询和经授权的研究。** 在扫描任何您不拥有的标识符之前,您必须获得明确的同意。 ## 安装 ``` go install github.com/kyle/basalt@latest ``` 或者从源码构建: ``` cd cli go build -o basalt . ``` ## 用法 ``` # 扫描用户名 basalt scan -u kylederzweite # 扫描电子邮件 basalt scan -e kyle@example.com # 扫描域名 basalt scan -d kylehub.dev # 同时扫描多个 seeds basalt scan -u kyle -e kyle@example.com -d kylehub.dev # 导出结果 basalt scan -u kyle --export json --export csv # Verbose 模式(显示 module 健康详情) basalt scan -u kyle -v ``` ### 标志 | 标志 | 默认值 | 描述 | |------|---------|-------------| | `-u, --username` | | Username 种子(可重复) | | `-e, --email` | | Email 种子(可重复) | | `-d, --domain` | | Domain 种子(可重复) | | `--depth` | `2` | 最大扩展深度 | | `--concurrency` | `5` | 最大并发模块请求数 | | `--timeout` | `10` | 单个模块超时时间(秒) | | `--config` | `~/.basalt/config` | API 密钥配置文件路径 | | `--export` | | 导出格式:`json`, `csv`(可重复) | | `-v, --verbose` | `false` | 显示模块健康详情 | ### 输出 终端输出是一个按置信度评分排序的颜色编码表格(绿色 >= 0.80,黄色 >= 0.50)。 `--export json` 将完整的图谱(节点、边缘、元数据)写入带有时间戳的 JSON 文件中。 `--export csv` 将扁平化的节点列表写入带有时间戳的 CSV 文件中。 ## 模块 横跨 8 个类别的 29 个模块: | 类别 | 模块 | 种子类型 | |----------|---------|------------| | 身份信息 | Gravatar, Keybase | email, username | | 开发/技术 | GitHub, GitLab, StackExchange, Docker Hub, DEV.to, Hacker News | username, email | | 社交 | Reddit, YouTube, Twitch, Discord, Instagram, TikTok, Medium, Telegram | username | | 个人主页 | Linktree, Beacons, Carrd, Bento | username | | 通讯 | Matrix | username | | 游戏 | Steam, OP.GG, Spotify | username | | 域名 | WHOIS/RDAP, DNS/CT | domain | | 基础设施 | Shodan, Wayback Machine, IPinfo | domain | 模块在扫描前会自检健康状态: - **Healthy**:正常运行 - **Degraded**:可用,但置信度减半(频率限制、间歇性问题) - **Offline**:完全跳过(API 宕机、缺少密钥) ## 工作原理 Basalt 使用 **响应式图谱遍历器**。没有分批或分阶段执行。执行顺序由数据流产生: 1. 将种子节点添加到图谱中 2. 并发分发所有能处理每种种子类型的模块 3. 当模块返回新节点(email、username、domain)时,这些节点将被反馈给遍历器 4. 此过程将持续进行,直到达到最大扩展深度或未发现新的可扩展节点 每个模块独立决定提取的内容及分配的置信度。遍历器负责去重、并发限制和深度跟踪。 ## 配置 API 密钥存放在 `~/.basalt/config` 中(或通过 `--config path` 指定): ``` GITHUB_TOKEN=ghp_xxxxxxxxxxxx ``` GitHub 即使没有 token 也能工作,但请求速率限制较低。所有其他模块均无需 API 密钥即可工作。 ## 法律声明 此工具仅查询可公开访问的 endpoint。无身份验证绕过,无私有数据访问。 - GDPR:仅扫描您拥有或获得明确授权搜索的标识符 - 内置速率限制并按域名强制执行 - 代理支持旨在保护隐私,而非用于规避 ## 许可证 [AGPLv3](LICENSE):如果您在网络服务中使用 Basalt,您必须共享您的源代码。
标签:DFIR, ESC4, ESC8, EVTX分析, Go语言, OSINT, Unix, 信息泄露监测, 关系图谱, 基线检查, 安全合规, 实时处理, 情报分析, 数字足迹, 数据导出, 日志审计, 用户名枚举, 用户画像, 社会工程学, 程序破解, 网络代理, 网络安全, 网络诊断, 自动化安全工具, 调查工具, 身份追溯, 邮箱查询, 隐私保护, 黑盒测试