
Herramienta de enumeración de LinkedIn para extraer nombres de empleados válidos de una organización mediante el scraping de motores de búsqueda
CrossLinked es una herramienta de enumeración de LinkedIn que utiliza el scraping de motores de búsqueda para recolectar nombres de empleados válidos de una organización. Esta técnica proporciona resultados precisos sin necesidad de usar claves de API, credenciales o acceder directamente a LinkedIn.
Instala la última versión estable desde PyPi:
pip3 install crosslinked
Instala y ejecuta el código más reciente usando Poetry:
git clone https://github.com/m8sec/crosslinked
cd crosslinked
poetry install
poetry run crosslinked -h
Instala el código más reciente desde GitHub:
git clone https://github.com/m8sec/crosslinked
cd crosslinked
pip3 install .
CrossLinked asume que ya se ha identificado la convención de nombres de cuentas de la organización. Esto es necesario para la ejecución y debe añadirse a los argumentos de CMD según el resultado esperado. Consulta las secciones Formato de nombres y Ejemplo de uso a continuación:
{first.{last} = john.smith
CMP\{first}{l} = CMP\johns
{f}{last}@company.com = [email protected]
🦖 ¿Aún atascado? Los metadatos siempre son un buen lugar para buscar información oculta, como la convención de nombres de cuentas. Consulta PyMeta para más información.
💥 Nueva función 💥
Para ser compatible con convenciones de nombres alternativas, CrossLinked permite a los usuarios controlar la posición del índice del nombre extraído del texto de búsqueda. Si el nombre no es lo suficientemente largo o se encuentran errores con la cadena de búsqueda, CrossLinked volverá a su formato predeterminado.
Nota: el array de la cadena de búsqueda comienza en 0. También se pueden usar números negativos para contar hacia atrás desde el último valor.
# Salida predeterminada
python3 crosslinked.py -f '{first}.{last}@company.com' Company
John David Smith = [email protected]
# Usar el penúltimo nombre como "last"
python3 crosslinked.py -f '{0:first}.{-2:last}@company.com' Company
John David Smith = [email protected]
Jane Doe = [email protected]
# Usar el segundo elemento del array como "last"
python3 crosslinked.py -f '{first}.{1:last}@company.com' Company
John David Smith = [email protected]
Jane Doe = [email protected]
Por defecto, CrossLinked utiliza los motores de búsqueda google y bing para identificar empleados de la organización objetivo. Tras la ejecución, aparecerán dos archivos (names.txt y names.csv) en el directorio actual, a menos que se modifique en los argumentos de CMD.
Análisis a continuación para más información.python3 crosslinked.py -f '{first}.{last}@domain.com' company_name
python3 crosslinked.py -f 'domain\{f}{last}' -t 15 -j 2 company_name
⚠️ Para obtener mejores resultados, usa el nombre de la empresa tal como aparece en LinkedIn
"Target Company", no el nombre de dominio.

¿La convención de nombres de cuentas cambió después de la ejecución y ahora te encuentras con solicitudes CAPTCHA? ¡No hay problema!
CrossLinked incluye un archivo de salida names.csv, que almacena todos los datos de scraping, incluyendo: name, job title y url. Puede ingerirse y analizarse para reformatear las cuentas de usuario según sea necesario.
python3 crosslinked.py -f '{f}{last}@domain.com' names.csv

La última versión de CrossLinked ofrece soporte de proxies para rotar direcciones de origen. Los usuarios pueden ingresar un solo proxy con --proxy 127.0.0.1:8080 o usar múltiples mediante --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"
⚠️ Los proxies
HTTP/Sse pueden añadir mediante notación IP:Puerto. Sin embargo, los proxies SOCKS requerirán un prefijosocks4://osocks5://.
argumentos posicionales:
company_name Nombre de la empresa objetivo
argumentos opcionales:
-h, --help Muestra este mensaje de ayuda y sale
-t TIMEOUT Tiempo máximo de espera por búsqueda (Por defecto=15)
-j JITTER Variación entre solicitudes (Por defecto=1)
Argumentos de búsqueda:
--search ENGINE Motor de búsqueda (Por defecto='google,bing')
Argumentos de salida:
-f NFORMAT Formato de nombres, ej: 'domain\{f}{last}', '{first}.{last}@domain.com'
-o OUTFILE Cambia el nombre del archivo de salida (omitir_extensión)
Argumentos de proxy:
--proxy PROXY Solicitudes proxy (IP:Puerto)
--proxy-file PROXY Carga proxies desde un archivo para rotación
Contribuye al proyecto: