Procurava emprego e instalou um trojan: como o recrutamento web3 falso rouba carteiras de criptomoedas

Procurava emprego e instalou um trojan: como o recrutamento web3 falso rouba carteiras de criptomoedas

Sob o disfarce de uma plataforma de IA para reuniões on-line, os criminosos distribuem malware capaz de acessar chaves, senhas, sessões de navegador e dados de carteiras de criptomoedas. Analisamos todo o cenário do ataque, desde a primeira mensagem do recrutador até o envio das informações roubadas para servidores remotos.

5 de ago. de 2026

Recentemente, pesquisadores de segurança da informação descobriram uma nova campanha de distribuição de malware voltada para funcionários de empresas Web3. Os criminosos se passam por recrutadores, entram em contato com os candidatos sob o pretexto de organizar uma entrevista e depois propõem continuar a conversa por meio do site relay.lc.

Uma mensagem no Telegram do recrutador falso
Uma mensagem no Telegram do recrutador falso

À primeira vista, o recurso parece bastante convincente. Ele se apresenta como uma plataforma moderna para reuniões on-line com uso de inteligência artificial. O site anuncia recursos como a transcrição automática das conversas em tempo real, notas colaborativas, resumos de IA dos resultados das reuniões, listas de tarefas e aplicativos de desktop para Windows e macOS.

O site relay.lc
O site relay.lc

Para quem está passando por uma entrevista remota, esse cenário parece completamente comum. O pedido para instalar um aplicativo especial antes da próxima etapa da entrevista não desperta suspeitas. Além disso, as páginas do site reforçam ainda mais a confiança: descrevem em detalhes os recursos do serviço e oferecem downloads do programa tanto para Windows quanto para macOS.

O que acontece após a instalação

Nos computadores Mac, pede-se ao usuário que abra o aplicativo Terminal, arraste o arquivo baixado para sua janela e pressione Enter.

No Windows tudo parece ainda mais simples: basta executar o instalador e aguardar a conclusão do processo. Na tela aparece uma janela com uma barra de progresso de atualização que se preenche lentamente até cerca de 80%.

À primeira vista, uma opção lembra uma instalação manual comum, e a outra, uma atualização de software padrão. No entanto, ao examinar o conteúdo dos instaladores, descobre-se que tudo está organizado de maneira bem diferente.

Infecção do macOS: instalação pelo Terminal

Não há um aplicativo real dentro da imagem de disco. O arquivo Relay.dmg é uma imagem de disco comum do macOS. Em geral, os programas legítimos para esse sistema operacional são distribuídos como um pacote .app, que o usuário simplesmente arrasta para a pasta Aplicativos.

Não há dentro dela nem um aplicativo .app padrão nem um pacote instalador .pkg. Além disso, o verdadeiro executável está escondido no diretório .back, que o Finder não exibe por padrão.

Arrastar para o Terminal não é uma instalação

Os autores até deixaram comentários, explicando que abriram mão do procedimento oficial de assinatura digital e notarização da Apple pelo desejo de «reduzir a complexidade» e «tornar o processo mais simples e transparente». Na verdade, é justamente aqui que se esconde o ponto-chave do ataque.

Como os criminosos contornam a proteção integrada do macOS

O comando usado pelos criminosos remove esse atributo de quarentena. Nesse processo, nenhuma vulnerabilidade do macOS é explorada. O próprio usuário abre o Terminal e executa o script proposto, que por conta própria retira a marca de proteção do arquivo malicioso.

Como resultado, o que parece uma instalação manual comum se transforma, na prática, na desativação de um dos mecanismos de segurança integrados do sistema operacional.

Roubo de senhas e dados do Keychain

Dentro do executável oculto, muitas strings que contêm dados sensíveis estão criptografadas com uma chave fixa. Graças a isso, elas não podem ser encontradas por uma busca comum entre as strings de texto do programa.

Uma vez descriptografadas, fica claro que o programa contém dois endereços remotos:

Também é encontrado um script AppleScript que imita uma janela de sistema do macOS:

«A versão atual do aplicativo não é totalmente compatível com a sua versão do macOS. Para que o programa funcione corretamente, insira a senha do seu sistema.»

A janela tem o título Application Error e parece um alerta de sistema autêntico. O campo de entrada mascara os caracteres digitados com pontos, de modo que o usuário pode facilmente confundi-la com uma solicitação padrão do macOS de senha de administrador.

No entanto, essa janela não tem nada a ver com a autenticação do sistema. É um diálogo AppleScript comum, criado com o único objetivo de capturar a senha do usuário. Depois de inserida, a senha é armazenada pelo programa sob o rótulo PWD e preparada para posterior envio pela Internet.

Roubo do chaveiro Keychain

A coleta de dados não termina aí. O malware contém código que permite ler o arquivo:

Depois de descriptografar o código, fica claro que os criminosos estão interessados em dois objetos ao mesmo tempo:

Tendo obtido o arquivo Keychain e a senha correspondente, eles podem tentar abrir esse banco de dados no próprio computador e acessar todas as credenciais nele armazenadas.

Telegram, Apple Notes e dados do sistema em risco

Além dos dados dos navegadores, o programa contém código para roubar informações do Telegram Desktop. Ele tenta acessar o diretório tdata, onde o Telegram armazena os dados locais de autorização e da sessão de usuário ativa.

Se os criminosos conseguirem copiar esse diretório, poderão restaurar a sessão existente do Telegram em outro computador e acessar a conta sem precisar inserir novamente o número de telefone ou o código de confirmação.

Não menos interessante é o módulo destinado a coletar dados do Apple Notes. O programa percorre sequencialmente todas as contas, pastas e notas do usuário, lê o conteúdo de cada registro e o salva em um arquivo HTML separado, usando o título da nota como nome do arquivo.

Além disso, é feita uma verificação da presença de aplicativos populares para trabalhar com carteiras de criptomoedas em hardware: Ledger Live e Trezor Suite.

Por que o trojan continua funcionando após o fechamento do Terminal

Durante a pesquisa, os especialistas também verificaram se havia mecanismos que permitissem ao malware iniciar automaticamente após cada reinicialização do computador.

Segundo os dados disponíveis, não foram encontrados indícios de um mecanismo que garantisse o início automático após uma reinicialização do macOS. Ainda assim, o comando nohup usado na inicialização permite que o processo malicioso continue funcionando mesmo após o fechamento da janela do Terminal.

Em outras palavras, o usuário pode achar que a instalação foi concluída e que o programa pode ser fechado, enquanto o processo malicioso continua sendo executado em segundo plano até concluir suas tarefas.

A julgar pela estrutura do programa, seu principal objetivo é coletar, em uma única execução, a maior quantidade possível de dados, empacotá-los e enviá-los a um servidor remoto.

Ao contrário da versão para macOS, a variante para Windows usa vários mecanismos de persistência ao mesmo tempo, criando entradas nas seções Run e RunOnce do registro do Windows e colocando-se na pasta de inicialização ainda antes do início do roubo principal de dados.

Infecção do Windows: uma tela de atualização falsa

O usuário vê uma «atualização» que na verdade não existe. A versão do programa para Windows é um executável autoextraível criado com o instalador NSIS.

Após a extração, dentro dele há um aplicativo desenvolvido com base no Electron versão 2.9.0. É ele que exibe ao usuário uma interface com o logotipo da Relay e uma barra de progresso em constante movimento. Durante a «atualização», na tela aparecem sucessivamente as mensagens:

Tudo isso cria a impressão de que uma atualização do programa realmente está acontecendo. No entanto, a análise do código revelou um quadro completamente diferente. A barra de progresso não tem relação alguma nem com o download de arquivos, nem com a verificação do sistema, nem com a instalação do aplicativo.

Seu valor começa em 4% e depois, a cada 1.4 segundo, aumenta em um número aleatório de 0 a 11. As mensagens também mudam automaticamente, dependendo exclusivamente do valor da barra de progresso, e não refletem de forma alguma as ações reais do programa.

Quando o indicador atinge 80%, o processo para de repente. Mas, em vez de concluir a instalação, o aplicativo envia uma mensagem interna chamada runUpdate. É logo depois disso que começa a etapa seguinte do ataque.

O vírus tenta obter privilégios de administrador

Quando o indicador de carregamento atinge a marca de 80%, o aplicativo envia o comando interno runUpdate.

Durante a análise do código, foi descoberto um módulo que recebe esse comando. Junto com ele, os especialistas encontraram o caminho para o arquivo updater.exe e um comando do PowerShell destinado a executá-lo:

Esse comando faz várias coisas ao mesmo tempo. Em primeiro lugar, ele desativa a política de segurança padrão do PowerShell, permitindo executar o programa sem restrições adicionais. Em seguida, solicita a elevação de privilégios por meio do mecanismo de Controle de Conta de Usuário do Windows (UAC). Depois disso, executa o processo em modo oculto para que o usuário não veja nenhuma janela adicional.

O próprio arquivo updater.exe tem cerca de 116 MB de tamanho e não contém nenhuma assinatura digital que confirme sua origem. Além do mais, em sua configuração está indicado explicitamente que ele precisa de privilégios de administrador para funcionar.

A pesquisa mostrou que dentro desse arquivo há módulos destinados a coletar informações dos navegadores, do Telegram, de carteiras de criptomoedas de desktop e do próprio sistema operacional.

Além disso, o programa inclui mais um executável integrado. Sua tarefa é bem mais restrita: garantir a persistência do malware no sistema após a reinicialização do computador e analisar a memória dos processos dos navegadores Chrome e Brave.

Como o trojan se fixa no sistema

O módulo integrado tem o nome interno callsoul. Após ser iniciado, a primeira coisa que ele faz é tentar garantir seu início automático após cada reinicialização do Windows.

Para isso, o programa se copia para o diretório:

Após a cópia, ao arquivo são atribuídos os atributos oculto e de sistema, de modo que, no Explorador de Arquivos padrão do Windows, o usuário não o verá sem ativar a exibição de arquivos ocultos.

Em seguida, o programa tenta se registrar de várias formas independentes ao mesmo tempo. Ele cria entradas na seção Run do registro do sistema, depois faz o mesmo na seção RunOnce e também adiciona um atalho à pasta de inicialização do Windows.

Para isso são usados nomes totalmente inofensivos, WindowsSysUpdateCheck e Windows Update, para que as entradas pareçam componentes do próprio sistema operacional e não despertem suspeitas.

O programa não se limita a um único método de persistência. Ele usa os três de forma consecutiva. Basta que ao menos um deles funcione para que o malware consiga iniciar automaticamente após cada reinicialização do computador. Somente depois de encerrar suas tentativas de se fixar no sistema, o programa passa para a etapa seguinte: a análise da memória dos processos dos navegadores.

Análise da memória dos navegadores Chrome e Brave

A característica mais incomum da versão para Windows é que ela não se limita a roubar os arquivos de perfil dos navegadores, como faz a maioria dos malwares desse tipo.

Em vez disso, ela tenta acessar diretamente a memória dos processos em execução do Chrome e do Brave. Primeiro, o programa percorre todos os processos ativos do Windows e procura aqueles que pertencem ao Chrome ou ao Brave e que, além disso, são responsáveis pelo funcionamento das extensões do navegador.

Após encontrar o processo necessário, ele o abre com privilégios que permitem ler o conteúdo da memória. Depois, examina sequencialmente as regiões de memória alocadas, extraindo todos os dados disponíveis.

As informações obtidas são analisadas em busca da string syncPasswordAndUnlockWallet, o nome interno de um método relacionado ao desbloqueio de carteiras de criptomoedas que funcionam como extensões do navegador.

Se essa string for encontrada, o programa tenta extrair os parâmetros próximos contidos em uma estrutura JSON. São justamente esses valores que depois são preparados para envio a um servidor remoto.

Os dados roubados são enviados a um servidor remoto

Após extrair as informações da memória do navegador, o programa monta um pequeno objeto JSON que inclui três valores: o identificador único da cópia do Windows instalada (MachineGuid), o parâmetro relacionado à extensão do navegador encontrado na memória e uma indicação do navegador de onde os dados vieram, Chrome ou Brave.

Em seguida, o programa tenta enviar os dados montados por meio de uma solicitação HTTPS a um servidor remoto no endereço:

É justamente esse endereço que é usado como canal principal para a transmissão das informações mais valiosas que o malware consegue coletar.

Um canal adicional de transmissão de informações via Sentry

A pesquisa também mostrou que o programa usa o serviço Sentry.

No entanto, neste caso ele é usado de uma forma completamente diferente.

Em diferentes partes do código foram encontradas chamadas a funções que enviam ao Sentry mensagens sobre o andamento do programa, os erros que surgem e suas diversas etapas. Junto com elas, é transmitida também informação de serviço adicional: o identificador do computador, o identificador do processo, o nome do navegador usado e as designações internas das etapas de trabalho do programa, por exemplo Init, Conn e Success.

De especial interesse é o manipulador responsável por enviar os resultados da solicitação POST principal. Nessa parte do código, os especialistas descobriram que a estrutura de dados que contém os parâmetros h, v e b também é transmitida via Sentry.

Apesar disso, o principal canal de transmissão de informações confidenciais continua sendo o servidor cdnresolver.com. O uso do Sentry provavelmente serve como uma ferramenta adicional que permite aos operadores do malware controlar o sucesso das infecções e acompanhar o funcionamento do próprio software.

Outra coincidência chama a atenção. Ao analisar a versão para macOS, foram detectados os mesmos domínios e1.cdnresolver.com e a2.cdnresolver.com. Embora os instaladores para macOS e Windows sejam construídos com tecnologias completamente diferentes, ambos acabam se comunicando com a mesma infraestrutura.

O Sentry como canal adicional de transmissão de dados

Ao analisar a versão para Windows, os pesquisadores descobriram mais um detalhe interessante. Dentro do bytecode compilado do processo principal ficou uma string:

Ela não tem nenhuma relação com a marca Relay sob a qual o aplicativo era distribuído. Além disso, o nome do arquivo sysupdwin.exe, no qual o programa se copia após ser iniciado, bem como a entrada WindowsSysUpdateCheck criada no registro do sistema, também não correspondem à identidade da Relay.

Os nomes desses processos coincidem por completo com os usados na amostra estudada.

Ainda assim, os autores do estudo ressaltam que não conseguiram obter a amostra original do FYMeet. Por isso, hoje só se pode falar em uma coincidência de nomes de arquivos e de alguns elementos da infraestrutura. É prematuro concluir que ambas as campanhas são organizadas pelo mesmo grupo de criminosos ou que compartilham um código-fonte comum.

Conclusões: uma única execução, acesso a todos os dados

A investigação começou após relatos de membros da comunidade que repararam no site relay.lc. Durante a análise, descobriu-se que os criminosos haviam preparado dois cenários de infecção completamente diferentes, um para usuários de macOS e outro para Windows. Apesar das diferenças de implementação, ambos os instaladores perseguem o mesmo objetivo: obter o acesso mais amplo possível aos dados confidenciais da vítima.

Toda a cadeia do ataque é construída levando em conta os hábitos dos usuários de cada sistema operacional.

No macOS, os criminosos usam um truque incomum, porém psicologicamente convincente. Pede-se ao usuário que instale o aplicativo arrastando um arquivo para a janela do Terminal. À primeira vista, isso parece um método de instalação fora do padrão, mas totalmente aceitável. Na prática, porém, é executado um script que remove a marca de origem do arquivo do sistema, contornando um dos avisos de segurança integrados do macOS, e depois inicia o malware de forma sorrateira.

No Windows, é aplicada uma abordagem completamente diferente. Em vez disso, o usuário vê uma tela de atualização verossímil com uma barra de progresso. Na melhor das hipóteses, a passagem para a etapa seguinte ocorre depois de cerca de dez segundos, mas o tempo máximo de espera não é limitado de forma alguma no código. Assim que a barra atinge a marca de 80%, o programa envia o comando interno runUpdate. A análise do bytecode mostrou que, depois disso, deve ser executado o arquivo sem assinatura updater.exe, e com uma solicitação de privilégios administrativos.

A abordagem para o roubo de dados também difere conforme a plataforma.

Na versão para macOS, é exibida ao usuário uma janela de sistema falsa pedindo que ele insira a senha. Ao mesmo tempo, o programa acessa o banco de dados Keychain, onde são armazenadas senhas e outros dados secretos. Depois, a senha inserida e o conteúdo do Keychain são combinados em um único pacote, destinado a ser enviado a um servidor remoto.

No Windows, o foco principal está na persistência do programa no sistema e na posterior análise da memória dos navegadores Chrome e Brave. O malware procura informações relacionadas ao desbloqueio de carteiras de criptomoedas, extrai os parâmetros necessários e os transmite à infraestrutura remota em uma solicitação JSON especialmente montada.

A pesquisa mostra que o dano potencial é muito mais amplo do que o comprometimento de uma única carteira de criptomoedas.

O código do programa contém módulos ou referências diretas a mecanismos de coleta de dados de navegadores, gerenciadores de senhas, do conteúdo do Keychain, dos dados locais do Telegram, das notas do Apple Notes e de diversas informações sobre o dispositivo. Isso significa que, após uma única infecção bem-sucedida, os criminosos podem potencialmente acessar não apenas os dados pessoais do usuário, mas também contas corporativas, serviços em nuvem, sistemas internos da empresa e outros recursos críticos.

Recomendações para os afetados

Se o arquivo apenas foi baixado, mas o usuário não o executou, basta excluir o arquivo DMG ou EXE baixado, esvaziar a Lixeira e bloquear todos os domínios, URLs e hashes listados na pesquisa por meio de filtragem de DNS, gateways de segurança ou soluções EDR.

Se o malware foi executado no macOS (o usuário arrastou o arquivo para o Terminal e pressionou Enter), o dispositivo deve ser imediatamente desconectado da rede mas, se possível, não reiniciado até a conclusão da análise forense.

Se o usuário inseriu a senha na janela falsa, deve-se partir do princípio de que os criminosos podem ter obtido tanto a própria senha quanto o conteúdo do Keychain.

Se a infecção ocorreu no Windows, o computador precisa ser imediatamente isolado da rede, e deve-se interromper qualquer ação relacionada à inserção de senhas ou ao desbloqueio de carteiras de criptomoedas.

Caso fossem usadas carteiras de criptomoedas em navegador, deve-se considerar que os dados relacionados ao seu desbloqueio podem ter sido expostos, e transferir os ativos para novas carteiras criadas em um dispositivo seguro.

Todas as recomendações acima baseiam-se em uma avaliação de riscos o mais conservadora possível, partindo dos recursos que foram confirmados durante a análise do código.

É importante levar em conta que o malware analisa parâmetros que já estão presentes na memória das extensões do navegador ou que aparecem ali durante o seu funcionamento. Além disso, os cookies e tokens roubados podem continuar válidos mesmo sem a troca da senha. Por isso, a investigação desse tipo de incidente não deve se limitar a verificar se ativos de criptomoedas foram roubados; as consequências de uma infecção podem se mostrar muito mais amplas.

#Ataque hacker#Criptofraude
Recrutamento web3 falso: como um app de IA rouba dados pessoais e senhas