本文档提供了安装和使用 Sherlock 的详细说明,Sherlock 是一款用于通过用户名在社交网络上查找社交媒体账户的工具。有关底层架构和 Sherlock 内部工作原理的信息,请参阅核心架构。
Sherlock 可以通过多种方法安装,方便不同平台和偏好的用户使用。
安装 Sherlock 的推荐方法是使用 Python 的包管理器
pipx install sherlock-project
或者,您可以使用 pip
pip install sherlock-project
Sherlock 可以作为 Docker 容器运行
docker run -it --rm sherlock/sherlock
官方软件包
dnf install sherlock-project
社区维护的软件包适用于
注意:ParrotOS 和 Ubuntu 24.04 的第三方维护软件包似乎已损坏。这些系统的用户应改用 pipx/pip 或 Docker。
Sherlock 的主要功能是检查某个用户名是否存在于多个社交网络中。
搜索单个用户名
sherlock user123
结果将存储在以用户名命名的文本文件中(例如,user123.txt)。
搜索多个用户名
sherlock user1 user2 user3
每个用户名的结果将存储在单独的文本文件中。
Sherlock 提供了许多命令行选项来自定义其行为。这些选项按功能类别组织
以下是所有可用命令行选项的完整表格
| 选项 | 描述 |
|---|---|
用户名 | 要在社交网络中检查的一个或多个用户名 |
--version | 显示版本信息和依赖项 |
--verbose, -v, -d, --debug | 显示额外的调试信息和指标 |
--folderoutput FOLDER, -fo FOLDER | 如果使用多个用户名,将结果保存到此文件夹 |
--output FILE, -o FILE | 如果使用单个用户名,将结果保存到此文件 |
--tor, -t | 通过 Tor 网络发出请求(需要安装 Tor) |
--unique-tor, -u | 每次请求使用新的 Tor 电路(增加运行时长) |
--csv | 创建逗号分隔值 (CSV) 文件 |
--xlsx | 创建 Excel (XLSX) 电子表格文件 |
--site SITE_NAME | 将分析限制在指定的站点(可多次使用) |
--proxy PROXY_URL, -p PROXY_URL | 通过代理发出请求(例如,socks5://127.0.0.1:1080) |
--json JSON_FILE, -j JSON_FILE | 从 JSON 文件或有效的在线 JSON 文件加载数据 |
--timeout TIMEOUT | 等待响应的秒数(默认:60) |
--print-all | 输出未找到用户名的站点 |
--print-found | 仅输出找到用户名的站点 |
--no-color | 不对终端输出着色 |
--browse, -b | 在默认浏览器中打开找到的账户 |
--local, -l | 强制使用本地的 data.json 文件 |
--nsfw | 包含检查默认列表中的 NSFW 站点 |
Sherlock 支持使用 {?} 模式检查相似用户名,该模式会被替换为 _、- 和 .。
sherlock user{?}name
这将检查 user_name、user-name 和 user.name。
Sherlock 可以通过代理路由请求
sherlock --proxy socks5://127.0.0.1:1080 username
对于匿名搜索,Sherlock 可以通过 Tor 网络路由请求
sherlock --tor username
为了最大限度的匿名性(每次请求使用新电路)
sherlock --unique-tor username
注意:使用 Tor 要求您的系统已安装并运行 Tor 服务。
仅搜索特定站点
sherlock --site twitter --site instagram username
在搜索中包含 NSFW 站点
sherlock --nsfw username
Sherlock 支持多种输出格式
--csv--xlsx组合格式示例
sherlock --csv --xlsx username
直接在浏览器中打开找到的账户
sherlock --browse username
您可以使用包含站点定义的自定义 JSON 文件
sherlock --json custom_sites.json username
或者,强制使用本地的 data.json 文件
sherlock --local username
| 问题 | 解决方案 |
|---|---|
| 限流 | 使用 --timeout 来增加等待时间 |
| IP 封锁 | 使用 --tor 或 --unique-tor 轮换 IP 地址 |
| 误报/漏报 | 使用 --verbose 查看详细的请求/响应信息 |
| 依赖错误 | 确保所有要求都已安装,或使用 Docker |
| 安装问题 | 对于 Ubuntu 24.04 和 ParrotOS,请使用 pipx/pip 或 Docker |
如果您的输出文件遇到问题,请检查
.gitignore 模式忽略sherlock username
这将在所有支持的网络中搜索“username”,并将结果保存到“username.txt”。
sherlock --csv --xlsx --folderoutput ./investigation user1 user2 user3
这将搜索多个用户名,并将结果以多种格式保存到“investigation”文件夹中。
sherlock --unique-tor --timeout 120 sensitive_username
这将通过 Tor 执行搜索,每次请求使用新的电路并延长超时时间。
sherlock --site twitter --site instagram --site github --print-found username
这仅搜索 Twitter、Instagram 和 GitHub,并且只显示找到的账户。