A ESET colaborou com a Polícia Federal do Brasil na desarticulação da botnet Grandoreiro, fornecendo análises técnicas, informações estatísticas e nomes de domínio e endereços IP de servidores de comando e controle (C&C) conhecidos. Graças a uma falha de design no protocolo de rede do Grandoreiro, os pesquisadores da ESET também foram capazes de observar sua vitimologia. 

Os sistemas automatizados da ESET processaram dezenas de milhares de amostras do Grandoreiro. O Algoritmo de Geração de Domínio (DGA) que o malware tem usado desde outubro de 2020 produz um domínio primário e, opcionalmente, vários domínios à prova de falhas, por dia. O DGA é a única maneira pela qual o Grandoreiro sabe como se reportar a um servidor de C&C. Além da data atual, o DGA também aceita configurações estáticas - observamos 105 configurações desse tipo no momento em que este artigo foi escrito.

Os operadores do Grandoreiro se aproveitaram de provedores de nuvem, como Azure e AWS, para hospedar sua infraestrutura de rede. Os pesquisadores da ESET forneceram dados cruciais para identificar as contas responsáveis pela configuração desses servidores. Uma investigação mais aprofundada da Polícia Federal brasileira levou à identificação e à prisão das pessoas que controlavam esses servidores.

Nesta publicação, analisamos como obtivemos os dados para ajudar a polícia a executar essa operação de interrupção.

Histórico

O Grandoreiro é um dos diversos trojans bancários latino-americanos. Ele está ativo desde pelo menos 2017 e os pesquisadores da ESET o têm acompanhado de perto desde então. O Grandoreiro tem como alvo o Brasil e o México e, desde 2019, também a Espanha (veja a Figura 1). Embora a Espanha tenha sido o país mais visado entre 2020 e 2022, em 2023 observamos uma clara mudança de foco para o México e a Argentina, sendo este último um novo país para o Grandoreiro.

 

Grandoreiro-Figure-01-Heatmap
Figura 1: Taxa de detecção do Grandoreiro (dados de janeiro de 2020).

Em termos funcionais, o Grandoreiro não mudou muito desde nossa última publicação em 2020. Apresentamos uma breve visão geral do malware nesta seção e nos aprofundamos nas poucas alterações, principalmente na nova lógica DGA, logo abaixo.

Quando um trojan bancário compromete um computador com sucesso, ele normalmente emite uma solicitação HTTP GET para um servidor remoto, enviando algumas informações básicas sobre o computador comprometido. Embora as versões anteriores do Grandoreiro incluíssem essa função, os desenvolvedores acabaram decidindo removê-la.

O Grandoreiro monitora periodicamente a janela em primeiro plano para encontrar uma que pertença a um processo de navegador da Web. Quando essa janela é encontrada e seu nome corresponde a qualquer cadeia de caracteres em uma lista criptografada de cadeias de caracteres relacionadas a bancos, então, e somente então, o malware inicia a comunicação com seu servidor C&C, enviando solicitações pelo menos uma vez por segundo.

O operador precisa interagir manualmente com a máquina comprometida para roubar o dinheiro da vítima. O malware permite:

  • Bloquear a tela da vítima;
  • Registrar as teclas digitadas;
  • Simular a atividade do mouse e do teclado;
  • Compartilhar a tela da vítima;
  • Exibir janelas pop-up falsas.

O Grandoreiro está passando por um desenvolvimento rápido e constante. Às vezes, vemos várias novas compilações por semana, o que torna difícil manter o controle. Para demonstrar isso, em fevereiro de 2022, os operadores do Grandoreiro adicionaram um identificador de versão aos binários. A Figura 2 mostra a rapidez com que o identificador de versão mudou. Em média, houve uma nova versão a cada quatro dias entre fevereiro de 2022 e junho de 2022. No intervalo de um mês entre 24 de maio de 2022 e 22 de junho de 2022, continuamos vendo novas amostras com tempos de compilação de PE progressivos, mas sem o identificador de versão. Em 27 de junho de 2022, o identificador de versão foi alterado para V37 e não o vimos mudar desde então, o que nos leva a concluir que esse recurso foi removido.

Grandoreiro-Figure-02-Timeline
Figura 2. Histórico de versões do Grandoreiro entre fevereiro e junho de 2022.

Os trojans bancários latino-americanos têm muitos pontos em comum. O Grandoreiro é semelhante a outros deles principalmente na funcionalidade central óbvia e no agrupamento de seus downloaders em instaladores MSI. No passado, observamos alguns casos em que seus downloaders eram compartilhados com o Mekotio e o Vadokrist, embora não nos últimos dois anos. O trojan bancário Grandoreiro se distinguiu das outras famílias principalmente por seu mecanismo exclusivo de preenchimento binário, que incha maciçamente o executável final (descrito em nossa publicação em 2020). Com o tempo, os operadores do Grandoreiro também adicionaram essa técnica antianálise aos seus downloaders. Para nossa surpresa, no terceiro trimestre de 2023, esse recurso desapareceu completamente dos binários do trojan bancário e do downloader, e não o observamos desde então.

Desde fevereiro de 2022, estamos monitorando uma segunda variante do Grandoreiro que difere significativamente da principal. Nós a vimos, em pequenas campanhas, em março, maio e junho de 2022. Com base no fato de que a grande maioria dos domínios em seus servidores C&C não são resolvidos, que seus principais recursos mudam com bastante frequência e que seu protocolo de rede não funciona adequadamente, acreditamos firmemente que se trata de um trabalho em andamento, portanto, vamos nos concentrar na variante principal nesta postagem do blog.

Monitoramento a longo prazo do Grandoreiro

Os sistemas da ESET, projetados para o rastreamento automatizado de longo prazo de famílias de malware selecionadas, têm monitorado o Grandoreiro desde o final de 2017, extraindo informações de versão, servidores C&C, alvos e, desde o final de 2020, configurações de DGA.

Monitoramento do DGA

A configuração DGA é codificada no binário do Grandoreiro. Cada configuração pode ser referenciada por uma string que chamamos de dga_id. Ao usar configurações diferentes para o DGA, você obtém domínios diferentes. Mais informações sobre o mecanismo DGA mais adiante.

A ESET extraiu um total de 105 dga_ids diferentes das amostras do Grandoreiro conhecidas por nós. 79 dessas configurações geraram pelo menos uma vez um domínio que foi resolvido para um endereço IP de um servidor C&C ativo durante o curso de nosso rastreamento.

Os domínios gerados são registrados por meio do serviço de DNS dinâmico (DDNS) do No-IP. Os operadores do Grandoreiro se aproveitam do serviço para alterar frequentemente seus domínios para que correspondam ao DGA e, dessa forma, alterar os endereços IP à vontade. A grande maioria dos endereços IP para os quais esses domínios são resolvidos é fornecida por provedores de nuvem, principalmente AWS e Azure. A Tabela 1 ilustra algumas estatísticas sobre os endereços IP usados para os servidores C&C do Grandoreiro.

Tabela 1. Informações estatísticas sobre os endereços IP de C&C do Grandoreiro desde que iniciamos nosso rastreamento.

Information Average Minimum Maximum
Number of new C&C IP addresses per day 3 1 34
Number of active C&C IP addresses per day 13 1 27
Lifespan of C&C IP address (in days) 5 1 425

Logo depois que começamos a rastrear os domínios gerados e seus endereços IP associados, começamos a notar que muitos domínios gerados por DGAs com configurações diferentes são resolvidos para o mesmo endereço IP (conforme ilustrado na Figura 3). Isso significa que, em um determinado dia, as vítimas comprometidas pelas amostras de Grandoreiro com diferentes dga_id estavam todas se conectando ao mesmo servidor C&C. Esse fenômeno não foi uma coincidência: nós o observamos quase diariamente durante nosso rastreamento.

Grandoreiro-Figure-03-Overlap
Figura 3. Esquema de um IP sobreposto em duas configurações diferentes de DGA da Grandoreiro.

Em ocasiões muito mais raras, também observamos que um endereço IP era reutilizado por um dga_id diferente alguns dias depois. Só que, dessa vez, os parâmetros que o Grandoreiro usou para estabelecer uma conexão (explicados mais adiante no texto) também mudaram. Isso significa que, nesse meio tempo, o servidor C&C deve ter sido reinstalado ou reconfigurado.

Nossa suposição inicial era de que o dga_id era exclusivo para cada configuração de DGA. Posteriormente, isso foi comprovado como incorreto: observamos dois conjuntos diferentes de configurações que compartilham o mesmo dga_id. A Tabela 2 mostra "jjk" e "gh", em que "jjk" e "jjk(2)" correspondem a duas configurações diferentes de DGA, assim como "gh" e "gh(2)".

A Tabela 2 mostra os grupos que pudemos observar. Todas as configurações de DGA que compartilhavam pelo menos um endereço IP estão no mesmo cluster e seus dga_ids associados estão listados. Os grupos que representam menos de 1% de todas as vítimas não são levados em consideração.

Tabela 2. Clusters de DGA do Grandoreiro Clusters de DGA do Grandoreiro.

Cluster ID

dga_id list

Cluster size

% of all C&C servers

% of all victims

1

b, bbh, bbj, bbn, bhg, cfb, cm, cob, cwe, dee, dnv, dvg, dzr, E, eeo, eri, ess, fhg, fox, gh, gh(2), hjo, ika, jam, jjk, jjk(2), JKM, jpy, k, kcy, kWn, md7, md9, MRx, mtb, n, Nkk, nsw, nuu, occ, p, PCV, pif, rfg, rox3, s, sdd, sdg, sop, tkk, twr, tyj, u, ur4, vfg, vgy, vki, wtt, ykl, Z, zaf, zhf

62

93.6%

94%

2

jl2, jly

2

2.4%

2.5%

3

ibr

1

0.8%

1.6%

4

JYY

1

1.6%

1.1%

O maior cluster contém 78% de todos os dga_ids ativos. Ele é responsável por 93,6% de todos os endereços IP de servidores C&C e 94% de todas as vítimas que vimos. O único outro cluster que consiste em mais de 1 dga_id é o cluster 2.

Algumas fontes afirmam que o Grandoreiro opera como malware como serviço (MaaS). O back-end do servidor C&C do Grandoreiro não permite a atividade simultânea de mais de um operador ao mesmo tempo. Com base na Tabela 2, a grande maioria dos endereços IP produzidos pelo DGA pode ser agrupada sem um padrão de distribuição claro. Por fim, considerando os altos requisitos de largura de banda do protocolo de rede (que discutiremos no final do blogpost), acreditamos que os diferentes servidores C&C são usados como um sistema primitivo de balanceamento de carga e que é mais provável que o Grandoreiro seja operado por um único grupo ou por alguns grupos que cooperam estreitamente entre si.

Monitoramento do C&C

A implementação do protocolo de rede do Grandoreiro permitiu que os pesquisadores da ESET pudessem espiar por trás da cortina e dar uma olhada na vitimologia. Os servidores do C&C do Grandoreiro fornecem informações sobre as vítimas conectadas no momento da solicitação inicial para cada nova vítima conectada. Dito isso, os dados são distorcidos pelo número de solicitações, seus intervalos e a validade dos dados fornecidos pelos servidores do C&C.

Cada vítima conectada ao servidor C&C do Grandoreiro é identificada por uma login_string, uma string que o Grandoreiro constrói ao estabelecer a conexão. Construções diferentes usam formatos diferentes e formatos diferentes contêm informações diferentes. A Tabela 3 resume as informações que podem ser obtidas da login_string. A coluna Ocorrência mostra uma porcentagem de todos os formatos que vimos e que contêm o tipo de informação correspondente.

Tabela 3: Resumo das informações que podem ser obtidas do login_string de uma vítima do Grandoreiro.

Information

Occurrence

Description

Operating system

100%

OS of victim’s machine.

Computer name

100%

Name of victim’s machine.

Country

100%

Country that the Grandoreiro sample targets (hardcoded in the malware sample).

Version

100%

Version (version_string) of the Grandoreiro sample.

Bank codename

92%

Codename of the bank that triggered the C&C connection (assigned by Grandoreiro’s developers).

Uptime

25%

Time (in hours) that the victim’s machine has been running.

Screen resolution

8%

Screen resolution of the victim’s main monitor.

Username

8%

Username of the victim.

Três dos campos merecem mais explicações. O país é uma cadeia de caracteres codificada no binário do Grandoreiro em vez de informações obtidas por meio dos serviços apropriados. Portanto, ele serve mais como o país previsto da vítima.

O codinome do banco é uma cadeia de caracteres que os desenvolvedores do Grandoreiro associam a um determinado banco ou outra instituição financeira. A vítima visitou o site desse banco, o que acionou a conexão C&C.

Version_string é uma cadeia de caracteres que identifica uma versão específica do Grandoreiro. Ela é codificada no malware e contém uma cadeia de caracteres que identifica uma série de compilação específica, uma versão (discutida na introdução) e um registro de data e hora. A Tabela 4 ilustra os diferentes formatos e as informações que eles contêm. Observe que alguns dos registros de data e hora contêm apenas o mês e o dia, enquanto outros também contêm o ano.

Tabela 4: Lista dos diferentes formatos de version_string e sua análise.

Version string

Build ID

Version

Timestamp

DANILO

DANILO

N/A

N/A

(V37)(P1X)1207

P1X

V37

12/07

(MX)2006

MX

N/A

20/06

fox50.28102020

fox50

N/A

28/10/2020

MADMX(RELOAD)EMAIL2607

MADMX(RELOAD)EMAIL

N/A

26/07

Você pode se sentir tentado a dizer que a ID de compilação realmente identifica o operador. Entretanto, não acreditamos que esse seja o caso. O formato dessa string é muito caótico, às vezes referindo-se apenas a um mês em que o binário provavelmente foi compilado (como (AUGUST)2708). Além disso, acreditamos firmemente que P1X se refere a um console usado pelo(s) operador(es) do Grandoreiro chamado PIXLOGGER.

Rastreamento do servidor C&C: conclusões

Nesta seção, nos enfocamos no que descobrimos ao consultar os servidores C&C. Todos os dados estatísticos nesta seção são obtidos diretamente dos servidores C&C do Grandoreiro, não da telemetria da ESET.

Amostras antigas ainda estão ativas

Todas as login_string que examinamos contêm a version_string e a grande maioria delas contém as informações de registro de data e hora (consulte a Tabela 3 e a Tabela 4). Embora muitas delas contenham apenas o dia e o mês, como parece ser a escolha do desenvolvedor às vezes, a amostra mais antiga relatada tinha o carimbo de data/hora de 15/09/2020, ou seja, da época em que esse DGA foi introduzido pela primeira vez no Grandoreiro. A amostra mais recente tem data de 23/12/2023.

Distribuição do sistema operacional

Como todos os formatos login_string contêm informações sobre o sistema operacional, podemos ter uma visão precisa de quais sistemas operacionais foram vítimas, conforme ilustrado na Figura 4.

Grandoreiro-Figure-04-OperatingSystems
Figura 4. Distribuição dos sistemas operacionais entre as vítimas do Grandoreiro.

Distribuição por país (prevista)

Já mencionamos que o Grandoreiro usa um valor codificado em vez de consultar um serviço para obter o país da vítima. A Figura 5 mostra a distribuição que observamos.

Grandoreiro-Figure-05-Countries
Figura 5. Distribuição dos códigos de país entre as vítimas do Grandoreiro.

Essa distribuição é esperada do Grandoreiro. Curiosamente, ela não se correlaciona com o mapa apresentado na Figura 1. A explicação mais lógica é que as construções não são marcadas para se assemelharem aos alvos pretendidos. Por exemplo, o aumento de ataques na Argentina não se reflete de forma alguma na marcação hardcoded. O Brasil é responsável por quase 41% de todas as vítimas, seguido pelo México, com 30%, e pela Espanha, com 28%. Argentina, Portugal e Peru respondem por menos de 1%. Curiosamente, vimos algumas vítimas (menos de 10) marcadas como PM (St. Pierre e Miquelon), GR (Grécia) ou FR (França). Acreditamos que esses são erros de digitação ou têm outros significados, em vez de apontar para esses países.

Observe também que, embora Grandoreiro tenha adicionado alvos de muitos países fora da América Latina já em 2020, observamos poucas ou nenhuma campanha direcionada a esses países, e a Figura 5 corrobora isso.

Número de vítimas

Observamos que o número médio de vítimas conectadas em um dia é de 563. No entanto, esse número certamente contém duplicatas, pois se uma vítima permanecer conectada por um longo período, o que observamos acontecer com frequência, o servidor C&C do Grandoreiro a informará em várias solicitações.

Para resolver esse problema, definimos uma vítima exclusiva como aquela com um conjunto exclusivo de características de identificação (como nome do dispositivo, nome de usuário etc.), omitindo aquelas que estão sujeitas a alterações (como tempo de atividade). Assim, obtivemos uma média de 551 vítimas exclusivas conectadas por dia.

Levando em conta que observamos vítimas se conectando constantemente aos servidores de C&C por mais de um ano, calculamos uma média de 114 novas vítimas exclusivas se conectando aos servidores de C&C todos os dias. Chegamos a esse número descartando as vítimas únicas que havíamos observado anteriormente.

O funcionamento interno do Grandoreiro

Vamos nos concentrar, em profundidade, nos dois recursos mais importantes do Grandoreiro: o DGA e o protocolo de rede.

DGA

As operadoras do Grandoreiro implementaram vários tipos de DGA ao longo dos anos, sendo que o mais recente apareceu em julho de 2020. Embora tenhamos observado algumas pequenas alterações, o núcleo do algoritmo não mudou desde então.

O DGA usa uma configuração específica que é codificada no binário, armazenada como várias cadeias de caracteres. A Figura 6 mostra uma dessas configurações (com dga_id "bbj"), reformatada em JSON para facilitar a leitura.

Grandoreiro-Figure-06-DgaConfig
Figura 6. Configuração do DGA Grandoreiro, reformatada em JSON.

Na grande maioria dos casos, o campo base_domain é freedynamicdns.org ou zapto.org. Como mencionado acima, o Grandoreiro usa o No-IP para o registro de seus domínios. O campo base64_alpha corresponde ao alfabeto base64 personalizado usado pelo DGA. O campo month_substitution é usado para substituir um número de mês por um caractere.

A tabela dga_table é a parte principal da configuração. Ela consiste em 12 linhas, cada uma com 35 campos delimitados por |. A primeira entrada em cada linha é o dga_id. A segunda e a última entradas representam o mês ao qual a linha se destina. Os 32 campos restantes representam, cada um, um valor para um dia diferente do mês (deixando pelo menos um campo sem uso).

A lógica do DGA é mostrada na Figura 7. Primeiro, o algoritmo seleciona a linha correta e a entrada correta dela, tratando-a como uma chave de quatro bytes. Em seguida, ele formata a data atual em uma cadeia de caracteres e a criptografa com a chave usando um XOR simples. Em seguida, ele prefixa o dga_id ao resultado, codifica o resultado usando base64 com um alfabeto personalizado e remove qualquer preenchimento = caracteres. O resultado final é o subdomínio que, juntamente com base_domain, será usado como o servidor C&C para o dia atual. A parte destacada em vermelho é um mecanismo à prova de falhas e discutiremos isso a seguir.

Grandoreiro-Figure-07-DgaAlgo
Figura 7: Cálculo do DGA de Grandoreiro reimplementado em Python.

O Grandoreiro implementou, em algumas versões, um mecanismo à prova de falhas para quando o domínio principal não for resolvido. Esse mecanismo não está presente em todas as versões e sua lógica foi alterada algumas vezes, mas a ideia básica é ilustrada na Figura 7. Ele usa uma configuração que é constante em todas as versões. Ele usa uma configuração que é constante em todas as amostras que analisamos e que pode ser gerada pelo código simples mostrado na Figura 8.

O algoritmo à prova de falhas usa uma parte do subdomínio principal do C&C. Em seguida, ele itera sobre todas as entradas de configuração, criptografa-as usando XOR e adiciona um prefixo, semelhante à parte do algoritmo principal.

Grandoreiro-Figure-08-DgaConfigBackup
Figura 8. Gerador de configuração DGA à prova de falhas reimplementado em Python.

Desde setembro de 2022, começamos a observar amostras usando um DGA ligeiramente modificado. O algoritmo permanece quase idêntico, mas, em vez de codificar o subdomínio com base 64 na etapa final, é adicionado um prefixo codificado. De acordo com nosso monitoramento, esse método se tornou dominante desde julho de 2023, aproximadamente.

Protocolo de rede

O Grandoreiro usa o RTC Portal, um conjunto de componentes Delphi criados com base no RealThinClient SDK que é construído com base no HTTP(S). O RTC Portal foi descontinuado em 2017 e seu código-fonte foi publicado no GitHub. Essencialmente, o RTC Portal permite que um ou mais Controles acessem remotamente um ou mais Hosts. Os hosts e os controles são separados por um componente de mediação chamado Gateway.

Os operadores do Grandoreiro usam um console (atuando como um Control) para se conectar ao servidor C&C (atuando como um Gateway) e se comunicar com as máquinas comprometidas (atuando como Hosts). Para se conectar ao Gateway, são necessários três parâmetros: uma chave secreta, o comprimento da chave e um nome de usuário.

A chave secreta é usada para criptografar a solicitação inicial enviada ao servidor. Portanto, o servidor também precisa conhecer a chave secreta para descriptografar a solicitação inicial do cliente.

O comprimento da chave determina o comprimento das chaves para criptografar o tráfego, estabelecido durante o handshake. O tráfego é criptografado usando uma cifra de fluxo personalizada. Duas chaves diferentes são estabelecidas: uma para o tráfego de entrada e outra para o tráfego de saída.

A chave pode ser qualquer cadeia de caracteres. O gateway exige que cada componente conectado tenha um nome de usuário exclusivo.

O Grandoreiro usa duas combinações diferentes de chave secreta e valores de comprimento de chave, sempre codificados em binário, e já discutimos a string login_string usada como login.

A documentação do RTC indica que ele só pode lidar com um número limitado de conexões por vez. Considerando que cada host conectado precisa enviar pelo menos uma solicitação por segundo, caso contrário sua conexão será cortada, acreditamos que o motivo pelo qual o Grandoreiro usa vários servidores C&C é uma tentativa de não sobrecarregar nenhum deles.

Conclusão

Nesta publicação, demos uma olhada por trás da cortina de nosso monitoramento de longo prazo do Grandoreiro, que ajudou a tornar possível essa operação de interrupção da ameaça. Descrevemos em detalhes como funciona o DGA do Grandoreiro, quantas configurações diferentes existem simultaneamente e como conseguimos detectar muitas sobreposições de endereços IP entre elas.

Também fornecemos informações estatísticas obtidas dos servidores C&C. Essas informações fornecem uma excelente visão geral da vitimização e do direcionamento, o que nos permite ver o nível real de impacto.

A operação de desarticulação liderada pela Polícia Federal brasileira teve como alvo indivíduos que se acredita estarem no topo da hierarquia operacional do Grandoreiro. A ESET continuará rastreando outros trojans bancários latino-americanos, sempre atenta a qualquer atividade do Grandoreiro após essa operação de interrupção.

Para qualquer dúvida sobre nossa pesquisa publicada no WeLiveSecurity, entre em contato conosco através do e-mail threatintel@eset.com.

IoCs

Arquivos

SHA-1

Filename

Detection

Description

FB32344292AB36080F2D040294F17D39F8B4F3A8

Notif.FEL.RHKVYIIPFVBCGQJPOQÃ.msi

Win32/Spy.Grandoreiro.DB

MSI downloader

08C7453BD36DE1B9E0D921D45AEF6D393659FDF5

RYCB79H7B-7DVH76Y3-67DVHC6T20-CH377DFHVO-6264704.msi

Win32/Spy.Grandoreiro.DB

MSI downloader

A99A72D323AB5911ADA7762FBC725665AE01FDF9

pcre.dll

Win32/Spy.Grandoreiro.BM

Grandoreiro

4CDF7883C8A0A83EB381E935CD95A288505AA8B8

iconv.dll

Win32/Spy.Grandoreiro.BM

Grandoreiro (with binary padding)

Rede

IP

Domain

Hosting provider

First seen

Details

20.237.166[.]161

DGA‑generated

Azure

2024‑01‑12

C&C server.

20.120.249[.]43

DGA‑generated

Azure

2024‑01‑16

C&C server.

52.161.154[.]239

DGA‑generated

Azure

2024‑01‑18

C&C server.

167.114.138[.]249

DGA‑generated

OVH

2024‑01‑02

C&C server.

66.70.160[.]251

DGA‑generated

OVH

2024‑01‑05

C&C server.

167.114.4[.]175

DGA‑generated

OVH

2024‑01‑09

C&C server.

18.215.238[.]53

DGA‑generated

AWS

2024‑01‑03

C&C server.

54.219.169[.]167

DGA‑generated

AWS

2024‑01‑09

C&C server.

3.144.135[.]247

DGA‑generated

AWS

2024‑01‑12

C&C server.

77.246.96[.]204

DGA‑generated

VDSina

2024‑01‑11

C&C server.

185.228.72[.]38

DGA‑generated

Master da Web

2024‑01‑02

C&C server.

62.84.100[.]225

N/A

VDSina

2024‑01‑18

Distribution server.

20.151.89[.]252

N/A

Azure

2024‑01‑10

Distribution server.

Técnicas MITRE ATT&CK

Essa tabela foi criada usando a versão 14 da estrutura MITRE ATT&CK.

Tactic

ID

Name

Description

Resource Development

T1587.001

Develop Capabilities: Malware

Grandoreiro developers develop their own custom downloaders.

Initial Access

T1566

Phishing

Grandoreiro spreads through phishing emails.

Execution

T1204.002

User Execution: Malicious File

Grandoreiro pressures victims to manually execute the phishing attachment.

Persistence

T1547.001

Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder

Grandoreiro uses the standard Autostart locations for persistence.

T1574.001

Hijack Execution Flow: DLL Search Order Hijacking

Grandoreiro is executed by compromising the DLL search order.

Defense Evasion

T1140

Deobfuscate/Decode Files or Information

Grandoreiro is often distributed in password-protected ZIP archives.

T1027.001

Obfuscated Files or Information: Binary Padding

Grandoreiro EXEs used to have enlarged .rsrc sections with large BMP images.

T1218.007

System Binary Proxy Execution: Msiexec

Grandoreiro downloaders are bundled inside MSI installers.

T1112

Modify Registry

Grandoreiro stores part of its configuration data in the Windows registry.

Discovery

T1010

Application Window Discovery

Grandoreiro discovers online banking websites based on window names.

T1057

Process Discovery

Grandoreiro discovers security tools based on process names.

T1518.001

Software Discovery: Security Software Discovery

Grandoreiro detects the presence of banking protection products.

T1082

System Information Discovery

Grandoreiro collects information about the victim's machine, such as %COMPUTERNAME% and operating system.

Collection

T1056.002

Input Capture: GUI Input Capture

Grandoreiro can display fake pop-ups and capture text typed into them.

T1056.001

Input Capture: Keylogging

Grandoreiro is capable of capturing keystrokes.

T1114.001

Email Collection: Local Email Collection

Grandoreiro’s operators developed a tool to extract email addresses from Outlook.

Command and Control

T1132.002

Data Encoding: Non-Standard Encoding

Grandoreiro uses RTC, which encrypts data with a custom stream cipher.

T1568.002

Dynamic Resolution: Domain Generation Algorithms

Grandoreiro relies solely on DGA to obtain C&C server addresses.

T1573.001

Encrypted Channel: Symmetric Cryptography

In RTC, encryption and decryption are done using the same key.

T1571

Non-Standard Port

Grandoreiro often uses non-standard ports for distribution.

T1071

Application Layer Protocol

RTC is built on top of HTTP(S).

Exfiltration

T1041

Exfiltration Over C2 Channel

Grandoreiro exfiltrates data to its C&C server.

Impact

T1529

System Shutdown/Reboot

Grandoreiro can force a system reboot.