Ferramenta OSINT para geração de usuários LinkedIn¶
Esta apresentação aborda o funcionamento, os requisitos e as boas práticas de uso da ferramenta linkedin2username, um utilitário de OSINT que extrai possíveis padrões de nome de usuário a partir de perfis de empresas no LinkedIn.
Como funciona¶
A ferramenta realiza um web‑scraping autenticado no LinkedIn usando o seu próprio nome de usuário e senha. Após o login, ela coleta os nomes completos dos funcionários da empresa alvo e gera diversos arquivos de texto contendo variações comuns de nomes de usuário, tais como:
first.last.txt(ex.:Joe.Schmoe)f.last.txt(ex.:J.Schmoe)flast.txt(ex.:JSchmoe)firstl.txt(ex.:JoeS)first.txt(ex.:Joe)lastf.txt(ex.:SchmoeJ)rawnames.txt(nome completo, ex.:Joe Schmoe)metadata.txt(CSV comfull_name,occupation)
É possível acrescentar um sufixo de domínio (ex.: @targetco.com) aos nomes de usuário gerados mediante a opção -n.
Pré-requisitos¶
Para executar o script é necessário:
- uv – gerenciador de pacotes usado para criar o ambiente virtual e instalar dependências.
- Python – linguagem em que o programa está escrito.
- Selenium – biblioteca que controla o navegador para a autenticação e coleta de dados.
- Um navegador compatível instalado no padrão do sistema: Chrome, Chromium ou Firefox (o Selenium localiza o binário automaticamente).
A instalação das dependências é feita com o comando:
Isso cria um virtualenv e baixa o Selenium e outras bibliotecas listadas no requirements.txt.
Uso básico¶
Após preparar o ambiente, a execução padrão é:
Onde -c targetco indica o nome da empresa exatamente como aparece na URL do perfil do LinkedIn (sem espaços ou caracteres especiais). Por padrão, a saída é gravada no diretório li2u-output.
Opções de linha de comando¶
A ferramenta oferece diversos parâmetros para ajustar o comportamento:
| Opção | Descrição |
|---|---|
-h, --help |
Mostra a mensagem de ajuda e sai. |
-c COMPANY, --company COMPANY |
Nome da empresa (obrigatório). |
-n DOMAIN, --domain DOMAIN |
Anexa um domínio aos usuários gerados (ex.: -n targetco.com). |
-d DEPTH, --depth DEPTH |
Profundidade de busca (loops de 25 resultados). Se omitido, tenta coletar todos. |
-s SLEEP, --sleep SLEEP |
Segundos de espera entre loops (padrão: 0). |
-x PROXY, --proxy PROXY |
Proxy a ser utilizado (desativa verificação SSL). |
-k KEYWORDS, --keywords KEYWORDS |
Filtra resultados por lista de palavras‑clave separadas por vírgula. |
-g, --geoblast |
Divide a busca por regiões geográficas para tentar burlar o limite de 1.000 registros. |
-o OUTPUT, --output OUTPUT |
Diretório de saída (padrão: li2u-output). |
Exemplo com domínio e pausa de 2 segundos entre requisições:
Avisos e boas práticas¶
Limite comercial e riscos de conta
O uso intensivo pode acionar o limite comercial do LinkedIn, resultando em rate limiting temporário. Em casos extremos, há possibilidade de bloqueio da conta. Utilize a ferramenta somente após revisar o código e compreender exatamente o que ela está fazendo.
Atualizações do site
O LinkedIn altera frequentemente seu frontend; o script pode parar de funcionar se a estrutura da página mudar. Relate inconsistências nas issues do repositório.
Uso ético
Esta ferramenta destina‑se a pesquisas de segurança e testes autorizados. Não a employe para coleta de dados sem permissão ou para atividades ilícitas.
Pontos-chave¶
- O linkedin2username é um scraper autenticado que gera múltiplos formatos de nome de usuário a partir de perfis de empresas no LinkedIn.
- Requer uv, Python, Selenium e um navegador (Chrome, Chromium ou Firefox) para funcionar.
- Possui opções de personalização como domínio, profundidade, sono entre requisições, proxies, filtros por palavra‑cl
Ferramentas e Tecnologias¶
- [[uv]]
- [[Python]]
- [[Selenium]]
- [[Chrome]]
- [[Chromium]]
- [[Firefox]]
Nota pessoal
https://github.com/initstring/linkedin2username