stamatios
← Voltar ao feed
Entrevista de emprego Python escondia malware em projeto para candidato
Dev & Engenharia · Trabalho & Gestão

Entrevista de emprego Python escondia malware em projeto para candidato

resumo de ~3 min

O golpe

Um engenheiro de software indiano (Appaji C.) recebeu uma abordagem via LinkedIn para uma vaga remota de desenvolvedor Python, com salário entre US$ 10.000 e US$ 15.000 mensais. O suposto recrutador enviou um take-home assignment via Google Drive contendo um arquivo zip e um PDF com instruções aparentemente legítimas sobre melhorias de arquitetura e operações Git.

A descoberta

O projeto zipado era um backend FastAPI com SQLAlchemy - código limpo e sem pacotes suspeitos no requirements.txt. Porém, ao rodar tree -a (hábito de quem faz CTFs), o autor encontrou uma pasta .git/hooks repleta de hooks pré-configurados. O hook pre-commit continha um script que detectava o sistema operacional da vítima (macOS, Linux ou Windows) e baixava/executava silenciosamente um payload remoto a partir de um IP bruto (45.61.164.38:5777).

A cadeia de infecção

  1. Estágio 1 (pre-commit hook): baixa um script do servidor remoto com um parâmetro id único por candidato.
  2. Estágio 2 (tokenlinux.sh): instala Node.js silenciosamente, baixa um parser.js e um package.json, instala dependências e executa o parser em background via nohup.
  3. Estágio 3 (parser.js): código fortemente ofuscado. O package.json revelava dependências como clipboardy (acesso à área de transferência), hardhat (ambiente de desenvolvimento Ethereum), axios, basic-ftp e jsonwebtoken - indicando provável roubo de carteiras cripto ou interação com extensões de navegador.

O parâmetro id servia para rastrear cada vítima individualmente e servir payloads personalizados.

Variantes do ataque

Outras vítimas relataram variações: uma delas recebeu um zip com uma pasta .vscode contendo comandos configurados para executar automaticamente ao abrir o diretório no VSCode - sem necessidade de rodar nenhum comando Git.

Origem do projeto

O repositório era um clone de um projeto público de FastAPI no GitHub (personal-finance-service), com os hooks maliciosos adicionados por cima. A empresa citada (Zavopay, supostamente uma startup Y Combinator) não tinha relação com o golpe.

Desfecho

O autor tentou escanear a infraestrutura dos atacantes com Nmap: encontrou três portas abertas, incluindo SSH com OpenSSH 9.6p1 (versão recente, sem CVEs conhecidos). O "recrutador" deletou a conta no LinkedIn logo após ser confrontado. O autor destaca que o PDF de instruções incluía tarefas de Git justamente para garantir que o candidato executasse ao menos um comando que disparasse os hooks.