# Sherlock:一键查询用户名,溯源社交媒体账户
在网络安全、渗透测试和 OSINT(开源情报收集)领域,快速确定目标在各个平台的存在性是一项基础而重要的技能。Sherlock 是一个 Python 编写的命令行工具,能够根据用户名在 400+ 个社交媒体平台上同时检索目标账户,目前已在 GitHub 获得超过 80,000 颗星,是信息安全工具中最受欢迎的项目之一。
## 项目简介
Sherlock 由独立开发者 Siddharth Dushantha 创建,其设计目标简单明确:给定一个用户名,自动遍历已知的主流社交媒体平台,检查该用户名是否已被注册使用。项目采用 MIT 协议开源,社区活跃,持续更新支持的平台列表。
项目地址:https://github.com/sherlock-project/sherlock
开源协议:MIT
## 核心功能
### 1. 批量平台检测
Sherlock 内置了覆盖 400+ 社交平台的数据,包括主流社交网络(Facebook、Twitter/X、Instagram、LinkedIn、Reddit)、技术社区(GitHub、Stack Overflow、Medium)、论坛、博客平台、游戏平台等。一个命令即可完成全网搜索。
### 2. 多用户名同时查询
支持一次传入多个用户名,批量执行检测:
“`bash
sherlock user1 user2 user3
“`
结果会自动保存到各自的文件中(user1.txt、user2.txt、user3.txt)。
### 3. 多种输出格式
支持文本、CSV、JSON 等多种输出格式,便于后续处理和分析:
“`bash
sherlock targetuser –csv –output ./results/
sherlock targetuser –json –output results.json
“`
### 4. 代理和 Tor 支持
为高级渗透测试场景,Sherlock 支持通过代理或 Tor 网络发送请求,避免暴露真实 IP:
“`bash
sherlock targetuser –tor –unique-tor
sherlock targetuser –proxy socks5://127.0.0.1:1080
“`
### 5. 浏览器直接访问结果
使用 `–browse` 参数可以自动在默认浏览器中打开找到的账户页面,方便快速验证和进一步调查:
“`bash
sherlock targetuser –browse
“`
### 6. 站点限定
可以只检测特定平台,节省时间:
“`bash
sherlock targetuser –site github –site twitter –site instagram
“`
## 安装方法
### 方式一:pipx(推荐)
“`bash
pipx install sherlock-project
“`
### 方式二:pip
“`bash
pip install sherlock-project
“`
### 方式三:Docker
“`bash
docker run -it –rm sherlock/sherlock targetuser
“`
### 方式四:源码安装
“`bash
git clone https://github.com/sherlock-project/sherlock.git
cd sherlock
pip install -r requirements.txt
python sherlock/sherlock.py targetuser
“`
## 基础使用
### 基本查询
“`bash
sherlock johndoe
“`
输出示例:
“`
[*] Checking username johndoe on:
[+] Facebook: https://www.facebook.com/johndoe
[+] Twitter: https://twitter.com/johndoe
[+] Instagram: https://www.instagram.com/johndoe
[+] GitHub: https://github.com/johndoe
[-] LinkedIn: Not found!
[+] Reddit: https://www.reddit.com/user/johndoe
…
[*] Results saved to file: johndoe.txt
“`
### 查询并显示所有检测平台(包括未找到的)
“`bash
sherlock johndoe –print-all
“`
### 指定超时时间
“`bash
sherlock johndoe –timeout 30
“`
### 输出为 CSV 格式
“`bash
sherlock johndoe –csv –output results/
“`
## 进阶技巧
### 相似用户名变体查询
Sherlock 支持用 `{?}` 占位符自动尝试不同的用户名变体(下划线、横杠、点号替换):
“`bash
sherlock “john{?}doe”
“`
这会自动尝试 john_doe、john-doe、john.doe 等变体。
### 配合 Tor 使用
“`bash
# 启动 Tor 服务
tor &
# 通过 Tor 匿名查询
sherlock targetuser –tor –unique-tor
“`
### Python API 使用
除了命令行,Sherlock 也可以在 Python 代码中调用:
“`python
import sherlock
results = sherlock.search_usernames(“targetuser”, site_list=None)
for site, result in results.items():
if result_found:
print(f”[+] {site}: {result}”)
“`
## 适用场景
### 网络安全测试
在授权的渗透测试中,快速摸清目标在各个平台的网络足迹,是信息收集阶段的重要步骤。
### 数字取证
调查人员可通过用户名快速定位目标在多个平台的关联账户,辅助案件侦办。
### 个人品牌管理
个人可以查询自己的用户名是否被抢注,及时发现冒名账户。
### OSINT 研究
研究人员在进行公开来源情报分析时,可快速构建目标的网络身份图谱。
### 失踪人口查找
执法机构或公益组织有时会通过社交媒体账户追踪失踪人员,Sherlock 可快速扩大搜索范围。
## 注意事项
使用 Sherlock 时请注意以下几点:
仅用于合法目的,在授权的网络安全测试或经目标同意的调查中使用;部分平台可能对自动化查询有 rate limit,建议配合代理或 Tor 使用;结果仅表示用户名已被注册,不提供账户的私密信息;部分平台对自动化查询有法律或服务条款限制。
## 总结
Sherlock 以极简的使用方式实现了强大的用户名溯源功能,是网络安全从业者和 OSINT 研究者的得力工具。400+ 平台的覆盖范围和活跃的社区维护保证了其实用性。无论是专业渗透测试还是个人网络安全意识检查,Sherlock 都是一个值得收藏的命令行利器。
开源协议:MIT
项目地址:https://github.com/sherlock-project/sherlock
服务支持:如有兴趣不会搭建,可以联系微信:WRYD6166,开源项目搭建10-50元。










暂无评论内容