Product
Introducing License Enforcement in Socket
Ensure open-source compliance with Socket’s License Enforcement Beta. Set up your License Policy and secure your software!
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!
🚩 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 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
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:
{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.
: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
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.
Parse
section below for more.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.
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.
python3 crosslinked.py -f '{f}{last}@domain.com' names.csv
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 asocks4://
orsocks5://
prefix.*
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 to the project by:
FAQs
Unknown package
We found that crosslinked demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Ensure open-source compliance with Socket’s License Enforcement Beta. Set up your License Policy and secure your software!
Product
We're launching a new set of license analysis and compliance features for analyzing, managing, and complying with licenses across a range of supported languages and ecosystems.
Product
We're excited to introduce Socket Optimize, a powerful CLI command to secure open source dependencies with tested, optimized package overrides.