Skip to main content

CrossLinked

     

CrossLinked is a LinkedIn enumeration tool that uses search engine scraping to collect valid employee names from an organization. This technique provides accurate results without the use of API keys, credentials, or accessing LinkedIn directly!

Table of Contents

Sponsors

🚩 Consider sponsoring this project to ensure the latest improvements, have your company logo listed here, and get priority support - visit github.com/sponsors/m8sec

Install

Install the last stable release from PyPi:

pip3 install crosslinked

Or, install the most recent code from GitHub:

git clone https://github.com/m8sec/crosslinked
cd crosslinked
python3 setup.py install

Prerequisites

CrossLinked assumes the organization's account naming convention has already been identified. This is required for execution and should be added to the CMD args based on your expected output. See the Naming Format and Example Usage sections below:

Naming Format

{first.{last}           = john.smith
CMP\{first}{l}          = CMP\johns
{f}{last}@company.com   = jsmith@company.com

🦖 Still Stuck? Metadata is always a good place to check for hidden information such as account naming convention. see PyMeta for more.


Advanced Formatting

:boom: New Feature :boom:

To be compatible with alternate naming conventions CrossLinked allows users to control the index position of the name extracted from search text. Should the name not be long enough, or errors encountered with the search string, CrossLinked will revert back to its default format.

Note: the search string array starts at 0. Negative numbers can also be used to count backwards from the last value.

# Default output
crosslinked -f '{first}.{last}@company.com' Company
John David Smith = john.smith@company.com

# Use the second-to-last name as "last"
crosslinked -f '{0:first}.{-2:last}@company.com' Company
John David Smith    = john.david@company.com
Jane Doe            = jane.doe@company.com

# Use the second item in the array as "last"
crosslinked -f '{first}.{1:last}@company.com' Company
John David Smith    = john.david@company.com
Jane Doe            = jane.doe@company.com

Search

By default, CrossLinked will use google and bing search engines to identify employees of the target organization. After execution, two files (names.txt & names.csv) will appear in the current directory, unless modified in the CMD args.

  • names.txt - List of unique user accounts in the specified format.
  • names.csv - Raw search data. See the Parse section below for more.

Example Usage

python3 crosslinked.py -f '{first}.{last}@domain.com' company_name
python3 crosslinked.py -f 'domain\{f}{last}' -t 15 -j 2 company_name

⚠️ For best results, use the company name as it appears on LinkedIn "Target Company" not the domain name.

Screenshots

Parse

Account naming convention changed after execution and now your hitting CAPTCHA requests? No Problem!

CrossLinked includes a names.csv output file, which stores all scraping data including: name, job title, and url. This can be ingested and parsed to reformat user accounts as needed.

Example Usage

python3 crosslinked.py -f '{f}{last}@domain.com' names.csv

Screenshots

Additional Options

Proxy Rotation

The latest version of CrossLinked provides proxy support to rotate source addresses. Users can input a single proxy with --proxy 127.0.0.1:8080 or use multiple via --proxy-file proxies.txt.

> cat proxies.txt
127.0.0.1:8080
socks4://111.111.111.111
socks5://222.222.222.222

> python3 crosslinked.py --proxy-file proxies.txt -f '{first}.{last}@company.com' -t 10 "Company"

⚠️ HTTP/S proxies can be added by IP:Port notation. However, socks proxies will require a socks4:// or socks5:// prefix.*

Command-Line Arguments

positional arguments:
  company_name        Target company name

optional arguments:
  -h, --help          show help message and exit
  -t TIMEOUT          Max timeout per search (Default=15)
  -j JITTER           Jitter between requests (Default=1)

Search arguments:
  --search ENGINE     Search Engine (Default='google,bing')

Output arguments:
  -f NFORMAT          Format names, ex: 'domain\{f}{last}', '{first}.{last}@domain.com'
  -o OUTFILE          Change name of output file (omit_extension)

Proxy arguments:
  --proxy PROXY       Proxy requests (IP:Port)
  --proxy-file PROXY  Load proxies from file for rotation

Contribute

Contribute to the project by:

  • Like and share the tool!
  • Create an issue to report any problems or, better yet, initiate a PR.
  • Reach out with any potential features or improvements @m8sec.

Metadata

Release files for crosslinked 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for crosslinked 0.3.0
File Size Uploaded
crosslinked-0.3.0.tar.gz 22.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for crosslinked 0.3.0
File Interpreter ABI Platform
crosslinked-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 44.9 kB

Release files / crosslinked-0.3.0.tar.gz

Download URL crosslinked-0.3.0.tar.gz
Size 22.9 kB
Tags Source
SHA-256 checksum
How to use checksums
03fe00c15f6fa61967e7ea7caec0557fb8911bca7cb95647c2198b1c535690a4
BLAKE2b-256 checksum
How to use checksums
5ddd3204a9e096d8302b1ea6f5ed22ca5240f111177b03ca4c76b36e4de0f0ed
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.4

Release files / crosslinked-0.3.0-py3-none-any.whl

Download URL crosslinked-0.3.0-py3-none-any.whl
Size 22.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6dd7ce1f19b4290a2ab65678dcdff8d4bc826362f9cc058e422d64b1dabee7d5
BLAKE2b-256 checksum
How to use checksums
ca8ca67b28f811e7d2eff244a8b378da2a238589a0f3a5952bd7f9e4f8a22a33
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.4

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files

0.2.1

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page