
Outil OSINT : Générer des listes de noms d'utilisateur pour les entreprises sur LinkedIn
Outil OSINT : Générer des listes de noms d'utilisateur à partir d'entreprises sur LinkedIn.
Il s'agit d'un pur scraper web, aucune clé API n'est nécessaire. Vous utilisez votre nom d'utilisateur et mot de passe LinkedIn valides pour vous connecter, il créera plusieurs listes de formats de noms d'utilisateur possibles pour tous les employés d'une entreprise que vous lui indiquez.
Voici ce que vous obtenez :
Optionnellement, l'outil ajoutera @domain.xxx aux noms d'utilisateur.

Ne me blâmez pas si votre compte LinkedIn est limité en débit, voire banni. C'est un outil de recherche en sécurité - utilisez-le uniquement après avoir lu le code et compris pleinement ce qu'il fait.
Je n'ai pas entendu parler de bannisements depuis la création de l'outil, mais la limitation de débit s'active occasionnellement lorsque la "limite de recherche commerciale" est atteinte. Cela a été temporaire jusqu'à présent (mesuré mensuellement).
Installez uv, puis depuis la racine du dépôt exécutez :
uv sync
Cela crée un environnement virtuel et installe toutes les dépendances automatiquement. Exécutez l'outil avec :
uv run python linkedin2username.py -c targetco
Vous aurez également besoin de Chrome, Chromium ou Firefox installés dans des chemins typiques pouvant être découverts par Selenium. Un navigateur web sera lancé temporairement pour gérer la connexion.
usage: linkedin2username.py [-h] -c COMPANY [-n DOMAIN] [-d DEPTH]
[-s SLEEP] [-x PROXY] [-k KEYWORDS] [-g] [-o OUTPUT]
Outil OSINT pour générer des listes de noms d'utilisateur probables à partir de la page LinkedIn d'une entreprise donnée.
Cet outil peut se briser lorsque LinkedIn modifie son site.
Veuillez ouvrir des issues sur GitHub pour signaler toute incohérence.
arguments optionnels :
-h, --help affiche ce message d'aide et quitte
-c COMPANY, --company COMPANY
Nom de l'entreprise exactement tel qu'il apparaît dans l'URL de la page LinkedIn de l'entreprise.
-n DOMAIN, --domain DOMAIN
Ajoute un nom de domaine à la sortie des noms d'utilisateur.
[exemple : "-n targetco.com" produirait [email protected]]
-d DEPTH, --depth DEPTH
Profondeur de recherche (nombre de boucles de 25). Si non défini, essaiera de tous les récupérer.
-s SLEEP, --sleep SLEEP
Secondes à attendre entre les boucles de recherche. Par défaut 0.
-x PROXY, --proxy PROXY
Serveur proxy à utiliser. ATTENTION : DÉSACTIVERA LA VÉRIFICATION SSL.
[exemple : "-p https://localhost:8080"]
-k KEYWORDS, --keywords KEYWORDS
Filtre les résultats par une liste de mots-clés séparés par des virgules.
Effectuera une boucle séparée pour chaque mot-clé,
contournant potentiellement la limite de 1 000 enregistrements.
[exemple : "-k 'sales,human resources,information technology']
-g, --geoblast Tente de contourner la limite de 1 000 enregistrements en exécutant
plusieurs recherches réparties par régions géographiques.
-o OUTPUT, --output OUTPUT
Répertoire de sortie, par défaut li2u-output
Vous devrez fournir à l'outil le nom de l'entreprise sur LinkedIn. Vous pouvez le trouver en regardant l'URL de la page de l'entreprise. Elle devrait ressembler à https://linkedin.com/company/targetco. Cela peut être aussi simple que le nom exact de l'entreprise ou pas.
Voici un exemple pour récupérer tous les employés de targetco :
$ python linkedin2username.py -c targetco
Voici un exemple pour récupérer une liste plus courte et leur ajouter le nom de domaine @targetco.com :
$ python linkedin2username.py -c targetco -d 5 -n 'targetco.com'
Utilisez un compte avec beaucoup de connexions, sinon vous obtiendrez des résultats médiocres. Ajouter quelques connexions dans l'entreprise cible devrait aider - cet outil fonctionnera jusqu'aux connexions de troisième degré. Notez que LinkedIn plafonne les résultats de recherche à 1000 employés maximum. Vous pouvez utiliser les fonctionnalités '--geoblast' ou '--keywords' pour contourner cette limite. Regardez l'aide ci-dessous pour plus de détails.
Lorsque LinkedIn change des choses, l'outil peut se casser. L'API utilisée ici n'est pas documentée, et il faudra peut-être bricoler un peu pour la faire fonctionner à nouveau. Veuillez ouvrir des issues si vous remarquez quelque chose d'anormal.
Vous pouvez vérifier que Selenium fonctionne sur votre machine comme ceci :
$ python3
from selenium import webdriver
driver = webdriver.Firefox() # or webdriver.Chrome()
driver.get("https://linkedin.com/login")
Vous pouvez essayer le drapeau --proxy pour inspecter le trafic avec Burp. Actuellement, il n'inspecte pas les connexions depuis le navigateur Selenium car vous pouvez voir assez clairement ce qui se passe.
Cet outil est un outil de recherche en sécurité. Utilisez-le uniquement là où une autorisation explicite du propriétaire du réseau a été obtenue.