别再一个个平台搜人了!GitHub 9万星开源神器:输入一个用户名,400+ 社交平台马甲原地现形
原创
浩凯信安
浩凯信安
浩凯信安
2026年10月10日 17:04
北京
在小说阅读器读本章
去阅读
在公众号小说中沉浸阅读
先说几个你大概率经历过,或者迟早会经历的场景。
一个陌生小号突然加你好友,头像光鲜、动态空白,张口就打听你的职位和收入;你在某个平台被人指着鼻子骂,对方骂完就拉黑跑路,主页什么都查不到;又或者,你多年不联系的老朋友换了个网名人间蒸发,你只记得他当年用过的那个 ID。
这时候你最自然的反应是:拿这个用户名,去微博搜一遍、去抖音搜一遍、去 GitHub 搜一遍……搜到第三个平台你就累了——全网几百个平台,一个个点开搜索框,这不是找线索,这是给搜索引擎打工。
更糟的选项也有人给你准备着:网上搜「查人」,跳出来一堆付费社工库,先充值、再查询,你付了钱不说,还把「你正在查谁」这个信息亲手交给了黑产。既当冤大头,又留案底。
在开源情报(OSINT)的世界里有一条朴素的定律:人可以换头像、换昵称、换平台,但很少有人换用户名。 用户名就是你在数字世界里的指纹——而指纹,是可以比对的。
今天要拆解的,就是干这件事的专业工具:GitHub 上的 Sherlock,一个 2018 年开源至今、当前 93,000+ star 的用户名跨平台溯源神器。给它一个用户名,它并发探活 400+ 社交网络,几秒钟内告诉你这个马甲在哪几个平台上有活人主页。
注意:本文仅介绍该工具的原理与合法用法(自查、授权调查、安全研究)。任何用于骚扰、人肉、未授权追踪的行为都踩刑事红线,文末会把边界讲清楚。
一、为什么「搜人」这件事,手动做就是大海捞针
先拆解一下问题的本质。
几乎每一个内容平台、社区、游戏,都要求你注册一个「唯一的用户名」。对平台来说这是账号体系的地基;对使用者来说,这是身份的一部分。于是产生了一个非常有意思的行为规律:
绝大多数人换平台不换名。 微博叫 nightwolf\_88,GitHub 大概率也叫 nightwolf\_88,游戏 ID、Telegram、甚至小众论坛的马甲,都会围着这个名字打转。原因很简单——名字是有记忆成本的,人天生懒得给自己起第二个名字。
这就给了 OSINT 一个教科书级的切入点:只要锁定一个用户名字符串,去所有平台问一遍「这个名字有没有人用、主页是否存在」,就能把一个人散落在全网的身份碎片拼起来。
手动做这件事为什么不行?三个硬伤:
1. 平台太多了。 主流平台几十个,加上各地区、各垂类的小平台,轻松超过 400 个,手动你查到天黑。
2. 搜索接口不统一。 有的平台有站内搜索,有的根本没有;有的搜用户名能搜到,有的必须直接拼 平台域名/用户名 访问主页才知道存不存在。
3. 判断规则不透明。 有些平台对不存在的用户返回 404,有些返回一个「用户不存在」的提示页但 HTTP 状态码还是 200,有些甚至要求登录才能看。人工判断极易漏判、误判。
这三件事,恰好是程序最擅长的:清单化、并发化、规则化。 Sherlock 做的,就是把它们写成了几百行 Python。
二、Sherlock 的原理其实很朴素:一份清单 + 敲四百次门
很多人一听「黑客溯源工具」就觉得里面有什么了不得的黑科技。拆完源码你会发现,Sherlock 的核心逻辑朴素得令人发笑,一共就三步:
第一步,维护一份站点清单。 项目里有一份 data.json,记录了 400+ 个站点的基础信息:这个平台的用户主页 URL 长什么样(比如 https://github.com/{username})、用什么方式判断账号存在(状态码?错误信息?)、属于什么分类。这份清单由社区持续维护,2026 年还在活跃更新。
第二步,并发敲门。 把你的目标用户名填进每个站点的 URL 模板,程序用异步 HTTP 请求并发访问这 400 多个地址。它不会登录任何账号,不会绕过任何权限,看的就是任何人打开浏览器都能看到的公开页面。
第三步,按规则判定。 响应回来了,按清单里预设的规则判断:返回 404 且错误信息匹配 → 没这个人;状态码和页面特征都对得上 → 命中,记下来。
跑完之后,所有命中的平台和对应主页 URL 会汇总输出到终端,并存成一个以用户名命名的文本文件(比如 user123.txt),方便你后续逐个人工核验。
项目本身的信息也交代一下,全部来自仓库实查:
1. 作者 Siddharth Dushantha,2018 年 12 月创建,MIT 协议,纯 Python 实现,当前版本 0.16.0;
2. 截至 2026 年 10 月,93,728 star、11,085 fork,是 OSINT 领域 star 数最高的项目之一;
3. 官方文档站在 sherlockproject.xyz,站点清单支持在线更新,也可以用 --local 强制使用本地清单。
顺带说一句它的一个贴心设计:{} 通配符。查 john 的时候,它会顺带把 john\_、john-、john. 这类变体也查一遍——因为很多人在不同平台注册时发现名字被占了,就会加个分隔符凑合。这个小细节能多捞回不少漏网之鱼。
三、上手实测:三条命令,电脑手机都能跑
安装方式比大多数安全工具友好得多,不强制 Kali 虚拟机,也不需要 Docker 栈。官方推荐 pipx(用 pip 或 uv 也可以):
方式一:pipx 安装(官方推荐,自动隔离依赖) pipx install sherlock-project # 方式二:Docker 一行拉起,用完即焚 docker run -it --rm sherlock/sherlock # 方式三:Fedora 用户直接包管理器 dnf install sherlock-project
社区还维护了 Debian(≥13)、Ubuntu(≥22.10)、Homebrew、Kali、BlackArch 的包。注意一个坑:ParrotOS 和 Ubuntu 24.04 的第三方维护包目前是坏的,README 里明确警告了,这两个系统的用户老老实实用 pipx 或 Docker。
查一个用户名,就一条命令:
查单个用户名 sherlock user123 # 一次查多个(空格隔开) sherlock user1 user2 user3 # 结果自动保存为 user123.txt
跑起来之后,终端会逐行滚动每个站点的探测结果,命中的会亮色标出平台名和主页直链。想全流程舒服一点,还有几个参数值得记住:
1. --csv / --xlsx:结果导出成表格,批量调查的时候比 txt 好用得多;
2. --timeout:单站等待秒数,默认 60 秒。全量扫 400+ 站点会比较慢,急用可以适当调小;
3. --proxy:走代理请求,例如 socks5://127.0.0.1:1080。一来保护你自己的出口 IP,二来部分海外站点直连不稳定;
4. --site:只查指定站点,比如只查 GitHub 和 Twitter,排查速度快一个数量级;
5. --print-all:默认只显示命中的,加上这个参数连没命中的也打印,适合核对覆盖面;
6. --browse:命中的主页直接用默认浏览器打开,人工核验不用再复制粘贴;
7. --nsfw:默认排除成人站点,不加这个参数就不会探测,结果更干净。
一个实际的使用建议:先自查,再查别人。 拿你自己的常用 ID 跑一遍,你会直观看到自己的数字足迹铺得多开——哪些十年前注册的论坛还在挂着你的旧头像、旧签名。这个冲击感,比读十篇隐私保护文章都管用。
四、坦白讲:它不是开天眼,三个局限必须知道
吹完实力,按惯例泼三盆冷水。这三条局限决定了 Sherlock 是「调查的起点」而不是「调查的终点」。
第一,撞名误报是常态。 jack、alex、tom2008 这种大众 ID,全球可能几万人在用。Sherlock 只能告诉你「这个字符串在这些平台存在」,不能告诉你「是同一个人」。命中之后必须人工核验:头像、简介、发帖时间线、互动关系,多个信号交叉确认才能下结论。
第二,假阳性躲不掉。 有些平台对任意用户名都返回 200 状态码,或者错误页特征会随改版失效。社区清单在持续修,但平台一改版,旧的判定规则就可能失灵。跑出来的结果里,个别平台「查有此人」实际是空主页,属于正常现象。
第三,它只能碰公开信息。 Sherlock 不登录、不爆破、不注入,四百次敲门敲的全是公开页面。对方如果每个平台用完全不同的用户名、且从不关联,Sherlock 就无能为力。它溯源的是「行为惯性」,不是「数据库」——那些号称能查身份证、开房记录的付费社工库,才是真正违法的东西,别碰。
另外补一个工程层面的提醒:全量扫描 400+ 站点,慢是正常的,网络环境差时建议配合 --proxy 和 --site 缩小范围,别干等。
图:三种「查人」方式对比:手动逐个搜 / 付费社工库 / Sherlock
五、红线:这把刀只能用来切菜,不能用来伤人
工具本身中立,但用法有法律边界,这一节请务必读完。
可以做的: 查自己(数字足迹自查与清理)、查已获书面授权的目标(企业背调、内部合规调查)、查公开人物在公开平台的公开信息(安全研究与新闻报道)、验证自己是否被冒名注册账号。
不能做的: 未经同意追踪、骚扰特定个人;把查询结果用于人肉搜索、网络暴力;购买或使用任何声称能查身份证、住址、开房记录的「社工库」——在我国,非法获取、出售公民个人信息,达到一定数量即可构成《刑法》第 253 条之一的侵犯公民个人信息罪,平台方和查询方都可能被追责。
一句话总结:Sherlock 的合法用法,全部围绕「公开信息 + 正当目的」。 离开这两条,工具再开源也救不了你。
写在最后
回顾一下这篇的核心逻辑:用户名是跨平台的身份指纹 → Sherlock 用一份社区维护的站点清单 + 并发公开探活,把「手动搜 400 个平台」压缩成一条命令 → 它给出的是线索而非结论,命中后必须人工交叉核验。
行动建议就一条:现在就把你的常用 ID 放进去跑一遍。看看你的数字指纹铺了多开,该注销的注销、该改名的改名、该设私密的设私密——这可能是你今年花一分钟做成的、性价比最高的隐私加固。
后台私信“找人”获取项目地址
有需要CISP 、PTS、PTE、PMP、cissp等证书可以私信,价格美丽~
需要 中转站 的朋友,可进群,进群可领取体验额度
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论