soxoj/kronikier
GitHub: soxoj/kronikier
从web.archive.org快照中挖掘历史联系人信息的OSINT工具。
Stars: 32 | Forks: 2
# kronikier
从 **web.archive.org** 快照中挖掘 **历史** 联系人(电子邮件、电话号码)的 OSINT 工具。为调查而构建,其中当前网站不再显示联系详情(或显示不同的详情),但早期版本保存在存档中。
[](https://asciinema.org/a/kZErdPENZJlnSEjA)
**完整文档:** [docs/USAGE.md](docs/USAGE.md) · [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md).
## 快速开始
```
pip install -e .
```
```
# 默认扫描:5分钟超时,启用 contact-URL 过滤。
kronikier theranos.com
# 一个特定页面是如何在快照中演变的?
kronikier --single-url https://www.theranos.com/contact-us
# 长时间彻底扫描,包含主机上的每个 URL。
kronikier wirecard.com --exhaustive
# 批量处理目标列表。
kronikier --targets-file targets.txt
```
第一次运行会进行一次性的延迟校准(约3-5秒,缓存14天)。每次运行都会在当前目录旁边写入一个 CSV 文件,并将摘要表格打印到终端:
```
Contact First seen Last seen
───────────────────────── ────────── ──────────
email info@theranos.com 2014-02-08 2015-02-24
phone +1 855-843-7200 2014-09-02 2015-11-18
CSV saved: ./theranos.com_20260529_200437.csv
[*] Cache: 3 hit / 0 miss (saved 3 fetches on web.archive.org)
```
这就是入门的全部内容。有关完整 CLI 参考、批量输入格式、快照缓存控制和故障排除,请参阅 [docs/USAGE.md](docs/USAGE.md).
## 你能得到什么
每次运行都会产生:
- **终端上的等宽总结表格** - 每个联系人的首次/最后出现时间戳,按时间顺序排列。
- **CSV 文件**,包含九列:
`kind, value, value_human, value_raw, first_seen, last_seen, sightings_count, first_archive_url, last_archive_url`。UTF-8 带字节顺序标记,以便 Excel 清晰地打开非 ASCII 内容。
- **终端中的实时联系人源** (`+ email …`, `+ phone …`),随着结果流进来。`-v` 在每个结果下方添加快照日期 + URL。
`--json` 将表格切换到 stdout 上的机器可读 JSON 对象;CSV 仍然写入,并在 stderr 上报告路径。
空结果打印 `No contacts found.` 并完全跳过 CSV。
## 当这个工具是正确的选择
当网站:
- 已死亡;
- 已重新注册且联系人已被清除;
- 编辑团队变更且删除了以前负责的人;
- 在可疑的故事中浮出水面且电话号码一夜之间消失。
Wayback Machine 经常是唯一权威所有者信息的来源。
对于其他所有情况(联系人页面正常工作的实时网站),只需打开实时网站即可。
## 快照缓存
Wayback 快照是不可变的,因此重新运行相同的扫描可以回答问题而无需花费更多的 IA 字节。CLI 在磁盘上保持一个缓存,默认开启,位于 `~/.cache/kronikier/snapshots/`。每个快照一个 HTML 文件,可在磁盘上浏览,按主机分组。
使用 `--no-cache` 禁用。使用 `--clear-cache` 清除。
完整布局、环境变量覆盖和尽力而为语义请参阅 [docs/USAGE.md](docs/USAGE.md#snapshot-cache).
## 速率限制和道德规范
- 默认 `--rate 4`(每秒4个请求到wayback)是礼貌的。在没有理由的情况下不要提高它 - 存档服务于每个人。
- 所有提取的数据都是公开的。该工具不会绕过付费墙、爬虫阻止或任何访问控制。
- 存档中的联系人可能属于不再与该域名相关联的人。时间线列(`first_seen` / `last_seen`)在那里,以便你可以判断当时什么是最新的。
- 仅在法律调查范围内使用。
## OSINT 例子
“从存档中恢复联系人”的技术在许多已发表的调查中得到记录。以下是一些:
- **John Carreyrou / WSJ — Theranos**。在该公司关闭后,存档的 `theranos.com` 中的材料作为证据使用。
- **Brian Krebs (KrebsOnSecurity)**。通过存档的早期版本着陆页上的联系人电子邮件识别了多个恶意软件和欺诈网站运营商。
- **OCCRP 壳公司调查**。“联系”页面上的壳网站通常在清除之前会列出实际受益人。
- **Bellingcat**。在多个调查中应用了相同的技巧。
端到端测试套件(`pytest -m e2e`)针对 `theranos.com` 和 `enron.com` 的实时 Wayback 进行测试,并断言两者的规范联系人仍然出现 - OSINT 用例是回归测试。
## 许可证
[MIT](LICENSE).
标签:CSV文件输出, ESC4, OSINT, pip安装, Python开发, 历史数据挖掘, 历史档案分析, 域名信息, 性能监控, 数据提取, 用户界面, 电子邮件挖掘, 电话号码挖掘, 缓存机制, 网站信息收集, 网站版本对比, 逆向工具