Skip to main content

A tool for scanning and enumerating linked social accounts.

Project description

Linkook

English | 中文

Linkook is an OSINT tool for discovering linked/connected social accounts and associated emails across multiple platforms using a single username. It also supports exporting the gathered relationships in a Neo4j-friendly format for visual analysis.

Screenshot

Main Features

  • Search social media accounts across multiple platforms based on a given username.
  • Further retrieve interlinked social accounts, usernames, emails, and more.
  • Use HudsonRock's Cybercrime Intelligence Database to check if related emails have been affected by cybercrime or info-stealer infections.
  • Support exporting scan results to a Neo4j-friendly JSON format, enabling visual analysis in Neo4j.

Installation

pipx install linkook

or use pip instead of pipx

Install manually

You can also use the following commands to install it manually.

  1. Download this repo
git clone https://github.com/JackJuly/linkook
cd linkook
  1. You can run Linkook directly
python -m linkook {username}
  1. Or you can install Linkook
python setup.py install

Run Linkook

linkook {username}

Usage

--show-summary

Choose whether to display a summary of the scan results.

Screenshot

--concise

Choose whether to display the output in a concise format.

Screenshot

--check-breach

Use HudsonRock's Cybercrime Intelligence Database to check whether the discovered email addresses have been compromised by cybercrime or info-stealing. If any data breach is found, the email address will be highlighted in red with '(breach detected)' in the output, and all detected emails will be listed in the Scan Summary.

...
Found Emails: notbreached@mail.com, breached@mail.com(breach detected)
...
...
========================= Scan Summary =========================
...
Breached Emails: breached@mail.com

--neo4j

Export the query results as a JSON file compatible with Neo4j database imports, producing neo4j_export.json.

In Neo4j, use the APOC plugin to import the JSON data. The following Cypher code will import the data and, upon successful execution, return the counts of imported nodes and relationships.

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;

You can use MATCH (n) RETURN n to view all results and their connections.

Screenshot

Other Options

--help: show help message.

--silent: Suppress all output and only show summary.

--scan-all: Scan all available sites in the provider.json file. If not set, only scan sites with isConnected set to true.

--print-all: Output sites where the username was not found.

--no-color: Output without color.

--browse: Browse to all found profiles in the default browser.

--debug: Enable verbose logging for debugging.

--output: Directory to save the results. Default is results.

--local: Force the use of the local provider.json file, add a custom path if needed. Default is provider.json.

Comparison with Sherlock

Sherlock is a great tool that finds social media accounts based on usernames, and this project (Linkook) was partly inspired by it. But Sherlock has some limitations.

  • Only searches for the same username on each platform.
  • May miss accounts if a user uses different usernames across platforms.
  • Can mistakenly include accounts from unrelated users if they share the searched username.

In contrast, Linkook can go one step further:

  • Recursively searches for linked accounts from each discovered social account—even if different usernames are used.
  • Provides a more comprehensive view of the user’s online presence like email infos.
  • Supports exporting scan results into a Neo4j-friendly JSON format for visualization, making it easier to analyze associations between usernames, accounts, and emails to filter out unconnected accounts.

Contributing

For details on how Linkook works and how to contribute, please refer to CONTRIBUTING.md for more details.

Support

BuyMeACoffee

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

linkook-1.1.0.tar.gz (27.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

linkook-1.1.0-py3-none-any.whl (28.8 kB view details)

Uploaded Python 3

File details

Details for the file linkook-1.1.0.tar.gz.

File metadata

  • Download URL: linkook-1.1.0.tar.gz
  • Upload date:
  • Size: 27.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.1

File hashes

Hashes for linkook-1.1.0.tar.gz
Algorithm Hash digest
SHA256 67fd139b327ec16131feabeb5fd7a4ab623729cce49e1e908a684da1b27a601c
MD5 915e8db4603e9d73a94716af22f78a00
BLAKE2b-256 ea9467b78ed72d8d53659c63fd7e350218deccb8fe101ebc0e84c18ad064cfa7

See more details on using hashes here.

File details

Details for the file linkook-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: linkook-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 28.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.1

File hashes

Hashes for linkook-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f8b5333479d89d6bc80f08a896190cda993900cabe20600ba8354027023cc4c7
MD5 0f1f3cf79408ba2656ed0eed501c7850
BLAKE2b-256 8c23690520ffe2c3ead5ac4c96b0393cf0d79335a013d69459c949f4dff91d40

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page