Package: crosslinked
CrossLinkedCrossLinked 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 ContentsInstallPrerequisitesNaming FormatAdvanced FormattingSearchExample UsageScreenshotsParseExample UsageScreenshotsAdditional OptionsProxy RotationCommand-Line ArgumentsContributeSponsors🚩 Consider sponsoring this project to ensure the latest improvements, have your company logo listed here, and get priority support - visitgithub.com/sponsors/m8secInstallInstall the last stable release from PyPi:pip3 install crosslinkedOr, install the most recent code from GitHub:gitclonehttps://github.com/m8sec/crosslinkedcdcrosslinked
python3setup.pyinstallPrerequisitesCrossLinked 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 theNaming FormatandExample Usagesections 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. seePyMetafor 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 at0. 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.comSearchBy default, CrossLinked will usegoogleandbingsearch 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 theParsesection below for more.Example Usagepython3crosslinked.py-f'{first}.{last}@domain.com'company_namepython3crosslinked.py-f'domain\{f}{last}'-t15-j2company_name⚠️ For best results, use the company name as it appears on LinkedIn"Target Company"not the domain name.ScreenshotsParseAccount naming convention changed after execution and now your hitting CAPTCHA requests? No Problem!CrossLinked includes anames.csvoutput file, which stores all scraping data including:name,job title, andurl. This can be ingested and parsed to reformat user accounts as needed.Example Usagepython3 crosslinked.py -f '{f}{last}@domain.com' names.csvScreenshotsAdditional OptionsProxy RotationThe latest version of CrossLinked provides proxy support to rotate source addresses. Users can input a single proxy with--proxy 127.0.0.1:8080or use multiple via--proxy-file proxies.txt.>catproxies.txt127.0.0.1:8080
socks4://111.111.111.111
socks5://222.222.222.222

>python3crosslinked.py--proxy-fileproxies.txt-f'{first}.{last}@company.com'-t10"Company"⚠️HTTP/Sproxies can be added by IP:Port notation. However, socks proxies will require asocks4://orsocks5://prefix.*Command-Line Argumentspositional 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 rotationContributeContribute 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.