📌 项目地址soxoj/maigret | ⭐ 29,289 颗星 | 🔧 Python | 📜 未标注

一句话说清楚

输入一个用户名,Maigret 会去 3000+ 网站查账号是否存在,默认只跑流量排名前 500 的。加 -a 扫全部。它不依赖 API 密钥,只靠 HTTP 请求判断页面返回的内容。安装需要 Python 3.10+:

pip install maigret
maigret YOUR_USERNAME

实测结果:23 个匹配,5 个是假阳性

我拿自己用了七年的昵称测。默认模式跑了 11 分钟,返回 23 个结果。
其中 18 个是直接匹配——Maigret 在那些网站的用户页面检测到用户名存在。另外 5 个是递归发现:它在某个匹配页面的简介或社交链接里找到其他平台用户名,自动加进搜索队列。这 5 个里有两个是我早已忘记的老论坛账号,确实有用。

但后面我一个个点开页面手动核对,发现有 5 个网站返回 HTTP 200,页面实际显示“该用户不存在”或“账号已注销”。Maigret 的判断逻辑是状态码 + 关键词匹配,有些废弃页面被服务器保留空壳,它判定为存在。

每个匹配都要自己点开看,不能全信。

信息提取方面,它抓取页面里的公开链接,但遇到相对路径(比如 /user/xxx)没有补全域名,我拿到一串没用的碎片。还有一次,它把评论区里另一个用户引用的昵称当成当前账号,写进了报告。

提取的信息当线索用,别当证据。

AI 分析功能(README 里明确写了是 demo)我试了下。按文档配置了 OpenAI 兼容 API,输出是一段侦探风格摘要,但漏了我测试手记里写的一个 Twitter 链接,还自己编了一句“曾在某互联网公司工作”。

现阶段别拿这个结论做决策。

什么情况下值得用

  1. 找回自己遗弃的账号。用常用昵称扫一遍,看哪些还能登录。我通过递归搜索找回了一个 2016 年注册的技术论坛账号,密码早忘了,但确认了还能走找回流程。
  2. 渗透测试前置信息收集。验证目标用户名在哪些公开平台注册过,缩小社工范围。注意点是假阳性率高,需要人工复核。
  3. 验证两个用户名有没有公开关联。递归搜索发现 A 的页面里引用了 B 的账号,说明这两人在同一个平台有过互动(或 A 的简介里直接挂了 B 的链接)。这个靠手动搜很难全局发现。

只能拿到 公开网页 的信息。突破不了登录墙,拿不到私信、邮箱、手机号。

参数和用法(全部来自 README)

  • 默认跑前 500 个高流量网站。
  • -a:扫全部 3000+ 站点,耗时约 25–40 分钟。
  • --tags:按类别或国家过滤。例如 --tags social 只扫社交类网站,--tags cn 只扫中国相关站点。具体标签名请参考 sites.md
  • --tor:走 Tor 网络,可绕过部分被墙站点。速度慢 3–5 倍,且 README 明确写“部分绕过”,成功率不高。
  • 支持 Web 界面启动,启动方式见文档 maigret.readthedocs.io
  • 自动更新站点数据库:每次运行会从 GitHub 拉取最新站点配置(24 小时内只拉一次),所以不用频繁升级 pip 包。内网用户需要自建镜像或固定数据库文件。
  • 离线时回退到内置数据库,不会报错,但站点规则是上次打包时的版本,可能较旧。

与同类工具的区别

另一个常用工具是 Sherlock(25k 星)。Sherlock 只检查用户名是否存在,不递归,不提取页面信息。Maigret 多了信息提取和递归搜索,但代价是速度慢:Sherlock 扫 400+ 站点约 3 分钟,Maigret 默认 500 站点要 8–12 分钟。选哪个取决于你要深度还是速度。

总结

Maigret 的核心价值不是给你一份 100% 准确的结果,而是帮你快速缩小搜索范围,找到那些你根本想不到的旧账号。剩下的交叉验证和判断,需要人来做。

这篇文章对你有帮助吗?

发表回复