一、项目概览
sherlock-project/sherlock 是一个开源 OSINT(开源情报)命令行工具,通过用户名在 400+ 社交网络平台上搜索对应账号,帮助用户快速摸清一个账号的全网足迹。
核心 slogan:Hunt down social media accounts by username across social networks.
截至 2026 年 9 月:
- Stars:92,188 / Forks:10,868
- 创建时间:2018 年 12 月 24 日,最后推送 2026 年 9 月 20 日(今日活跃)
- 技术栈:Python 3
- 许可证:MIT(完全开源)
- 版本:v0.16.0(2025 年 9 月发布)
- 官网:https://sherlockproject.xyz
- 平台标签:OSINT / CTI / 网络安全 / 取证 / 渗透测试 / 情报收集 / 红队侦察
二、工作原理
Sherlock 的设计逻辑简洁而高效:给定一个用户名,工具遍历内置的平台列表,对每个平台构造该用户名的预期个人主页 URL(如 twitter.com/username、github.com/username),然后发送 HTTP 请求并判断响应——
- 返回 200 + 页面内容 → 账号存在
- 返回 404 → 账号不存在
- 其他响应 → 根据平台特定规则判断
这是一种确定性、基于规则的用户名枚举——不爬取、不绕过认证、不访问私有数据,只查公开可见的主页 URL。
平台数据存储在 sherlock_project/resources/data.json 中,每条记录包含:URL 格式、错误响应特征、平台特定处理逻辑。添加新平台只需修改 JSON 配置,无需改动核心代码。
三、安装方式
支持多种安装途径:
pipx(推荐)
pipx install sherlock-project
pip 或 uv 也可以:
pip install sherlock-project
# 或
uv pip install sherlock-project
Docker
docker run -it --rm sherlock/sherlock user123
系统包管理器
# DNF(Fedora)
dnf install sherlock-project
# Homebrew(macOS/Linux)
brew install sherlock
# Kali / BlackArch
apt install sherlock # Kali
pacman -S sherlock # BlackArch
注意:ParrotOS 和 Ubuntu 24.04 的第三方包目前有故障,建议使用 pipx / pip / uv 或 Docker 安装。
四、基本用法
单用户名搜索
sherlock user123
默认将结果保存到 user123.txt,终端实时输出各平台查询结果。
多用户名批量搜索
sherlock alice bob charlie
结果分别保存到各自 .txt 文件,或用 --folderoutput 指定输出目录:
sherlock alice bob -fo results/
使用 {?} 通配符搜索名字变体
sherlock john{?}doe
# 等价于同时搜索:johndoe / john-doe / john.doe
只输出找到的账号(推荐)
sherlock username --print-found --no-color
限制特定平台
sherlock username --site GitHub --site Instagram
导出格式
sherlock username --csv # CSV 表格
sherlock username --xlsx # Excel 表格
sherlock username --json data.json # JSON
sherlock username --browse # 在浏览器打开所有结果
匿名查询(Tor / 代理)
sherlock username --tor
sherlock username --proxy socks5://127.0.0.1:1080
完整参数参考
| 参数 | 说明 |
|---|---|
--print-found |
只输出找到的账号 |
--print-all |
输出所有平台(含未找到) |
--no-color |
禁用彩色输出(便于日志和 CI) |
--timeout |
单个请求超时(秒,默认 60) |
--nsfw |
包含 NSFW 平台(默认关闭) |
--local |
强制使用本地 data.json(离线可用) |
--ignore-exclusions |
忽略上游排除规则(可能增加误报) |
--json |
从 JSON 文件加载用户名列表(支持在线 URL 和 PR 号) |
--dump-response |
输出 HTTP 响应内容(用于调试特定平台) |
五、支持平台规模
支持 400+ 社交网络和网站,涵盖:
- 主流社交媒体:Twitter/X、Instagram、Facebook、Reddit、TikTok、Snapchat、LinkedIn、Tumblr、Pinterest
- 开发者平台:GitHub、GitLab、Bitbucket、Stack Overflow、dev.to、Hashnode、Replit、CodePen
- 视频/直播平台:YouTube、Twitch、Vimeo、Dailymotion、SoundCloud、Bandcamp
- 论坛/社区:Discord、Discord Servers、Quora、Medium、Substack、WordPress、Blogger
- 游戏平台:Steam、Epic Games、Roblox、Twitch、Discord(游戏类服务器)
- 电商/创作平台:Etsy、Shutterstock、Behance、Dribbble、ArtStation、Ko-fi、Patreon
- 其他网站:各种细分论坛、新闻站点、博客平台
完整支持列表:https://sherlockproject.xyz/sites
六、典型使用场景
OSINT 调查
从一个用户名出发,摸清目标在互联网上的整体存在——对于威胁情报、网络安全取证、事件响应等场景,这是关键的初步侦察步骤。
品牌保护
监控品牌名称在各大平台上的账号注册情况,快速发现冒牌账号或抢注行为。
防伪鉴伪
在网络交友、远程招聘、二手交易等场景中,通过用户名核实对方在多个平台是否有一致的数字足迹,降低被骗风险。
个人品牌管理
在正式命名之前,检查心仪用户名在各主流平台的可用性。
渗透测试 / 红队侦察
在授权的安全测试中,收集目标组织的数字资产暴露面。
七、与同类工具对比
| 维度 | Sherlock | Maigret | WhatsMyName | Holehe |
|---|---|---|---|---|
| 原理 | URL 存在性检查 | URL 检查 + 页面抓取 | URL 检查(Web UI) | 邮箱注册检测 |
| 输入 | 用户名 | 用户名 | 用户名 | 邮箱 |
| 平台数量 | 400+ | 3000+ | 数百 | 120+ |
| 输出深度 | 仅 URL | URL + 页面内容摘要 | 仅 URL | 注册状态 |
| 资源开销 | 轻量 | 较重 | 轻量(Web) | 轻量 |
| 输入类型 | 用户名 | 用户名 | 用户名 | 邮箱 |
八、合法使用声明
重要:Sherlock 仅访问公开可见的主页 URL,不爬取、不绕过隐私设置、不访问需认证的内容。使用时请遵守:
- 仅用于授权的安全研究和 OSINT 调查
- 尊重各平台的服务条款
- 禁止用于跟踪、骚扰、冒充或任何非法活动
- Bellingcat 等权威 OSINT 组织已将其纳入标准工具链
九、一句话总结
Sherlock 是一个开源 OSINT 命令行工具,通过用户名在 400+ 社交网络和平台上搜索对应账号,支持多用户名批量查询、CSV/Excel 导出、Tor 匿名查询、代理轮换,由 Python 编写、MIT 许可,是网络安全研究人员、渗透测试员、情报分析师的数字足迹追查首选工具。
GitHub 地址:https://github.com/sherlock-project/sherlock
官网:https://sherlockproject.xyz
安装命令:pipx install sherlock-project
