Sherlock
在 400 多个社交网络上进行 OSINT(开源情报)用户名搜索。通过用户名追查社交媒体账户。
技能元数据
| 来源 | 可选 — 使用 hermes skills install official/security/sherlock 安装 |
| 路径 | optional-skills/security/sherlock |
| 版本 | 1.0.0 |
| 作者 | unmodeled-tyler |
| 许可证 | MIT |
| 标签 | osint, security, username, social-media, reconnaissance |
参考:完整 SKILL.md
以下是 Hermes 在触发此技能时加载的完整技能定义。这是技能激活时代理所看到的指令。
Sherlock OSINT 用户名搜索
使用 Sherlock Project 在 400 多个社交网络上通过用户名追查社交媒体账户。
何时使用
- 用户要求查找与用户名关联的账户
- 用户希望检查用户名在各平台上的可用性
- 用户正在进行 OSINT 或侦察研究
- 用户询问“此用户名在哪里注册?”或类似问题
要求
- 已安装 Sherlock CLI:
pipx install sherlock-project或pip install sherlock-project - 或者:可用 Docker(
docker run -it --rm sherlock/sherlock) - 能够访问网络以查询社交平台
流程
1. 检查是否已安装 Sherlock
在执行任何其他操作之前,验证 sherlock 是否可用:
sherlock --version
如果命令失败:
- 提供安装选项:
pipx install sherlock-project(推荐)或pip install sherlock-project - 不要尝试多种安装方法 — 选择一种并继续
- 如果安装失败,通知用户并停止
2. 提取用户名
如果用户的消息中明确陈述,直接从中提取用户名。
以下情况不应使用 clarify(澄清):
- “查找 nasa 的账户” → 用户名为
nasa - “搜索 johndoe123” → 用户名为
johndoe123 - “检查 alice 是否存在于社交媒体上” → 用户名为
alice - “在社交网络上查找用户 bob” → 用户名为
bob
仅在以下情况使用 clarify:
- 提到多个潜在用户名(“搜索 alice 或 bob”)
- 措辞含糊(“搜索我的用户名”但未具体说明)
- 完全未提及用户名(“进行 OSINT 搜索”)
提取时,采用确切的用户名 — 保留大小写、数字、下划线等。
3. 构建命令
默认命令(除非用户特别要求,否则使用此命令):
sherlock --print-found --no-color "<username>" --timeout 90
可选标志(仅在用户明确要求时添加):
--nsfw— 包含 NSFW(成人内容)网站(仅在用户要求时)--tor— 通过 Tor 路由(仅在用户要求匿名时)
不要通过 clarify 询问选项 — 直接运行默认搜索。如果需要,用户可以请求特定选项。
4. 执行搜索
通过 terminal 工具运行。根据网络状况和网站数量,命令通常需要 30-120 秒。
终端调用示例:
{
"command": "sherlock --print-found --no-color \"target_username\"",
"timeout": 180
}
5. 解析并呈现结果
Sherlock 以简单格式输出找到的账户。解析输出并呈现:
- 摘要行: “找到用户名 'Y' 的 X 个账户”
- 分类链接: 如果有帮助,按平台类型分组(社交、专业、论坛等)
- 输出文件位置: Sherlock 默认将结果保存到
<username>.txt
输出解析示例:
[+] Instagram: https://instagram.com/username
[+] Twitter: https://twitter.com/username
[+] GitHub: https://github.com/username
尽可能将发现呈现为可点击的链接。
常见陷阱
未找到结果
如果 Sherlock 未找到任何账户,这通常是正确的 — 该用户名可能未在检查的平台上注册。建议:
- 检查拼写/变体
- 使用
?通配符尝试类似的用户名:sherlock "user?name" - 用户可能设置了隐私权限或账户已删除
超时问题
某些网站响应缓慢或阻止自动请求。使用 --timeout 120 增加等待时间,或使用 --site 限制范围。
Tor 配置
--tor 需要运行 Tor 守护进程。如果用户希望匿名但 Tor 不可用,建议:
- 安装 Tor 服务
- 使用
--proxy配合替代代理
误报
由于某些网站的响应结构,它们总是返回“找到”。将意外结果与手动检查进行交叉验证。
速率限制
激进的搜索可能会触发速率限制。对于批量用户名搜索,在调用之间添加延迟,或使用 --local 配合缓存数据。
安装
pipx(推荐)
pipx install sherlock-project
pip
pip install sherlock-project
Docker
docker pull sherlock/sherlock
docker run -it --rm sherlock/sherlock <username>
Linux 软件包
适用于 Debian 13+、Ubuntu 22.10+、Homebrew、Kali、BlackArch。
道德使用
此工具仅用于合法的 OSINT 和研究目的。提醒用户:
- 仅搜索他们拥有或有权调查的用户名
- 遵守平台服务条款
- 不得用于骚扰、跟踪或非法活动
- 在分享结果前考虑隐私影响
验证
运行 sherlock 后,验证:
- 输出列出了找到的站点及其 URL
- 如果使用文件输出,则创建了
<username>.txt文件(默认输出) - 如果使用了
--print-found,输出应仅包含匹配项的[+]行
示例交互
用户: “你能检查用户名 'johndoe123' 是否存在于社交媒体上吗?”
Agent 过程:
- 检查
sherlock --version(验证是否已安装) - 已提供用户名 — 直接继续
- 运行:
sherlock --print-found --no-color "johndoe123" --timeout 90 - 解析输出并展示链接
响应格式:
找到用户名 'johndoe123' 的 12 个账户:
• https://twitter.com/johndoe123 • https://github.com/johndoe123 • https://instagram.com/johndoe123 • [... 其他链接]
结果已保存至:johndoe123.txt
用户: “搜索用户名 'alice',包括 NSFW 站点”
Agent 过程:
- 检查 sherlock 是否已安装
- 已提供用户名和 NSFW 标志
- 运行:
sherlock --print-found --no-color --nsfw "alice" --timeout 90 - 展示结果