English | 中文
Linkook 是一款 OSINT 工具,可通过单一用户名在多个社交平台中发现相互关联的社交账户及其关联邮箱。它还支持将收集到的关联信息导出为适用于 Neo4j 的格式,以便进行可视化分析。

pipx install linkook
或使用 pip 代替 pipx
你也可以使用以下命令进行手动安装:
git clone https://github.com/JackJuly/linkook
cd linkook
Linkookpython -m linkook {username}
Linkookpython setup.py install
linkook {username}
--show-summary选择是否展示扫描结果的总结

--concise选择是否简洁显示输出内容

--check-breach使用 HudsonRock's Cybercrime Intelligence Database,查询获取到的 Email 是否受到网络犯罪和信息窃取的影响。如果发现存在信息泄漏,则在输出显示时,Email 会标识为红色,并提示 (breach detected),在 Scan Summary 也会列出所有检测到的 Emails。
...
Found Emails: notbreached@mail.com, breached@mail.com(breach detected)
Leaked Passwords:
+ breached@mail.com: password123
...
...
========================= Scan Summary =========================
...
Breached Emails: breached@mail.com(password123)
--hibp使用 Have I Been Pwned API 替代 HudsonRock's Database 进行信息泄露查询。在初次使用时,需要提供 API(要求有 HIBP 订阅),API key 将保存在本地~/.hibp.key。
--neo4j将查询结果导出为支持 neo4j 数据库导入的 JSON 格式。输出结果为neo4j_export.json
在 neo4j 中,使用APOC插件将 JSON 数据导入。以下为导入数据的Cypher代码,运行成功后会返回导入节点数和导入关系数。
CALL apoc.load.json("file:///neo4j_export.json") YIELD value
CALL {
WITH value
UNWIND value.nodes AS node
CALL apoc.create.node(
node.labels,
apoc.map.merge({ id: node.id }, node.properties)
) YIELD node AS createdNode
RETURN count(createdNode) AS nodesCreated
}
CALL {
WITH value
UNWIND value.relationships AS rel
MATCH (startNode {id: rel.startNode})
MATCH (endNode {id: rel.endNode})
CALL apoc.create.relationship(startNode, rel.type, {}, endNode) YIELD rel AS createdRel
RETURN count(createdRel) AS relsCreated
}
RETURN nodesCreated, relsCreated;
可使用MATCH (n) RETURN n查看所有结果及关联情况

--help: 显示帮助信息。
--silent: 禁用所有输出,仅显示摘要。
--scan-all: 扫描 provider.json 中全部可用站点。如果未指定,则仅扫描标有 isConnected 为 true 的站点。
--print-all: 输出用户名不存在的站点信息。
--no-color: 输出中不使用颜色。
--browse: 在默认浏览器中打开所有已发现的个人资料链接。
--debug: 启用调试级别日志并详细输出。
--output: 指定保存结果的目录。默认值为 results。
--local: 强制使用本地的 provider.json 文件,并可添加自定义路径。默认值为 provider.json。
--version & --update: 查看版本信息,直接使用pipx进行更新。
Sherlock 是一个优秀的工具,可以基于用户名查找社交媒体账号,本项目(Linkook)也受到其启发。但 Sherlock 存在一些局限性:
相比之下,Linkook 能够更进一步:
Linkook的工作方式及如何贡献,请参考CONTRIBUTING.md
$ claude mcp add linkook \
-- python -m otcore.mcp_server <graph>