85,681· 10,015 forks· Python· MIT开发工具

Sherlock - 跨社交网络用户名追踪工具

sherlock-project/sherlock

通过用户名在 400+ 社交平台批量搜索账号的 OSINT 工具,支持 CSV/Excel 导出,适用于信息收集与品牌保护

成熟度维护活跃,最近提交 1 天前,8.5万+ stars 但有 299 个未解决 issues

项目体检

部署 · Docker 单容器运行(sherlock/sherlock 镜像),无需配置文件,命令行参数传递用户名即可;默认无端口暴露(CLI 工具)

成本 · 开箱即用,无需外部 API Key;可选代理参数(--proxy)支持 SOCKS5 翻墙;依赖公开网站 HTTP 响应判断账号存在性

技术 · Python 3.9+ 编写,使用 Poetry 管理依赖,核心逻辑基于 HTTP 请求库(certifi 证书验证)

许可 · MIT 协议,允许商用且无需开源衍生代码,适合集成到商业安全产品

活跃 · 最新版本 v0.16.0 发布于 2025-09,313 名贡献者参与,1 天前仍有代码提交,长期活跃

解决什么

Sherlock 解决跨平台用户名追踪的效率问题。传统人工逐个网站搜索用户名耗时费力,该工具通过自动化批量查询 400+ 社交网络(包括 GitHub、Twitter、Instagram、Reddit 等),快速定位目标用户在不同平台的账号分布。核心应用场景包括:网络安全渗透测试中的信息收集(OSINT)、品牌方检查商标被抢注情况、个人用户预防身份冒用、招聘方背景调查等。

为何火

该项目在 HN 获得 172 点讨论热度,GitHub 累积 8.5 万+ stars,火爆原因有三:一是刚需痛点明确——用户名碰撞是互联网常态,无论品牌保护还是安全审计都需要此类工具;二是技术门槛低,Python CLI 工具开箱即用,支持 Docker/pip 多种安装方式;三是数据覆盖广,维护团队持续更新站点列表(通过 JSON 配置动态扩展),且开源协议友好(MIT)允许商业集成。社区争议主要集中在伦理层面——工具可被用于人肉搜索(doxxing),但支持者认为用户名本就是公开标识符,合法用途包括品牌抢注防御和安全漏洞私下通报。

核心功能

  • 批量查询:单次命令可检索多个用户名(如 sherlock user1 user2),结果自动保存为独立文本文件
  • 多格式导出:支持 TXT/CSV/XLSX 三种格式,便于后续数据分析或报告生成
  • 定向搜索:通过 --site 参数限定特定平台(如仅查 GitHub 和 Twitter),节省时间
  • 代理支持:内置 --proxy 参数支持 SOCKS5 代理,绕过地区限制或隐藏真实 IP
  • 模糊匹配:用户名中的 {?} 占位符可自动替换为 _/-/. 进行变体查询
  • 浏览器联动:--browse 参数可自动在默认浏览器打开所有匹配结果页面
  • 自定义站点库:通过 --json 参数加载自定义或在线 JSON 配置,扩展支持的平台列表

安装

推荐三种方式:

  1. pipx(隔离环境):pipx install sherlock-project,适合日常使用
  2. Docker:docker run -it --rm sherlock/sherlock <用户名>,无需本地 Python 环境
  3. 系统包管理器:Fedora 用 dnf install sherlock-project,Debian 13+/Ubuntu 22.10+ 有社区维护包(但 Ubuntu 24.04 包已知损坏,需回退到 pip 方案)

注意 Kali/BlackArch/Homebrew 的包由社区维护,非官方支持。

适合谁

  • 安全研究员:渗透测试前期信息收集,快速绘制目标数字足迹
  • 品牌运营者:新品牌上线前检查各平台用户名占用情况,或监控仿冒账号
  • 开发者:为开源项目选择无冲突的项目名,或联系 GitHub 用户(通过找到其他平台联系方式)
  • 个人用户:检查自己常用昵称在哪些平台被注册,提前占坑防止身份盗用

不适合无技术背景的普通用户(需命令行操作),也不适合大规模商业化爬取(可能违反平台 ToS)。

社区评价

HN 讨论呈现明显两极分化:正面观点认为工具有合法用途——招聘时筛查候选人社交媒体言论、品牌方预防抢注(类比商标注册的主动防御)、开发者私下联系 GitHub 用户报告安全漏洞(GitHub 无私信功能);负面质疑集中在伦理风险,有评论直言"除了人肉搜索还有什么用",另有人担忧助长用户名抢注(namesquatting)。争议焦点在于"先发制人"的正当性——支持者认为"别人可能先抢注并勒索你"是合理防御,反对者则质疑这种逻辑是否滑向伦理灰色地带。技术层面,有用户反馈 ParrotOS 和 Ubuntu 24.04 的打包版本已损坏,需改用 Docker 或 pip 安装。

选型对比

  • vs 商业 OSINT 平台(如 Maltego):Sherlock 免费开源且专注用户名查询,但缺少关系图谱可视化和深度数据挖掘;商业工具适合企业级调查,Sherlock 适合轻量级单点突破
  • vs 手动搜索:自动化节省 90% 时间,但可能产生误报(平台反爬或用户名规则变化导致);手动验证更准确但不可规模化
  • vs 其他开源工具(如 Namechk):Sherlock 的站点覆盖更广(400+ vs 100+),且支持自定义 JSON 扩展;但 Namechk 有 Web 界面更友好

已知坑

  1. 误报问题:部分平台反爬机制会导致假阳性(显示账号存在但实际不存在),需人工复核关键结果
  2. 中国平台缺失:默认站点库以欧美平台为主,微博/知乎/B站等需自行添加 JSON 配置
  3. 法律风险:部分国家将未经授权的批量信息收集定性为非法,使用前需了解当地《网络安全法》等法规
  4. 依赖网络环境:墙内用户查询 Twitter/Instagram 等需配置代理(--proxy socks5://127.0.0.1:1080)
  5. 维护滞后:299 个未解决 issues 显示部分站点 API 变更后未及时更新,可能导致查询失败
  6. 无 GUI:纯命令行工具,非技术用户上手门槛高(社区有第三方 Web 前端但非官方)

安装方式:pipx/pip/docker