Zebrocy: análise dos comandos usados pelo backdoor do grupo Sednit | WeLiveSecurity

Zebrocy: análise dos comandos usados pelo backdoor do grupo Sednit

Pesquisadores da ESET analisam o que acontece depois que o computador de uma vítima começa a executar o novo backdoor propagado pelo grupo de APT Sednit.

Pesquisadores da ESET analisam o que acontece depois que o computador de uma vítima começa a executar o novo backdoor propagado pelo grupo de APT Sednit.

O que acontece quando uma vítima é comprometida por um backdoor? É uma questão difícil que não é possível responder, de forma completa, simplesmente aplicando engenharia reversa ao código. Neste artigo, vamos analisar alguns comandos enviados pelos operadores para os alvos de ataque.

O grupo Sednit – também conhecido como APT28, Fancy Bear, Sofacy ou STRONTIUM – está ativo desde pelo menos 2014 e tem ganhado destaque nos últimos anos.

Recentemente, revelamos a existência de um rootkit do UEFI, chamado LoJax, que atribuímos ao grupo Sednit. Este é o primeiro associado a um grupo de APT, e demonstra que o Sednit teve acesso a ferramentas sofisticadas para realizar operações de espionagem.

Três anos antes, o grupo Sednit lançou novos componentes direcionados a vítimas em vários países do Oriente Médio e da Ásia Central. A partir daí, o número e a diversidade de componentes aumentaram drasticamente. Os pesquisadores da ESET, assim como outros profissionais de outras empresas, documentaram esses componentes. No entanto, neste artigo, vamos nos enfocar no que está por trás do comprometimento, ou seja, o que os operadores fazem quando o sistema da vítima está executando o backdoor.

A isca do urso

No final de agosto de 2018, o grupo Sednit lançou uma campanha de spear phishing (e-mail direcionados), na qual distribuía URLs encurtadas que liberavam a primeira fase dos componentes do Zebrocy. No passado, Sednit usava uma técnica semelhante para campanhas de phishing. No entanto, é incomum que o grupo use essa técnica para entregar diretamente um dos componentes do malware. Anteriormente, o grupo usava exploits para entregar e executar o malware da primeira fase, enquanto nessa campanha o grupo dependia inteiramente do uso de técnicas de engenharia social para enganar suas vítimas com o propósito de que executassem a primeira parte da cadeia. A captura de tela na Figura 1 mostra estatísticas do Bitly para a URL encurtada usada nessa campanha.

Figura 1. Estatísticas da URL do Bitly.

Esse link registrou cerca de 20 cliques na mesma semana em que a URL foi criada, e isso supostamente fez o download do arquivo de destino. Tenha em mente que isso pode significar menos de 20 vítimas, já que as vítimas podem ter clicado na URL duas vezes, ou até mais, pois o resultado não era o que eles esperavam… tal como descreveremos abaixo.

Embora os dados de telemetria da ESET indiquem que essa URL foi distribuída por meio de e-mails de spear phishing, não temos uma amostra desses e-mails. A URL encurtada direciona a vítima para uma URL com base em um IP no qual está o payload armazenado.

Infelizmente, sem a mensagem do e-mail, não sabemos se há alguma instrução para o usuário, se existe alguma outra engenharia social, ou se é baseada somente na curiosidade da vítima. O arquivo contém dois arquivos: o primeiro é um executável, enquanto o segundo é um documento PDF usado como uma isca.

Figura 2. Arquivos extraídos do arquivo (o tradutor do Google sugere “CATÁLOGO – (2018) .exe” e “Pedido 97.pdf” em ucraniano).

Observe que há um erro de digitação no nome do arquivo executável, já que deveria ser “ДОВIДНИК” em vez de “ДОВIДНIК”. Uma vez que o binário é executado, uma caixa de diálogo é aberta pedindo para digitar uma senha. O resultado da validação da senha sempre será errado, mas após a tentativa de validação aparente, o documento PDF usado como uma isca é aberto. Este documento parece estar vazio, mas o downloader, que está escrito em Delphi, continua rodando em segundo plano. O endereço IP também é usado na URL do código no primeiro downloader binário.

O covil do urso

O downloader de Fase-1 irá baixar e executar um novo downloader, escrito em C ++, não muito diferente de outros downloaders do Zebrocy. Novamente, este downloader é tão simples quanto os outros downloaders do Zebrocy. Cria um ID e baixa um novo e interessante backdoor (desta vez) escrito em Delphi.

Como explicamos em nosso artigo mais recente sobre o Zebrocy, a configuração do backdoor é armazenada na seção de recursos e é dividida em quatro blobs criptografados com código hexadecimal. Esses blobs contêm as diferentes partes da configuração.

Figura 3. Resumo da seção de recursos.

Uma vez que o backdoor envia informações básicas sobre o novo sistema comprometido, os operadores assumem o controle do backdoor e imediatamente começam a enviar comandos para ele.

Portanto, o tempo que decorre entre o momento em que a vítima executa o downloader e os operadores enviam os primeiros comandos é de apenas alguns minutos.

Como o urso caça

Nesta seção, descrevemos com mais detalhes os comandos que os operadores executam manualmente através do backdoor Delphi.

Os comandos disponíveis estão localizados na configuração de um dos blobs acima mencionados (o blob “comando” na Figura 3). O número de comandos suportados aumentou com o tempo, com mais de 30 na última versão do backdoor. Como não identificamos um padrão na ordem em que os comandos são invocados, acreditamos que os operadores os executam manualmente.

O primeiro conjunto de comandos coleta informações sobre o computador e o ambiente da vítima:

CommandsArguments
SCREENSHOTNone
SYS_INFONone
GET_NETWORKNone
SCAN_ALL None

Os comandos acima são comumente executados assim que os operadores se conectam a um novo backdoor ativado. Eles não apresentam nenhum argumento e são fáceis de entender. Outros comandos que foram comumente vistos e que são executados logo após a ativação desses backdoors, estão listados abaixo:

CommandsArguments
REG_GET_KEYS_VALUESHKEY_CURRENT_USER
Software\Microsoft\Windows\CurrentVersion
DOWNLOAD_DAY(30)c:\*.doc;*.docx;*.xls;*.xlsx;*.ppt;*.pptx;*.rtf;*.tif;*.tiff;*.jpg;*.jpeg;
*.bmp;*.rar;*.zip;*.pdf;*.KUM;*.kum;*.tlg;*.TLG;*.sbx;*.crf;*.hse;*.hsf;*.lhz;

d:\*.doc;*.docx;*.xls;*.xlsx;*.ppt;*.pptx;*.rtf;*.tif;*.tiff;*.jpg;*.jpeg;
*.bmp;*.rar;*.zip;*.pdf;*.KUM;*.kum;*.tlg;*.TLG;*.sbx;*.crf;*.hse;*.hsf;*.lhz;
DOWNLOAD_DAY(1)
c:\*.doc;*.docx;*.xls;*.xlsx;*.ppt;*.pptx;*.rtf;*.tif;*.tiff;*.jpg*.jpeg
*.bmp*.rar;*.zip;*.pdf;*.KUM;*.kum;*.tlg;*.TLG;*.sbx;*.crf;*.hse;*.hsf;

d:\*.doc;*.docx;*.xls;*.xlsx;*.ppt;*.pptx;*.rtf;*.tif;*.tiff;*.jpg*.jpeg
*.bmp*.rar;*.zip;*.pdf;*.KUM;*.kum;*.tlg;*.TLG;*.sbx;*.crf;*.hse;*.hsf;
CMD_EXECUTEecho %APPDATA%
ipconfig /all
netstat -aon
CMD_EXECUTEwmic process get Caption,ExecutablePath
reg query
"HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /s

Aqueles que já leram nossos artigos anteriores sobre o Zebrocy notarão que, mais ou menos, o mesmo tipo de informação é enviada repetidas vezes nos estágios anteriores. Esta informação é solicitada dentro de alguns minutos após o comprometimento inicial e a quantidade de dados que o operador terá que lidar é suficiente.

A fim de coletar ainda mais informações, a cada determinado período de tempo, os operadores do Zebrocy fazem o upload e usam dumpers nos computadores das vítimas. Os dumpers atuais têm certas semelhanças com aqueles que foram usados ​​anteriormente pelo grupo. Nesse caso, apontam para navegadores como Yandex, Chromium, 7Star Browser (um navegador baseado no Chromium) e CentBrowser, bem como versões anteriores do Microsoft Outlook de 1997 a 2016.

CommandArguments
UPLOAD_AND_EXECUTE_FILEC:\ProgramData\Office\MS\msoffice.exe
[…]
4D5A9000…

Esses dumpers criam arquivos de log que indicam a presença ou ausência de possíveis bancos de dados para dumpear.

CommandArguments
DOWNLOAD_LISTC:\ProgramData\Office\MS\out.txt
C:\ProgramData\Office\MS\text.txt

Os dumpers a seguir contêm as seguintes rotas quando não há bancos de dados para dumpear.

%LOCALAPPDATA%\Yandex\YandexBrowser\User Data\Default\Login Data not found
%LOCALAPPDATA%\Chromium\User Data\Default\Login Data not found
%LOCALAPPDATA%\7Star\7Star\User Data\Default\Login Data not found
%LOCALAPPDATA%\CentBrowser\User Data\Default\Login Data not found

Esses dumpers são rapidamente removidos depois de terem feito o seu trabalho. Além disso, o backdoor contém uma lista de nomes de arquivos relacionados às credenciais do software mostrado abaixo (nomes de bancos de dados):

key3.dbFirefox private keys (now named key4.db)
cert8.dbFirefox certificate database
logins.jsonFirefox encrypted password database
account.cfnThe Bat! (email client) account credentials
wand.datOpera password database

Os operadores se preocupam em recuperar esses bancos de dados se estiverem presentes nos computadores das vítimas.

CommandArguments

DOWNLOAD_LIST
%APPDATA%\The Bat!\Account.CFN
%APPDATA%\The Bat!\[REDACTED]\Account.CFN

Os operadores recuperam esses arquivos na máquina usando o comando DOWNLOAD_LIST. Este comando pode ser usado quando os operadores estão cientes da presença de arquivos interessantes no computador.

Finalmente, dependendo de quão interessante é a vítima, os operadores de malware podem implantar outro backdoor personalizado. Este backdoor é executado usando o comando CMD_EXECUTE.

Command Arguments
CMD_EXECUTE

Existem alguns fatos interessantes aqui. Primeiro, eles usam o sequestro de objetos COM para fazer o malware persistir no sistema, mesmo que o backdoor personalizado seja instalado por apenas algumas horas. Em segundo lugar, a string codificada em hex é o C&C usado pelo backdoor personalizado, enquanto que no backdoor no Delphi o C&C é embutido na configuração.

Os dois backdoors no Delphi são bastante semelhantes, mas eles contêm essas configurações interessantes:

 Delphi backdoorDownloaded Delphi backdoor
Delphi compiler version14.0-15.032.0
32/64-bit32-bit64-bit
Configuration locationresource sectionno config (C&C is passed as an argument)
Number of commands53
Encryption algorithmAES ECBcustom
Lifetime on the computera few daysa few hours

Mais uma vez, não está muito claro qual é o propósito deste backdoor personalizado. A taxa de detecção é definitivamente baixa em comparação com o backdoor “usual”. O curto período de tempo em que esse backdoor está dentro do sistema de forma operacional torna difícil a recuperação. Quando seus operadores concluem suas ações maliciosas, eles rapidamente o eliminam.

Resumo

Observe os comandos usados ​​ativamente pelos operadores deste backdoor é bastante interessante. Eles estão coletando uma quantidade considerável de informações do alvo comprometido e não parecem se preocupar com a duplicação de dados. Isso mostra uma grande lacuna entre a estratégia de desenvolvimento e o que os operadores fazem na prática. Esses backdoors com configurações personalizadas e módulos são implantados com muito cuidado, o que indica certas precauções para evitar cair nas mãos dos pesquisadores.

O primeiro conjunto de comandos é o mesmo e é executado por um período de tempo muito curto, o que gera outra pergunta: é automatizado?

Indicadores de Comprometimento (IoCs)

Distribution URL
http://45.124.132[.]127/DOVIDNIK - (2018).zip
C&C server
http://45.124.132[.]127/action-center/centerforserviceandaction/service-and-action.php
SHA-1ESET detection names
48f8b152b86bed027b9152725505fbf4a24a39fdWin32/TrojanDownloader.Sednit.CMT
1e9f40ef81176190e1ed9a0659473b2226c53f57Win32/HackTool.PSWDump.D
bfa26857575c49abb129aac87207f03f2b062e07Win32/PSW.Agent.OGE

Técnicas do MITRE ATT&CK

TacticIDNameDescription
Initial AccessT1192Spearphishing LinkSpearphishing emails using a URL-shortener service to trick the victim into clicking on a link to a zip file containing malicious files.
ExecutionT1204User ExecutionTricks users into running an executable with an icon that looks like a Microsoft Word document.
T1085Rundll32rundll32.exe has been used to run a new, downloaded, malicious DLL.
T1047Windows Management InstrumentationWMI commands to gather victim host details.
T1053Scheduled TaskSchedule task to execute malicious binaries.
PersistenceT1060Registry Run Keys / Startup FolderRegistry key HKCU\Software\Microsoft\CurrentVersion\Run\ used for persistence.
T1122Component Object Model HijackingCOM hijacking for persistence.
Defense EvasionT1107File DeletionDeletes files (binaries and files created) after usage.
T1089Disabling Security ToolsKills processes
DiscoveryT1012Query RegistryRegistry keys enumeration
T1057Process DiscoveryLists running processes
T1082System Information DiscoveryUses systeminfo command to gather information about the victim.
T1083File and Directory DiscoveryUses echo ENV command to list the content of a directory.
CollectionT1005Data from Local SystemScans files that match extensions listed in the malware.
T1039Data from Network Shared DriveEnumerates remote and local drives and then exfiltrates files matching specific extensions.
T1025Data from Removable MediaEnumerates remote and local drives and then exfiltrates files matching specific extensions.
T1074Data StagedCreates file containing path of all files to exfiltrate.
T1056Input CaptureKeylogger feature.
T1113Screen CaptureScreenshot feature.
ExfiltrationT1020Automated ExfiltrationAutomatically prepare a file with all file paths to retrieve and send it.
T1022Data EncryptedData sent are hex-encoded, encrypted with a known algorithm or a custom one.
T1041Exfiltration Over Command and Control ChannelData are exfiltrated to a C&C server.
Command And ControlT1043Commonly Used PortDownloaders and backdoors use ports 80 or 443 to communicate with the C&C server.
T1024Custom Cryptographic ProtocolData sent are hex encoded, encrypted with AES or a custom algorithm.
T1132Data EncodingData sent are hex-encoded, encrypted with a known algorithm or a custom one.
T1001Data ObfuscationData sent are hex-encoded, encrypted with a known algorithm or a custom one.
T1008Fallback ChannelsA fallback C&C server is embedded in the configuration.
T1079Multilayer EncryptionData sent are hex-encoded, encrypted with a known algorithm or a custom one.
T1071Standard Application Layer ProtocolHTTP, HTTPS are used to communicate.
T1032Standard Cryptographic ProtocolData sent are hex-encoded, encrypted with a known algorithm or a custom one.

Discussão