GreyEnergy: Sucessor do BlackEnergy ataca empresas do setor de energia

Os especialistas da ESET realizaram uma análise de malware complexo que não havia sido estudado antes, projetado para ataques direcionados a empresas de infraestrutura crítica na Europa Central e Oriental. O programa, chamado GreyEnergy, tem uma semelhança conceitual com o BlackEnergy, um malware que foi usado em ataques a empresas de energia ucranianas em dezembro de 2015 . Além disso, existem links indicando que os operadores da GreyEnergy trabalharam com o grupo TeleBots por trás de vários ataques destrutivos.


O relatório fornece informações sobre as atividades do Grupo GreyEnergy nos últimos anos. Observe que não atribuímos ataques e desenvolvimento de malware a nenhum estado. De acordo com nossa terminologia, "grupo ART" é um conjunto de indicadores técnicos.

1. Introdução


Em dezembro de 2015, o grupo BlackEnergy atacou o complexo energético ucraniano usando malware das famílias BlackEnergy e KillDisk. Este foi o último incidente conhecido com o software BlackEnergy em condições reais. Após esse ataque, o grupo se transformou em pelo menos dois subgrupos: TeleBots e GreyEnergy.

A TeleBots é especializada em sabotagem cibernética por meio de ataques de computador em rede (CNA). O grupo contou ataques destrutivos, incluindo:


Os especialistas da ESET monitoram a atividade do grupo GreyEnergy há vários anos. O grupo usa a família exclusiva de malware com o mesmo nome. A arquitetura Malvari se assemelha à família BlackEnergy.

Além das semelhanças conceituais dos programas, há outros links indicando que os operadores da GreyEnergy trabalham em estreita colaboração com o grupo TeleBots. Em particular, em dezembro de 2016, o grupo GreyEnergy lançou um worm semelhante ao NotPetya, e uma versão mais avançada desse programa apareceu em junho de 2017 em um ataque do TeleBots.

Vale ressaltar que o GreyEnergy e o TeleBots têm objetivos diferentes - o GreyEnergy está interessado principalmente em redes industriais pertencentes a empresas de infraestrutura crítica e, diferentemente do TeleBots, não se limita a objetos na Ucrânia.

No final de 2015, notamos o malware GreyEnergy voltado para uma empresa de energia na Polônia. No entanto, a GreyEnergy também ataca alvos ucranianos. O grupo se concentra no setor de energia, infraestrutura de transporte e outras instalações de alto nível. Pelo menos uma organização alvo do BlackEnergy foi atacada pelo GreyEnergy. O último uso do GreyEnergy foi registrado em meados de 2018.

O programa malicioso GreyEnergy possui uma arquitetura modular; no entanto, ao contrário do Industroyer , não vimos nenhum módulo que pudesse afetar o ICS (Industrial Control Systems). No entanto, os operadores GreyEnergy implantaram uma víbora no disco pelo menos uma vez para interromper os fluxos de trabalho e ocultar traços de um ataque cibernético.

Um dos detalhes mais interessantes encontrados durante nossa pesquisa é que uma das amostras da GreyEnergy foi assinada com um certificado digital válido. Muito provavelmente, este certificado foi roubado de um fabricante taiwanês de equipamentos ICS. Nesse sentido, o grupo GreyEnergy seguiu os passos dos autores do Stuxnet .

GreyEnergy: método de trabalho


Durante as observações da atividade do grupo GreyEnergy, vimos principalmente dois vetores de infecção inicial. O primeiro diz respeito a organizações com serviços da web localizados nos próprios servidores das vítimas. Se o serviço público da Web estiver sendo executado em um servidor conectado à rede interna, os invasores tentarão comprometê-lo a penetrar na rede. O segundo vetor é o phishing direcionado com anexos de email maliciosos.

Documentos maliciosos descartam o GreyEnergy mini - um backdoor leve do primeiro estágio que não requer privilégios administrativos. Depois que um computador é comprometido usando o GreyEnergy mini, os atacantes criam um mapa de rede e coletam senhas para obter direitos de administrador de domínio. Com esses privilégios, os invasores podem controlar toda a rede. O grupo GreyEnergy usa ferramentas bastante padrão para realizar estas tarefas: Nmap e Mimikatz.

Após uma exploração inicial da rede, os atacantes podem implantar um backdoor principal - o principal GreyEnergy. O software malicioso requer direitos de administrador, que devem ser obtidos antes da fase de implantação do GreyEnergy principal. De acordo com nossa pesquisa, os operadores GreyEnergy instalam o backdoor principal principalmente em dois tipos de terminais: servidores de longa duração e estações de trabalho usadas para gerenciar ambientes ICS.

Para disfarçar as comunicações com os servidores da C&C, os invasores podem instalar software adicional nos servidores internos de uma rede comprometida, para que cada servidor atue como um proxy. Esse proxy C&C redireciona solicitações de nós infectados na rede para um servidor C&C externo na Internet. A "comunicação" de vários computadores da rede com um servidor interno não parece tão suspeita quanto com um servidor externo. O método também pode ser usado para gerenciar malware em diferentes segmentos de uma rede comprometida. Um método semelhante usando servidores internos como proxy-C & C foi observado na campanha ART Duqu 2.0 .

Se a organização comprometida tiver servidores públicos da Web conectados à rede interna, os invasores poderão implantar backdoors de "backup" nesses servidores. Eles são usados ​​para restaurar o acesso à rede no caso de as principais backdoors serem descobertas e excluídas.

Todos os servidores C&C relacionados ao malware GreyEnergy usam Tor.


Figura 1. Um diagrama simplificado de dois cenários de comprometimento de rede usados ​​pelo grupo GreyEnergy

Greyenergy mini


O GreyEnergy mini é um backdoor leve do primeiro estágio, usado pelos atacantes para avaliar um computador comprometido e fornecer uma ponte inicial na rede. Normalmente, o GreyEnergy mini era baixado usando um documento malicioso distribuído em emails de phishing. O GreyEnergy mini também é conhecido como FELIXROOT .

Em setembro de 2017, a ESET descobriu um documento do Microsoft Word em ucraniano contendo uma macro maliciosa. O documento da isca imita um formulário interativo para incentivar a vítima a ativar a macro e preenchê-la.


Figura 2. Documento de isca usado pela GreyEnergy em setembro de 2017

Depois de ativar a macro, seu código tenta baixar e executar o arquivo binário do servidor remoto.


Figura 3. Macro VBA maliciosa (comentários adicionados pela ESET)

Curiosamente, um link que leva a uma imagem externa é incorporado no corpo do documento. Depois de abrir o documento, ele tenta fazer upload dessa imagem - dessa maneira os atacantes descobrem que o arquivo está aberto. O método permite rastrear quais destinos incluem uma macro maliciosa e que acabam de abrir um documento.


Figura 4. Link para um desenho “rastreador” externo em um documento malicioso

O executável baixado é um mini conta-gotas GreyEnergy. O conta-gotas grava a DLL maliciosa na %APPDATA% , usando um GUID gerado aleatoriamente como o nome. Além disso, o conta-gotas cria um arquivo .LNK com um nome de arquivo vazio na pasta no menu Iniciar, com uma entrada que executa rundll32.exe com o caminho para a DLL como argumento para a linha de comando. Este é o método de mini persistência GreyEnergy.

A DLL liberada é o módulo principal do GreyEnergy mini; está disfarçado como um arquivo legítimo relacionado ao Microsoft Windows.


Figura 5. A mini DLL backdoor do GreyEnergy se disfarça como uma DLL legítima do Windows

Para avaliar um computador comprometido, o malware coleta o máximo de informações possível e envia dados para a C&C. Os dados são coletados usando a linguagem de consulta WMI (WQL) e as consultas de registro do Windows. Os seguintes dados são coletados:

  • nome do computador
  • versão do sistema operacional, incluindo a versão do service pack
  • idioma padrão
  • nome de usuário
  • privilégios atuais de usuário do Windows, elevação, nível de UAC
  • configurações de proxy
  • informações do computador (fabricante, modelo, tipo de sistema)
  • fuso horário
  • software de segurança instalado (antivírus e firewall)
  • lista de usuários e domínios
  • lista de programas instalados obtidos a partir do registro
  • informações de rede (endereços IP, servidor DHCP, etc.)
  • lista de processos em execução

O software malicioso recebe comandos do servidor C&C. Suporte para os seguintes comandos é fornecido (abaixo estão os IDs de comando e seus significados):

  1. coletar informações do computador
  2. baixe e execute o arquivo executável na pasta de arquivos temporários
  3. executar comando shell
  4. remover-se de um computador comprometido
  5. baixe e execute o arquivo .BAT da pasta de arquivos temporários
  6. baixar arquivo para o disco local
  7. carregar arquivo

A configuração do malware no formato JSON é incorporada ao arquivo binário e criptografada usando um algoritmo personalizado. Os dados criptografados contêm quatro bytes no início; esses bytes são usados ​​como a chave para a operação XOR descriptografar o restante dos dados. A maioria das strings usadas pelo malware é criptografada usando esse algoritmo.


Figura 6. Configuração embutida do GreyEnergy mini antes e depois da descriptografia

Todas as mini configurações do GreyEnergy que vimos incluem servidores HTTPS e HTTP usados ​​como C&C. Isso permite que os invasores alternem para HTTP nos destinos em que a conexão HTTPS não é suportada pela configuração de rede ou firewall.

O GreyEnergy mini tem semelhanças no código com outros programas maliciosos da família GreyEnergy. Além disso, o GreyEnergy mini e o principal backdoor GreyEnergy usam os mesmos servidores C&C.

Porta traseira principal GreyEnergy


O GreyEnergy é o principal backdoor deste grupo cibernético. As amostras de malware analisadas aqui são gravadas em C e compiladas usando o Visual Studio, mas sem o uso das funções padrão da biblioteca de tempo de execução C (CRT). As amostras embaladas podem conter um carimbo de data / hora falso de PE, mas após descompactar, o carimbo de data / hora é redefinido (1 de janeiro de 1970).


Figura 7. Carimbo de data e hora de PE da amostra GreyEnergy descompactada

Curiosamente, uma das primeiras amostras de GreyEnergy analisadas foi assinada com um certificado de propriedade da Advantech. Esta é uma empresa de Taiwan que fabrica equipamentos para a indústria e a Internet das coisas. Como descobrimos que o mesmo certificado foi usado para assinar o software limpo e não malicioso da Advantech, acreditamos que ele foi roubado. Observe que a amostra detectada não possui uma assinatura digital - isso significa que a assinatura se tornou inválida quando o certificado expirou.


Figura 8. Certificado Advantech usado para assinar a amostra de malware GreyEnergy

Os dados do certificado são os seguintes:

Serial Number: 15:f4:8f:98:c5:79:41:00:6f:4c:9a:63:9b:f3:c1:cc
Validity:
Not Before: Feb 10 00:00:00 2014 GMT
Not After : Feb 26 23:59:59 2017 GMT
SHA1 Fingerprint=97:53:AD:54:DF:6B:D6:73:E0:6C:00:36:3D:34:6A:06:00:7A:0A:9B


Percebemos que o GreyEnergy geralmente é implantado em dois modos: somente na memória e com a persistência do serviço DLL. O primeiro modo é usado quando os invasores têm certeza de que a instalação não exige medidas especiais para garantir a estabilidade (por exemplo, em servidores com um tempo de atividade longo); o segundo modo é quando o malware deve suportar qualquer reinicialização.

Modo Somente Memória


Para esse modo, os invasores colocam o arquivo DLL em uma pasta específica e o executam usando o aplicativo rundll32.exe do Windows. Observamos que os invasores usam a ferramenta Windows Sysinternals PsExec localmente para executar o rundll32.exe com os privilégios mais altos possíveis ( NT AUTHORITY\SYSTEM ).

Abaixo está a linha de comando usada na fase de execução inicial do GreyEnergy apenas na memória:

cmd.exe /c "C:\Windows\System32\rundll32.exe "C:\Sun\Thumbs.db",#1 CAIAABBmAAAgAAAA8GFGvkHVGDtGRqcl3Z3nYJ9aXCm7TVZX8klEdjacOSU="

Neste exemplo, Thumbs.db é um arquivo DLL GreyEnergy do qual a função com o primeiro número de sequência é chamada pelo processo rundll32.exe . O exemplo de linha de comando fornecido contém uma sequência de bytes criptografados com base64, que é subsequentemente usada como uma chave AES-256 para descriptografar um pequeno stub. Depois disso, o código no "stub" inicia uma nova cópia do processo svchost.exe e injeta a carga útil do GreyEnergy. No último estágio, o processo GreyEnergy do rundll32.exe termina, o arquivo DLL malicioso é protegido contra exclusão do disco. Portanto, a carga útil GreyEnergy existirá apenas no contexto da memória do processo svchost.exe .

Provavelmente, os autores pretendiam desenvolver malware de tal maneira que, sem uma chave na linha de comando, fosse impossível descriptografar o "stub" e a carga útil.


Figura 9. Nome interno da DLL GreyEnergy para o modo somente memória

Se você usar o modo "apenas na memória", concluir o processo svchost.exe correspondente ou reiniciar o computador é suficiente para remover o GreyEnergy.

Persistência do serviço DLL


Para usar esse método, os operadores implantam o conta-gotas GreyEnergy, que deve ser executado com privilégios de administrador.

A chave de registro ServiceDLL permite iniciar o módulo DLL de serviço no contexto do processo svchost.exe . Recurso não documentado pela Microsoft; no entanto, é usado por várias famílias de malware, incluindo o worm Conficker.

Para garantir a persistência do serviço DLL, o conta-gotas procura um serviço existente e adiciona uma nova chave de registro ServiceDLL . Como o método pode levar à falha do sistema, o conta-gotas realiza inicialmente uma série de verificações para selecionar um serviço que atenda a vários requisitos.

Primeiro, o conta-gotas localiza todos os serviços do Windows que estão atualmente parados executando a seguinte consulta WQL:

Select * from Win32_Service where PathName Like '%%svchost%%' and State = 'Stopped'

As seguintes condições podem ser adicionadas à solicitação:

  • and StartMode = 'Disabled' ou and StartMode = 'Manual'
  • and ServiceType = 'Own Process' ou and ServiceType = 'Share Process'

Em seguida, o conta-gotas tenta selecionar o serviço desejado, verificando os resultados e ignorando aqueles que atendem às seguintes condições:

  • o nome do serviço contém winmgmt (Instrumentação de Gerenciamento do Windows) ou BITS (Serviço de Transferência Inteligente em winmgmt Plano)
  • conta-gotas não tem acesso ao serviço ou chave do registro
  • DependOnService registro DependOnService não DependOnService vazio
  • valor do registro para ServiceDll ou ImagePath não existe
  • A linha de comando do serviço contém uma das seguintes palavras:
  • DcomLaunch , LocalServiceNetworkRestricted , LocalServiceNoNetwork , LocalServicePeerNet , LocalSystemNetworkRestricted , NetworkServiceNetworkRestricted , secsvcs , wcssvc

Após a detecção de um serviço que atenda a essas condições, o programa de malware despeja o arquivo DLL no diretório system32 do Windows e grava a chave de registro ServiceDLL . O nome da DLL contém quatro caracteres gerados aleatoriamente e svc.dll ou srv.dll no final. Além disso, o conta-gotas falsifica os metadados de tempo do arquivo, copiando-o do arquivo user32.dll existente.

A versão mais recente do conta-gotas GreyEnergy suporta sistemas operacionais de 32 e 64 bits.


Figura 10. DLL DLL GreyEnergy implementada através do método de persistência de serviço DLL

O Dropper usa um método interessante para disfarçar uma DLL maliciosa como um arquivo legítimo. Em particular, o conta-gotas copia o recurso VERSIONINFO, que contém uma descrição detalhada do arquivo executável pertencente ao serviço Windows em questão e grava esses dados em uma DLL mal-intencionada. Para esse fim, EndUpdateResource funções da API do Windows BeginUpdateResource / UpdateResource / EndUpdateResource . Versões recentes não chamam essas funções da API; o código deles é implementado no próprio programa malicioso para evitar a liberação do arquivo DLL no disco sem um recurso VERSIONINFO falso. Presumivelmente, isso evita a detecção de certos produtos de segurança. O mesmo conta-gotas pode criar arquivos DLL maliciosos com descrições diferentes em computadores diferentes. Cada padrão expandido dessa maneira terá um hash exclusivo.

Se o malware já estiver presente no sistema, o conta-gotas pode atualizá-lo usando o pipe nomeado.

No último estágio, o conta-gotas é excluído automaticamente, substituindo o arquivo por zeros e excluindo do disco. Dropper também limpa a revista USN . As ações são executadas através dos seguintes comandos do shell:

timeout 2 > nul & fsutil file setzerodata offset=0 length=%DROPPER_FILESIZE% "%DROPPER_PATH%" & timeout 2 & cmd /c del /F /Q "%DROPPER_PATH%" & fsutil usn deletejournal /D %DROPPER_DRIVE%

Configuração e Comunicações


O modo de persistência selecionado pelos operadores não afeta a funcionalidade do programa malicioso, que permanece inalterado nos dois métodos.

O software malicioso contém uma configuração incorporada que é criptografada usando o algoritmo AES-256 e compactada usando LZNT1.

O formato MIME de vários componentes é usado para a configuração de malware incorporado. Os autores não implementaram seu próprio analisador para este formato; em vez disso, eles usam as interfaces COM IMimeMessage e IMimeBody . Curiosamente, a documentação da Microsoft recomenda não usar essas interfaces.


Figura 11. Exemplo de configuração interna do GreyEnergy

Para configuração externa, o formato MIME idêntico é usado; no entanto, o malware criptografa a configuração externa de várias maneiras. Ele usa a DPAPI (Data Protection Application Programming Interface), em particular, as funções da API do Windows CryptProtectData e CryptUnprotectData . A configuração externa é salva no seguinte caminho C:\ProgramData\Microsoft\Windows\%GUID% , em que %GUID% é um valor GUID gerado aleatoriamente com base no número de série do volume da unidade C :.

Algumas amostras do GreyEnergy contêm uma versão ofuscada da configuração. Em particular, os campos Type dessas configurações contêm letras em vez de nomes de opções.


Figura 12. Um exemplo de uma configuração GreyEnergy ofuscada

A configuração pode conter os seguintes valores:



Um programa malicioso se remove do sistema infectado se o número de tentativas malsucedidas exceder o valor de MaxAttempts e a última conexão bem-sucedida MaxAttempts mais do que o Lifetime dias atrás.

A comunicação com C&C geralmente é feita via HTTPS; no entanto, em alguns casos, o HTTP também é usado. O mesmo formato MIME é encapsulado em solicitações HTTP. Vale ressaltar que os dados são criptografados usando o AES-256 e o ​​RSA-2048.


Figura 13. Comunicação GreyEnergy sobre HTTP capturada no Wireshark

Se estiver usando HTTP, é mais fácil identificar uma máquina comprometida na rede analisando seu tráfego de rede. As amostras de malware estudadas sempre usaram os seguintes agentes de usuário codificados:

  • Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko
  • Mozilla/5.0 (compatible, MSIE 11, Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko

Para ajudar os operadores GreyEnergy a identificar computadores infectados, o malware envia os resultados das seguintes consultas WQL ao servidor C&C:

  • SELECT Caption, Version, CSName, ProductType, CurrentTimeZone, LocalDateTime, OSLanguage, OSType FROM Win32_OperatingSystem
  • SELECT MACAddress, IPAddress, IPSubnet, DHCPEnabled, DHCPServer, DNSDomain FROM Win32_NetworkAdapterConfiguration WHERE MACAddress IS NOT NULL

As respostas do servidor C&C são criptografadas, mas após a descriptografia, elas contêm o mesmo formato MIME com os seguintes valores possíveis:


O GreyEnergy carrega módulos adicionais e carga útil na memória usando seu próprio carregador de arquivos PE.

Módulos GreyEnergy


Como muitas ameaças complexas, o malware GreyEnergy possui uma arquitetura modular. Sua funcionalidade pode ser expandida adicionando módulos adicionais. O módulo GreyEnergy é um arquivo DLL que é executado chamando uma função com o primeiro número de sequência. Cada módulo, incluindo o módulo principal GreyEnergy, aceita comandos de texto com vários parâmetros.

Os operadores GreyEnergy não enviam todos os módulos imediatamente para uma máquina comprometida. Como regra, um programa malicioso baixa e executa os módulos necessários para executar tarefas específicas.

Estamos cientes da existência dos seguintes módulos GreyEnergy:

remoteprocessexec - injeta um arquivo RE binário em um processo remoto
info - coleta informações do sistema, logs de eventos, malware SHA-256
file - operações do sistema de arquivos
sshot - tira screenshots
keylogger - intercepta as teclas digitadas
passwords - coleta senhas armazenadas em vários aplicativos
mimikatz - ferramenta mimikatz usada para coletar credenciais do Windows
plink - software de plink usado para criar túneis SSH
3proxy - software 3proxy usado para criar proxies

O módulo remoteprocessexec permite que um invasor execute arquivos binários arbitrários no contexto de processos existentes. Por exemplo, você pode executar o Mimikatz ou um scanner de portas no contexto do Windows Explorer sem soltá-los no disco. Para redirecionar saída padrão e threads de processo e finalização de processo, o módulo intercepta cinco funções da API do Windows.


Figura 14. Funções da API do Windows capturadas pelo remoteprocessexec

Como a DLL GreyEnergy redefinida é exclusiva para cada máquina infectada, os invasores podem coletar hashes SHA-256 usando o módulo de informações. A presença de hashes permitirá que você acompanhe se o arquivo foi carregado em serviços públicos da Web, como o VirusTotal.

Proteção Reversa e Métodos Anti-Criminosos


GreyEnergy usa vários métodos para complicar a análise. Por exemplo, um programa de malware criptografa seqüências de caracteres. Algumas opções usam o mesmo algoritmo que o GreyEnergy mini.

No entanto, a maioria das amostras GreyEnergy possui um algoritmo de criptografia diferente. Em particular, os quatro primeiros bytes em um blob criptografado não são usados ​​como uma chave para operações XOR. Em vez disso, eles são usados ​​para inicializar o número inicial do algoritmo de geração de números pseudo-aleatórios ( Mersenne Whirlwind ) e, em seguida, os quatro bytes gerados são a chave. Antes de liberar um buffer de memória contendo uma sequência de texto sem formatação, o malware substitui o buffer por zeros.


Figura 15. Código descompilado para a função de decodificação de string GreyEnergy

O programa malicioso intercepta as DeleteFileW e DeleteFileW na tabela de importação de cada arquivo PE binário carregado na memória. O gancho substitui essas funções por funções que apagam arquivos com segurança. Em particular, o arquivo será substituído por zeros antes de ser excluído do disco. Cada carga útil ou plug-in usará essa função sem a necessidade de sua implementação em cada módulo.


Figura 16. Código descompilado para uma rotina que intercepta DeleteFileA e DeleteFileW

As ferramentas


Os invasores usaram o scanner de portas Nmap como a principal ferramenta para mapear as redes internas da vítima. Além disso, observamos o uso de um scanner de porta personalizado leve, onde o Nmap não era possível.


Figura 17. Saída do console de um scanner de porta de grupo GreyEnergy personalizado

Os invasores usam ativamente ferramentas legítimas, como SysInternals PsExec e WinExe , para movimento horizontal dentro de redes comprometidas. A ferramenta WinExe, o análogo de código aberto do WinExe, pode ser controlado a partir de um dispositivo Linux, por exemplo, a partir de um servidor da Web Linux comprometido.

Vale ressaltar que, além dessas ferramentas, os invasores usam scripts do PowerShell.

Backdoors do servidor da Web


Como mencionado anteriormente, o grupo GreyEnergy implementa backdoors adicionais em servidores Web, se esses servidores estiverem acessíveis na Internet. Percebemos que os invasores usam backdoors escritos em PHP para esse fim. Eles usam o shell da web WSO e c99shell do shell da web PHP acessível ao público.

Os invasores podem modificar um script PHP existente em um servidor da Web ou implantar um novo. O código PHP real de backdoor geralmente oculta vários níveis de ofuscação e criptografia.


Figura 18. Código ofuscado do backdoor PHP do grupo GreyEnergy

O último nível de código é protegido pela criptografia de fluxo. A geração de chaves para essa cifra é baseada em uma sequência do valor do cookie fornecido pelos atacantes por meio de uma solicitação HTTP. Cada backdoor do PHP é criptografado com uma chave separada.


Figura 19. O último nível que o código de backdoor do PHP decodifica

A técnica de ofuscação é usada para impedir a análise, bem como a impossibilidade de usar esse backdoor PHP por outros grupos cibernéticos.

Proxy C&C (triulina)


Como mencionamos anteriormente, os atacantes podem usar o servidor interno como um proxy C&C.

Descobrimos que os invasores até criaram cadeias de proxies C&C nos quais o primeiro servidor desse tipo pode redirecionar o tráfego de rede para o próximo e assim por diante até chegar ao destino final na Internet.

Os invasores usam vários métodos para transformar o servidor interno em um proxy C&C. Para fazer isso, eles podem usar diretamente o malware GreyEnergy, software ou scripts adicionais de terceiros. No primeiro caso, os operadores podem comprometer o servidor Windows usando o GreyEnergy, transformá-lo em um proxy C&C usando os módulos 3proxy e plink. No processo de monitoramento da atividade da GreyEnergy, observamos a instalação dos seguintes programas legítimos em servidores Linux internos:

  • Proxy pequeno 3proxy
  • Servidor Dante SOCKS
  • Ligação PuTTY (Plink)

Em vez de software de terceiros, os invasores podem usar servidores da Web internos instalando seus próprios scripts neles. As linguagens de programação PHP e ASP são usadas.

Em todos os casos que observamos, os scripts PHP implantados foram ofuscados e criptografados usando o mesmo tipo de ofuscação que nas backdoors para servidores da web. No entanto, nesse caso, o cookie que contém a chave de descriptografia é fornecido pelo próprio malware GreyEnergy. Por esse motivo, os operadores devem usar um formato de configuração especial para o URL do servidor.


Figura 20. O último nível que descriptografa o código de backdoor do PHP usando um cookie.

Curiosamente, a configuração de malware contém a palavra triungulinno caminho para o script PHP ofuscado do servidor proxy. Esse parece ser o nome interno desse método usado pelas instruções GreyEnergy.

Se o programa malicioso tiver um proxy C&C interno na configuração, ele não conterá servidores C&C externos. Portanto, para encontrar o endereço C&C externo, você precisa ter uma amostra de malware e todos os scripts PHP associados a ela.

Observamos o uso dos seguintes scripts PHP:


Um script proxy PHP personalizado contém uma URL com um cabeçalho C&C externo.


Figura 21. Um servidor C&C externo incorporado no script do servidor proxy PHP customizado O script PHP customizado

usa as bibliotecas OpenSSL e Curl para redirecionar a solicitação do malware para o servidor C&C externo na Internet.


Figura 22. Código para o script PHP personalizado do servidor proxy do grupo GreyEnergy

Como mencionado acima, os invasores podem usar scripts ASP para o mesmo objetivo. Em um caso que observamos, o script ASP utilizava um cookie fornecido pelo malware para descriptografar apenas o endereço C&C real usando o AES; o restante do código não foi criptografado ou ofuscado.


Figura 23. Código de proxy ASP usado pelo grupo GreyEnergy

Servidores C e C com acesso à Internet


Todos os servidores GreyEnergy C&C usavam o Tor quando estavam ativos. As configurações de infraestrutura da C&C são semelhantes às do BlackEnergy, TeleBots e Industroyer, que também usavam servidores Tor.

Provavelmente, todo servidor C&C tem um endereço de cebola e os atacantes o usam para acessar, gerenciar ou transmitir dados. Parece ser um requisito OPSEC que adiciona uma camada extra de anonimato aos atacantes.

Os especialistas da ESET identificaram os servidores de C&C usados ​​pelo malware GreyEnergy nos últimos três anos. A lista é apresentada abaixo na seção "Indicadores de compromisso".

Comparação de GreyEnergy e BlackEnergy


As famílias de malware GreyEnergy e BlackEnergy têm a mesma estrutura, conjunto de módulos e funções. Embora a implementação dessas funções seja diferente, elas ainda são comparáveis.


Moonraker petya


Em dezembro de 2016, os atacantes lançaram um worm, que, em nossa opinião, era o antecessor do NotPetya (também conhecido como Petya, ExPetr, Nyetya, EternalPetya). O worm foi usado em ataques a um pequeno número de objetos e tinha recursos limitados de distribuição, por isso não era amplamente conhecido.

Um worm é um arquivo DLL com um nome msvcrt120b.dlllocalizado no diretório do Windows. O nome do arquivo interno é moonraker.dll, o que, talvez, é uma referência ao filme e ao romance de Bond com o mesmo nome . Em geral, chamamos o programa Moonraker Petya.


Figura 24. O nome interno do worm instalado em dezembro de 2016

O registro de data e hora do PE na DLL sugere que o arquivo foi compilado em dezembro de 2016, presumivelmente antes da instalação.

Moonraker Petya contém código após o qual o computador para de carregar. Em particular, substitui o valor ImagePathnas chaves do registro [HKEY_LOCAL_MACHINE\System\ControlSet001\Services\ACPI]e[HKEY_LOCAL_MACHINE\System\ControlSet002\Services\ACPI]e apaga o primeiro setor da unidade do sistema. Ao contrário do NotPetya, o Moonraker Petya não contém código que interage diretamente com o MBR e o carregador de inicialização do sistema operacional. Em vez disso, a DLL Moonraker Petya contém um blob de dados binários criptografados. O malware espera um argumento de linha de comando que posteriormente será usado como a chave de descriptografia. Após descriptografar e descompactar usando a biblioteca zlib, o código é carregado na memória como um arquivo RE binário e executado. Não temos uma chave de descriptografia, mas analisamos as imagens de disco dos computadores infectados. Eles continham o código MBR e bootloader, que corresponde ao código encontrado no Green Petya original usado por diferentes grupos cibernéticos. Assumimos que o blob pode conter o Petya Verde original.


Figura 25. A tela pop-up exibida após a reinicialização em computadores infectados com Moonraker Petya

É interessante que a descriptografia no Moonraker Petya seja muito semelhante ao mesmo processo nos arquivos DLL GreyEnergy no modo "only in memory".


Figura 26. Comparação do código Moonraker Petya descompilado (à esquerda) e do código GreyEnergy (à direita)

Moonraker Petya pode ser distribuído em uma rede local usando o SysInternals PsExec. Programas maliciosos contêm arquivos binários compactados com zlib em seus recursos. Posteriormente, o binário é liberado para o diretório do Windows com o nome do arquivo conhost.exe.

Este programa malicioso é distribuído de forma semelhante NotPetya: enumera os nós da rede que utilizam métodos diferentes ( WNetEnumResourceW, GetIpNetTable, GetExtendedTcpTable, NetServerEnum, TERMSRV-registros usandoCredEnumerateW), conecta-se ao host da rede usando a função WNetAddConnection2We salva o malware como \\%TARGET-HOST%\admin$\%MALWARE%. Depois disso, o Moonraker Petya executa o seguinte comando, que inicia o programa malicioso no computador remoto usando a PsExec redefinida:

C:\Windows\conhost.exe \\%TARGET-HOST% -accepteula -s -d C:\Windows\System32\rundll32.exe "C:\Windows\msvcrt120b.dll", #1 %TIMEOUT% "USER1:PASSWORD1;USER2:PASSWORD2" "%DECRYPTIONKEY%"

É importante observar que o programa malicioso não possui funções de coleta de credenciais usando o Mimikatz e não contém a exploração EternalBlue.

Além dos recursos listados, o Moonraker Petya também suporta criptografia de arquivos. O programa malicioso verifica todos os arquivos nos discos rígidos, após o que tenta criptografá-los usando o algoritmo AES-256. Após a conclusão do processo de criptografia, o malware pode criar um arquivo README.txtcom instruções de pagamento.

A instrução contém uma chave pessoal criptografada usando RSA-2048. Além disso, contém os mesmos endereços de texto e cebola que o Petya Verde original. Parece que os atacantes queriam disfarçar o uso desse malware como um ataque com o Green Petya.


Figura 27. Arquivo leia-me com instruções de pagamento criadas por Moonraker Petya

Como etapa final, o Moonraker Petya tenta reiniciar o computador.

Conclusão


GreyEnergy é uma parte importante do arsenal de um dos grupos mais perigosos de ART que tem atacado alvos ucranianos nos últimos anos. Nós a vemos como a sucessora do BlackEnergy, semelhanças e diferenças estão listadas neste post. As principais razões pelas quais chegamos a essa conclusão são uma estrutura semelhante de malware, uma escolha de objetivos e métodos de trabalho. A transição do BlackEnergy para o GreyEnergy ocorreu no final de 2015 - possivelmente porque os invasores tiveram que atualizar o pacote de malware após aumentar a atenção à infraestrutura do BlackEnergy.

Uma parte interessante do quebra-cabeça é o fato estabelecido de usar o Moonraker Petya em junho de 2016, que, de acordo com nossas estimativas, é o antecessor do programa destrutivo NotPetya. Isso pode indicar que os grupos TeleBots e GreyEnergy estão colaborando ou, pelo menos, compartilhando código e algumas idéias. No entanto, nós os consideramos como grupos separados, cujos objetivos são um pouco diferentes. No momento da redação deste artigo, não vimos as atividades intencionais do TeleBots fora da Ucrânia, ao contrário do GreyEnergy e do BlackEnergy antes dele.

De qualquer forma, os operadores GreyEnergy representam um sério perigo. Continuamos monitorando as atividades da GreyEnergy e TeleBots e recomendamos que usuários privados e corporativos usem os produtos mais avançados para proteger os terminais.

Indicadores de compromisso


Detecção por produtos ESET:


VBA/TrojanDownloader.Agent.EYV
Win32/Agent.SCT
Win32/Agent.SCM
Win32/Agent.SYN
Win64/Agent.SYN
Win32/Agent.WTD
Win32/GreyEnergy
Win64/GreyEnergy
Win32/Diskcoder.MoonrakerPetya.A
PHP/Agent.JS
PHP/Agent.JX
PHP/Agent.KJ
PHP/Agent.KK
PHP/Agent.KL
PHP/Agent.KM
PHP/Agent.KN
PHP/Agent.KO
PHP/Agent.KP
PHP/Agent.KQ
PHP/Agent.KR
PHP/Agent.KS
PHP/Agent.KT
PHP/Agent.KU
PHP/Agent.LC
PHP/Agent.NBP
PHP/Kryptik.AB
PHP/TrojanProxy.Agent.B
ASP/Agent.L
Win64/HackTool.PortScanner.A
Win64/Riskware.Mimikatz.A
Win64/Riskware.Mimikatz.AE
Win64/Riskware.Mimikatz.AH
Win32/Winexe.A
Win64/Winexe.A
Win64/Winexe.B


Documento GreyEnergy:


SHA-1:
177AF8F6E8D6F4952D13F88CDF1887CB7220A645

GreyEnergy mini:


SHA-1:
455D9EB9E11AA9AF9717E0260A70611FF84EF900
51309371673ACD310F327A10476F707EB914E255
CB11F36E271306354998BB8ABB6CA67C1D6A3E24
CC1CE3073937552459FB8ED0ADB5D56FA00BCD43
30AF51F1F7CB9A9A46DF3ABFFB6AE3E39935D82C


Conta-gotas GreyEnergy:


SHA-1:
04F75879132B0BFBA96CB7B210124BC3D396A7CE
69E2487EEE4637FE62E47891154D97DFDF8AAD57
716EFE17CD1563FFAD5E5E9A3E0CAC3CAB725F92
93EF4F47AC160721768A00E1A2121B45A9933A1D
94F445B65BF9A0AB134FAD2AAAD70779EAFD9288
A414F0A651F750EEA18F6D6C64627C4720548581
B3EF67F7881884A2E3493FE3D5F614DBBC51A79B
EBD5DC18C51B6FB0E9985A3A9E86FF66E22E813E
EC7E018BA36F07E6DADBE411E35B0B92E3AD8ABA


DLLs redefiníveis GreyEnergy:


SHA-1:
0B5D24E6520B8D6547526FCBFC5768EC5AD19314
10D7687C44BECA4151BB07F78C6E605E8A552889
2A7EE7562A6A5BA7F192B3D6AED8627DFFDA4903
3CBDC146441E4858A1DE47DF0B4B795C4B0C2862
4E137F04A2C5FA64D5BF334EF78FE48CF7C7D626
62E00701F62971311EF8E57F33F6A3BA8ED28BF7
646060AC31FFDDFBD02967216BC71556A0C1AEDF
748FE84497423ED209357E923BE28083D42D69DE
B75D0379C5081958AF83A542901553E1710979C7
BFC164E5A28A3D56B8493B1FC1CA4A12FA1AC6AC
C1EB0150E2FCC099465C210B528BF508D2C64520
CBB7BA92CDF86FA260982399DAB8B416D905E89B
DF051C67EE633231E4C76EC247932C1A9868C14F
DFD8665D91C508FAF66E2BC2789B504670762EA2
E2436472B984F4505B4B938CEE6CAE26EF043FC7
E3E61DF9E0DD92C98223C750E13001CBB73A1E31
E496318E6644E47B07D6CAB00B93D27D0FE6B415
EDA505896FFF9A29BD7EAE67FD626D7FFA36C7B2
F00BEFDF08678B642B69D128F2AFAE32A1564A90
F36ECAC8696AA0862AD3779CA464B2CD399D8099


DLL GreyEnergy (modo "apenas na memória"):


SHA-1:
0BCECB797306D30D0BA5EAEA123B5BF69981EFF4
11159DB91B870E6728F1A7835B5D8BE9424914B9
6ABD4B82A133C4610E5779C876FCB7E066898380
848F0DBF50B582A87399428D093E5903FFAEEDCD
99A81305EF6E45F470EEE677C6491045E3B4D33A
A01036A8EFE5349920A656A422E959A2B9B76F02
C449294E57088E2E2B9766493E48C98B8C9180F8
C7FC689FE76361EF4FDC1F2A5BAB71C0E2E09746
D24FC871A721B2FD01F143EB6375784144365A84
DA617BC6DCD2083D93A9A83D4F15E3713D365960
E4FCAA1B6A27AA183C6A3A46B84B5EAE9772920B


Moonraker petya


SHA-1:
1AA1EF7470A8882CA81BB9894630433E5CCE4373

Scripts PHP e ASP


SHA-1:
10F4D12CF8EE15747BFB618F3731D81A905AAB04
13C5B14E19C9095ABA3F1DA56B1A76793C7144B9
1BA30B645E974DE86F24054B238FE77A331D0D2C
438C8F9607E06E7AC1261F99F8311B004C23DEC3
4D1C282F9942EC87C5B4D9363187AFDC120F4DC7
4E0C5CCFFB7E2D17C26F82DB5564E47F141300B3
5377ADB779DE325A74838C0815EEA958B4822F82
58A69A8D1B94E751050DECF87F2572E09794F0F8
5DD34FB1C8E224C17DCE04E02A4409E9393BCE58
639BCE78F961C4B9ECD9FE1A8537733388B99857
7127B880C8E31FBEB1D376EB55A6F878BC77B21A
71BA8FE0C9C32A9B987E2BB827FE54DAE905D65E
78A7FBDD6ADF073EA6D835BE69084E071B4DA395
81332D2F96A354B1B8E11984918C43FB9B5CB9DB
8CC008B3189F8CE9A96C2C41F864D019319EB2EE
940DE46CD8C50C28A9C0EFC65AEE7D567117941B
A415E12591DD47289E235E7022A6896CB2BFDE96
D3AE97A99D826F49AD03ADDC9F0D5200BE46AB5E
E69F5FF2FCD18698BB584B6BC15136D61EB4F594
E83A090D325E4A9E30B88A181396D62FEF5D54D5
ECF21EFC09E4E2ACFEEB71FB78CB1F518E1F5724


Scanner de porta personalizado


SHA-1:
B371A5D6465DC85C093A5FB84D7CDDEB1EFFCC56
B40BDE0341F52481AE1820022FA8376E53A20040


Mimikatz


SHA-1:
89D7E0DA80C9973D945E6F62E843606B2E264F7E
8B295AB4789105F9910E4F3AF1B60CBBA8AD6FC0
AD6F835F239DA6683CAA54FCCBCFDD0DC40196BE


Winexe


SHA-1: Aviso: a maioria dos servidores com esses endereços IP fazia parte da rede Tor, ou seja, o uso desses indicadores pode levar a falsos positivos.
0666B109B0128599D535904C1F7DDC02C1F704F2
2695FCFE83AB536D89147184589CCB44FC4A60F3
3608EC28A9AD7AF14325F764FB2F356731F1CA7A
37C837FB170164CBC88BEAE720DF128B786A71E0
594B809343FEB1D14F80F0902D764A9BF0A8C33C
7C1F7CE5E57CBDE9AC7755A7B755171E38ABD70D
90122C0DC5890F9A7B5774C6966EA694A590BD38
C59F66808EA8F07CBDE74116DDE60DAB4F9F3122
CEB96B364D6A8B65EA8FA43EB0A735176E409EB0
FCEAA83E7BD9BCAB5EFBA9D1811480B8CB0B8A3E




O servidor C&C endereça o GreyEnergy mini


https://82.118.236[.]23:8443/27c00829d57988279f3ec61a05dee75a
http://82.118.236[.]23:8080/27c00829d57988279f3ec61a05dee75a
https://88.198.13[.]116:8443/xmlservice
http://88.198.13[.]116:8080/xmlservice
https://217.12.204[.]100/news/
http://217.12.204[.]100/news/
http://pbank.co[.]ua/favicon.ico (IP: 185.128.40.90)


Endereços do servidor GreyEnergy C & C (períodos de atividade e IP)


2015–2016 – 109.200.202.7
2015–2015 – 193.105.134.68
2015–2016 – 163.172.7.195
2015–2016 – 163.172.7.196
2016–2016 – 5.149.248.77
2016–2016 – 31.148.220.112
2016–2016 – 62.210.77.169
2016–2016 – 85.25.211.10
2016–2016 – 138.201.198.164
2016–2017 – 124.217.254.55
2017–2017 – 46.249.49.231
2017–2017 – 37.59.14.94
2017–2017 – 213.239.202.149
2017–2017 – 88.198.13.116
2017–2017 – 217.12.202.111
2017–2017 – 176.31.116.140
2017–2018 – 185.217.0.121
2017–2018 – 178.150.0.200
2018–2018 – 176.121.10.137
2018–2018 – 178.255.40.194
2018–2018 – 193.105.134.56
2018–2018 – 94.130.88.50
2018–2018 – 185.216.33.126

Source: https://habr.com/ru/post/pt426911/


All Articles