
A operação usa acesso manual inicial, execução remota com PsExec e comunicação interna intermediada para cifrar múltiplas máquinas antes da entrega de notas de resgate personalizadas.
| Componente | Ransomware Pay2Key, também identificado internamente por artefatos como Cobalt.Client.exe e classes com namespace Cobalt. |
| Vetor | Acesso manual inicial a uma máquina da rede, provavelmente por RDP, seguido de cópia de artefatos, uso de ConnectPC.exe e execução remota do ransomware em outros hosts por meio de PsExec. |
| Impacto | Criptografia de arquivos em múltiplas máquinas da organização, com propagação observada em até cerca de uma hora e nota de resgate personalizada exigindo entre 7 e 9 bitcoins; a alegação de violação de dados não tinha evidência confirmada no material analisado. |
| Prioridade | Investigar acessos remotos recentes, execução de PsExec, diretórios temporários com artefatos Cobalt, arquivos Config.ini, logs Cobalt-Client-log.txt e interrupções anômalas do serviço MS SQL. |
| Artefatos | Cobalt.Client.exe, Config.ini, ConnectPC.exe, Cobalt-Client-log.txt, extensão observada .pay2key e notas no formato [ORGANIZATION]_MESSAGE.TXT. |
| Comunicação | O arquivo de configuração contém chaves Server e Port; nos casos observados, o servidor apontava para o IP da primeira máquina infectada, usada como intermediária para comunicação com controle externo. |
Pay2Key foi observado em uma sequência de ataques de ransomware contra empresas israelenses, incluindo organizações de grande porte. A operação se destacou por combinar intrusão manual, preparação de artefatos no host inicial e propagação rápida dentro da rede comprometida. Embora alguns incidentes no mesmo período envolvessem famílias já conhecidas, como REvil e Ryuk, parte dos casos analisados apresentou uma variante até então desconhecida, sem correlação técnica confirmada com outras famílias de ransomware. O binário analisado não usava empacotamento ou proteção evidente, mas ainda assim teve baixa detecção inicial em serviço de múltiplos motores, com apenas um mecanismo o classificando como malicioso no momento do envio mencionado no material técnico.
A cadeia observada sugere que o operador teve acesso ao ambiente antes da fase de cifragem e acionou a operação quando já possuía condições para se mover pela rede. Após a execução, o ransomware dependia de um arquivo de configuração local ou de um caminho informado por argumento para obter parâmetros de operação. A configuração direcionava a comunicação para uma máquina interna já comprometida, em vez de apontar diretamente para um servidor externo de comando e controle. Esse desenho reduz o volume de conexões externas visíveis a partir de cada endpoint cifrado e concentra a exposição da infraestrutura externa em um único ponto interno.
O impacto confirmado está relacionado à criptografia de arquivos e à interrupção operacional causada pela expansão do ransomware para diversas máquinas. As notas de resgate eram personalizadas com o nome da organização e exigiam valores entre 7 e 9 bitcoins, aproximadamente entre 110 mil e 140 mil dólares no contexto descrito. Embora as notas mencionassem violação de dados, a análise disponível não encontrou evidências que sustentassem essa alegação. Portanto, a resposta defensiva deve tratar a extorsão por vazamento como alegação não comprovada e priorizar a confirmação por telemetria, logs de transferência, artefatos de staging e tráfego de saída antes de concluir que houve exfiltração.
A atividade começava com acesso manual a uma máquina da rede da vítima, provavelmente por RDP. Nesse host, o operador copiava ou criava múltiplos arquivos e executava ConnectPC.exe. Em seguida, a utilidade PsExec era copiada ou baixada para acionar remotamente o ransomware em outros sistemas internos. O binário principal, Cobalt.Client.exe, precisava estar acompanhado de um Config.ini no mesmo diretório de trabalho, salvo quando um caminho de configuração era informado por argumento. Nos casos analisados, os artefatos apareciam em subdiretórios temporários sob C:\Windows\Temp\, com nomes que incorporavam a organização alvo.
O Config.ini tinha estrutura simples, com as chaves Server e Port. A particularidade relevante é que o campo Server não apontava diretamente para a infraestrutura externa do operador, mas para o IP da máquina inicialmente infectada. A interpretação técnica é que esse host funcionava como relé, recebendo comunicações das demais máquinas internas e encaminhando o tráfego para o controle externo. Essa arquitetura aumenta a probabilidade de comunicação dentro de redes em que conexões internas são mais permissivas do que saídas diretas para a internet e dificulta a identificação imediata do endereço externo usado pelo operador.
O ransomware foi escrito em C++ e compilado com MSVC++ 2015. A amostra continha informações RTTI ricas e mensagens de depuração, o que permitiu identificar classes ligadas a processamento de dados, comunicação, manipulação de mensagens, gerenciamento de arquivos e criptografia. A classe principal inicializada no fluxo era associada ao mecanismo de ransomware, e a execução dependia de mensagens recebidas do servidor para completar parâmetros da infecção. O tipo de mensagem mais relevante era Config, que fornecia lista de extensões a cifrar, extensão aplicada aos arquivos criptografados, nome da nota de resgate e conteúdo da mensagem exibida à vítima.
A criptografia usava combinação híbrida de algoritmos simétricos e assimétricos, com AES e RSA. O cliente gerava um par de chaves RSA, enviava a chave pública ao servidor por TCP bruto e aguardava mensagens de controle. O servidor fornecia material público em tempo de execução, o que significa que a amostra analisada não realizava criptografia offline: sem conectividade com o servidor ou com o relé interno funcional, a cifragem não ocorreria conforme descrito. A implementação também apresentava uso de RC4 em parte das funções criptográficas e um contêiner de chave nomeado pippo container, além de derivação de chave AES por CryptDeriveKey sobre valor hash, escolhas que diferem de padrões comuns em ransomware, mas não resultaram em falha criptográfica explorável identificada no material analisado.
Ao final da cifragem, o malware podia encerrar o serviço MS SQL por meio de um comando operacional omitido para liberar arquivos bloqueados pelo banco de dados. Também havia indicação de capacidade para alterar o papel de parede, embora esse comportamento não tenha sido observado nos sistemas analisados. Versões mais recentes introduziram mecanismo de autolimpeza, remoção de arquivos criados pelo operador, reinicialização do host e argumento --noreboot, sinalizando desenvolvimento ativo durante o período dos incidentes.
A superfície exposta envolve ambientes Windows corporativos com acesso remoto, credenciais capazes de executar tarefas administrativas e comunicação lateral permitida entre estáções e servidores. O uso de PsExec indica dependência de privilégios suficientes para execução remota e de caminhos administrativos ou serviços acessíveis entre máquinas. A presença de um host interno atuando como relé torna a primeira máquina comprometida um ativo crítico para reconstruir a linha do tempo: ela pode concentrar logs de execução, arquivos copiados, configuração de porta, conexões para outros hosts e possível contato externo.
Os alvos observados pertenciam ao setor privado israelense, e não havia evidência técnica de que o malware fosse incapaz de operar fora desse recorte. A limitação geográfica, portanto, deve ser tratada como característica dos incidentes analisados, não como restrição do código. A operação também exibia personalização por vítima, com nome da organização inserido na nota e em arte ASCII, o que reforça a natureza direcionada dos ataques e reduz a utilidade de defesas baseadas apenas em nomes fixos de arquivos.
- Hosts Windows com RDP exposto internamente ou externamente e histórico recente de logon administrativo incomum.
- Máquinas com execução de PsExec fora de janelas de manutenção ou sem associação a ferramenta corporativa conhecida.
- Diretórios temporários contendo
Cobalt.Client.exe,Config.ini,ConnectPC.exeou subpastas com nomes derivados da organização. - Servidores com arquivos renomeados para extensão
.pay2keyou notas no padrão[ORGANIZATION]_MESSAGE.TXT.
A investigação deve começar pela linha do tempo do primeiro host suspeito. Eventos de logon remoto, criação de processos, cópia de arquivos para diretórios temporários e conexões TCP para dentro e fora da rede ajudam a separar a fase de preparação da fase de cifragem. Como o Server do Config.ini pode apontar para uma máquina interna, bloquear apenas indicadores externos não basta. É necessário mapear quais endpoints tentaram se conectar ao IP interno configurado, qual porta foi usada e se esse host iniciou conexões de saída compatíveis com relé ou túnel para infraestrutura desconhecida.
No endpoint, sinais úteis incluem execução de binários em C:\Windows\Temp\, criação de Cobalt-Client-log.txt, uso do argumento --config, presença do argumento --noreboot em variantes mais novas, criação de notas de resgate personalizadas e tentativas de parar o serviço MS SQL. A ausência do log não elimina a hipótese de Pay2Key, porque versões posteriores removiam esse arquivo como parte da limpeza. Em redes com EDR, a correlação entre PsExec, criação remota de serviço, execução de Cobalt.Client.exe e aumento abrupto de alterações de extensão de arquivo deve receber prioridade alta.
A telemetria de rede deve procurar conexões internas concentradas para um host incomum, especialmente quando múltiplas máquinas passam a se comunicar com a mesma porta em curto intervalo. A comunicação com o servidor era usada para obter configuração e material criptográfico em tempo de execução; por isso, falhas de conexão, tentativas repetidas e sessões TCP brutas podem ser relevantes mesmo quando a criptografia não se completa. Em logs de arquivos, a criação simultânea de notas e extensões alteradas em compartilhamentos ou servidores de arquivos pode indicar que a propagação já atingiu ativos críticos.
- Execução de PsExec associada a contas administrativas fora de procedimento documentado.
- Criação ou leitura de
Config.inipróximo aCobalt.Client.exeem diretórios temporários. - Conexões TCP internas de muitos hosts para uma única máquina previamente acessada por RDP.
- Arquivos com extensão
.pay2keye notas personalizadas com nome da organização. - Parada anômala do serviço MS SQL durante janela próxima à criação de arquivos cifrados.
A resposta deve isolar imediatamente o host usado como ponto inicial ou relé, sem apagar artefatos antes da coleta forense. Como a comunicação interna participa do fluxo de controle, segmentar a máquina suspeita pode interromper a capacidade de novas instâncias receberem configuração ou material criptográfico. Em paralelo, contas administrativas usadas no período devem ser bloqueadas ou ter credenciais rotacionadas, e sessões RDP ativas precisam ser revisadas. A contenção deve incluir bloqueio temporário de execução remota não essencial, validação de uso legítimo de PsExec e restrição de comunicação lateral entre estáções.
A recuperação exige confirmar o escopo antes de restaurar sistemas. Restaurar máquinas enquanto o relé interno ou credenciais comprometidas continuam ativos pode recolocar o ambiente no ciclo de cifragem. Backups devem ser verificados fora do domínio comprometido, com atenção a servidores de arquivos, bancos de dados e sistemas que tiveram o serviço MS SQL interrompido. A alegação de violação de dados nas notas não deve ser descartada automaticamente, mas também não deve ser tratada como fato sem evidência: a validação precisa buscar volumes incomuns de saída, staging de arquivos, compactadores, ferramentas de transferência e autenticações para repositórios ou compartilhamentos sensíveis.
Após a contenção, a engenharia deve endurecer RDP, reduzir privilégios administrativos distribuídos, aplicar segmentação entre estáções e servidores, restringir ferramentas de execução remota e manter alertas para criação de serviços remotos. A defesa também deve revisar regras de EDR para binários executados a partir de diretórios temporários, uso de Config.ini junto de executáveis desconhecidos, alterações massivas de extensão e encerramento de serviços de banco de dados em horários incompatíveis com manutenção. Como a família demonstrava desenvolvimento ativo, controles baseados em comportamento são mais robustos do que bloqueios dependentes de nome de arquivo.
- Isolar o host inicial suspeito e preservar
Config.ini, executáveis, logs e eventos de rede para análise. - Bloquear ou restringir PsExec e execução remota administrativa até concluir a investigação.
- Rotacionar credenciais administrativas usadas em RDP, movimentação lateral ou execução remota.
- Restaurar sistemas apenas após remover o relé interno, validar backups e encerrar sessões persistentes.
- Criar detecções para execução de
Cobalt.Client.exe, notas[ORGANIZATION]_MESSAGE.TXT, extensão.pay2keye parada anômala de MS SQL.
0 Comentários