目录

Maigret:用户名溯源 3000+ 站点的 OSINT 工具

Maigret:用户名溯源 3000+ 站点的 OSINT 工具

项目概览

Maigret(发音接近"梅格瑞",命名来源于福尔摩斯小说中的侦探 Jules Maigret)是一款开源的 OSINT(Open Source Intelligence,公开来源情报)工具,核心能力是:只需给出一个用户名,在 3000+ 个网站上自动检测该用户名是否已注册,并尽可能提取账户相关的公开信息

该项目由 soxoj 开发维护,当前版本 0.6.0(2025-04-10),最近一次提交为 2026-04-29——五年间持续活跃,GitHub 累计收获 20,281 颗 Stars1,422 个 Forks,是用户名枚举(username enumeration)领域最流行的开源方案之一。

Maigret 的设计目标不是入侵系统,而是利用各平台"用户名已被占用"这一公开事实进行溯源。 项目明确声明仅用于教育和合法用途,使用者需自行遵守当地法律(GDPR、CCPA 等)。

核心能力一览

能力说明
站点覆盖支持 3,157 个站点(持续更新),默认扫描流量排名前 500 的站点,-a 参数可扫描全部
递归搜索发现用户名后,自动提取关联 ID,再以新 ID 继续搜索,形成网络扩展
信息提取集成 socid_extractor 库,从个人主页中提取邮箱、头像、Bio、关联账户链接等
多格式报告支持 HTML、PDF、XMind 8(图形化思维导图)、JSON、NDJSON、CSV、TXT
匿名访问支持 Tor、I2P 和任意 SOCKS5/HTTP 代理,可访问 .onion / .i2p 域名
Web UI内置 Web 界面,提供结果关系图谱和多种格式报告下载
Python 嵌入CLI 仅是异步函数的封装,可作为库直接引入 Python 项目
零 API Key所有检测基于 HTTP 请求,无需任何平台授权

工作原理:递归 + 站点自动更新

Maigret 的技术架构围绕两个核心循环展开,理解它们是掌握这款工具的关键。

1. 站点检测循环

每个站点的检测逻辑统一抽象为"探测器"(probe),核心流程如下:

  1. 根据目标用户名构造该站点的个人主页 URL(不同站点 URL 格式各异,Maigret 维护了一个 3,157 条记录的映射库)
  2. 发送 HTTP 请求,检查响应状态码和页面内容
  3. 判断"用户名已被占用"还是"该账户不存在"(部分站点返回 404,部分返回 200 但有特定提示文本)
  4. 若检测到账户存在,调用 socid_extractor 提取页面中的结构化信息
用户输入: taylor_swift_1989
  ↓
Maigret 构造 URL → https://www.instagram.com/taylor_swift_1989/
  ↓
发送 GET 请求(支持自定义 User-Agent / 代理 / Tor)
  ↓
分析响应 → 找到 Profile 页面特征
  ↓
socid_extractor 提取 → 用户 ID(数字)、Bio、头像 URL、关联账户链接等结构化信息

防屏蔽机制:Maigret 会自动处理部分站点的 Cloudflare 防护、验证码和请求频率限制。对于 taplink.cc 等使用 Cloudflare 的站点,最近的 PR(#2308)已切换为模拟浏览器 User-Agent 以绕过检测。

2. 递归扩展循环

这是 Maigret 与同类工具最显著的差异点。当某个站点的检测返回个人主页 URL 后,Maigret 会:

  1. 解析页面中所有外部链接和 ID 标识符
  2. 将这些新发现的标识符(用户名、邮箱后缀、数字 ID 等)作为新的搜索关键词
  3. 启动新一轮站点检测,从而发现目标在更多平台上的关联账户

这一机制使其能够从一个平台的"taylor_swift"账户出发,层层扩散至 Twitter、GitHub、YouTube 等多个平台,最终构建出目标人物的数字轮廓图谱

3. 站点数据库的自动更新

Maigret 每次运行时(距上次运行超过 24 小时)会自动从 GitHub 下载最新的站点数据库,该数据库包含每个站点的:

  • 站点名称、URL 模板、图标 URL
  • 认证状态(是否需要登录才可查看)
  • 标签:站点分类(如 social、photo、coding)和国家代码(如 us、cn、ru)
  • 流量排名(来自 Majestic Million)
  • 检测方式(status_code、message、redirect 等)

若离线运行,Maigret 会回退到内置的数据库,保证工具仍可使用。

安装与最小示例

环境要求

  • Python 3.10 或更高版本
  • 无需其他系统依赖(跨平台)

安装方式

# 从 PyPI 安装
pip install maigret

# 或者从源码克隆
git clone https://github.com/soxoj/maigret && cd maigret
pip install .

不安装任何软件?可以通过以下途径直接运行:

最小示例

# 检测单个用户名(默认扫描流量排名前 500 的站点)
maigret taylor_swift

# 扫描全部 3000+ 站点
maigret taylor_swift -a

# 仅在标记为 photo 和 dating 的站点中搜索
maigret taylor_swift --tags photo,dating

# 生成 HTML 报告
maigret taylor_swift --html

# 生成 PDF 报告
maigret taylor_swift --pdf

# 通过 Tor 代理发送请求
maigret taylor_swift --tor-proxy socks5://127.0.0.1:9050

Python 嵌入用法

Maigret 的 CLI 是围绕一个异步函数的薄封装,可以直接引入 Python 项目。官方导出的核心接口为:

import asyncio
import logging
from maigret import search
from maigret.sites import MaigretDatabase

async def search_username(username: str):
    logger = logging.getLogger("maigret")
    db = MaigretDatabase()
    site_dict = db.get_all_sites()
    results = await search(
        username,
        site_dict=site_dict,
        logger=logger,
        timeout=5,
    )
    # results 为 dict,键为站点名,值为包含 found/status/url/extract_data 等字段的 dict
    for site_name, result_data in results.items():
        if result_data.get("found"):
            print(f"[+] Found on {site_name}: {result_data.get('url')}")
            if result_data.get("extract_data"):
                print(f"    Data: {result_data.get('extract_data')}")

asyncio.run(search_username("taylor_swift"))

完整的异步调用模式、站点标签过滤和自定义通知器用法,请参考官方 Library Usage 文档

适用场景与边界

适合的场景

  • 安全审计:验证某员工是否在未授权平台注册了与公司相关的账户
  • 数字足迹调查:了解某人在网络上的整体存在情况
  • 社会工程学防御:了解攻击者可能通过公开信息构建的画像
  • 失踪人口/案件调查:在获得合法授权的情况下追踪目标网络身份
  • 红队行动:测试组织对外暴露的数字身份信息

边界与局限

  • Maigret 不突破任何认证系统:它只是检测"公开可见"的信息,而非破解账户。
  • 检测结果受限于站点的反爬策略:Cloudflare、验证码、高频限制等会导致部分站点漏检。
  • 误报管理是持续维护工作:README 提到"站点检查会随时间失效,需要主动维护",因此 Maigret 维护者长期处理误报(false positive)问题,2025-2026 年间已有多次批量禁用/修复误报站点的 PR。
  • 不适用于深度匿名化评估:它只能检测已知站点的账户,无法发现所有在线身份。

总结

Maigret 是目前最完整的开源用户名 OSINT 工具之一,凭借 3000+ 站点覆盖、递归搜索、自动化信息提取和灵活的 Python 嵌入能力,为安全研究人员和分析师提供了高效的数字足迹构建方案。

项目五年持续活跃,维护质量高(依赖更新及时、误报处理迅速),且已有专业商业产品(Social Links API、Crimewall)基于 Maigret 构建。MIT 许可证允许免费商用,但若需要每日更新的站点数据库和专用 API 接口,可联系作者获取商业支持。

立即体验pip install maigret && maigret <你的目标用户名>

参考链接

  • GitHub 仓库:https://github.com/soxoj/maigret
  • 官方文档:https://maigret.readthedocs.io/
  • PyPI 主页:https://pypi.org/project/maigret/
  • Telegram Bot:https://t.me/maigret_search_bot
  • 站点列表:https://github.com/soxoj/maigret/blob/main/sites.md
  • 商业合作联系:maigret@soxoj.com