Voltar
Malware Intelligence
Tabela de conteúdo
  • Categoria: Inteligência de malware
  • Tipo/família: Ladrão de informações
  • Indústria: TI e tecnologia
  • Região: Global

Sumário executivo

AMEAÇA

  • As versões trojanizadas do aplicativo de desktop 3CX carregam uma DLL com conteúdo malicioso.
  • A DLL lança um ataque em vários estágios na máquina da vítima, sendo o estágio final a implantação de um ladrão de informações não identificado.
  • É multiplataforma com uma versão para macOS.

IMPACTO

  • Dados críticos, como senhas salvas, podem ser comprometidos por meio de navegadores instalados no sistema da vítima.

Análise e atribuição

Em 29 de março de 2023, surgiram relatos de atividades maliciosas originadas de um aplicativo de desktop 3CX assinado. O Falcon Overwatch do CrowdStrike alegou ter observado atividades maliciosas nas versões Windows e macOS do aplicativo.

O produto é um aplicativo de softphone que permite fazer e receber chamadas em seu desktop físico. Atualmente, o aplicativo está disponível para todos os principais sistemas operacionais, incluindo Windows, Linux e macOS. A 3CX afirma ter mais de 600.000 clientes em todo o mundo, portanto, essa campanha pode ter efeitos devastadores.

Visão geral do ataque

Ao instalar as versões afetadas do aplicativo de desktop 3CX, três arquivos são descartados pelo instalador:

  • 3CXDesktopApp.exe: Usado para carregar a primeira DLL trojanizada.
  • ffmpeg.dll: DLL trojanizada. Ele contém dados que são usados para ler, descriptografar e executar o shellcode da segunda DLL maliciosa lançada pelo instalador.
  • d3dcompiler_47.dll: contém um código de shell malicioso que busca .ico arquivos de um repositório do GitHub (agora retirados) e descriptografa os URLs de C&C desses arquivos.

 

Análise técnica

O binário afetado começa carregando a DLL trojanizada ffmpeg.dll. Essa DLL procura a próxima DLL maliciosa no diretório de origem (d3dcompiler_47.dll) e o carrega.

Usando createFileW () para carregar d3dcompiler_47.dll

d3dcompiler_47.dll foi anexado para conter um código de shell malicioso criptografado e é identificado por um marcador exclusivo (0XCEFAEDFE). Esse código de shell foi criptografado usando uma cifra de fluxo RC4.

Usando readFile () para ler o shellcode da DLL após o marcador 0XCEFAEDFE

O código do shell é então descriptografado usando uma chave (3 MB (2BsG# @c7) e armazenados na memória para uso.

Início do ciclo de decodificação e a chave usada para decodificação

Então, Proteção virtual () é usado para alterar as permissões da região da memória em que o código do shell é armazenado PAGE_EXECUTE_READWRITE (0x40). O shellcode também tem uma DLL embutida nele.

Usando o VirtualProtect () para tornar a região da memória executável e a DLL incorporada vista no shellcode

Esse shellcode é um downloader e é responsável por baixar os arquivos.ico maliciosos de um repositório GitHub agora retirado do ar. Ele faz essa solicitação usando uma string exclusiva do User-Agent.

Cadeia de caracteres de agente de usuário usada para fazer a solicitação

Um total de 16 arquivos.ico são baixados https://raw.githubusercontent[.]com/IconStorages/images/main/ e cada arquivo.ico é anexado para ter uma string criptografada no final. Essa string é criptografada usando AES e GCM e é codificada em base64.

Um exemplo da string de URL criptografada nos arquivos.ico

Quando descriptografado, cada .ico o arquivo contém um URL de C&C, que é usado para baixar a carga útil do estágio final. Abaixo estão os C&Cs decifrados para cada .ico, créditos a isso roteiro. O primeiro URL provavelmente foi usado como URL de teste pelo agente da ameaça, já que esse endereço nunca hospedou malware.

icon0.ico

https://www.3cx[.]com/blog/event-trainings/

icon1.ico

https://msstorageazure[.]com/window

icon2.ico

https://officestoragebox[.]com/api/session

icon3.ico

https://visualstudiofactory[.]com/workload

icon4.ico

https://azuredeploystore[.]com/cloud/services

icon5.ico

https://msstorageboxes[.]com/office

icon6.ico

https://officeaddons[.]com/technologies

icon7.ico

https://sourceslabs[.]com/downloads

icon8.ico

https://zacharryblogs[.]com/feed

icon9.ico

https://pbxcloudeservices[.]com/phonesystem

icon10.ico

https://akamaitechcloudservices[.]com/v2/storage

icon11.ico

https://akamaitechcloudservices[.]com/v2/storage

icon12.ico

https://azureonlinestorage[.]com/azure/storage

icon13.ico

https://msedgepackageinfo[.]com/microsoft-edge

icon14.ico

https://glcloudservice[.]com/v1/console

icon15.ico

https://pbxsources[.]com/exchange

A carga útil do estágio final é supostamente um novo ladrão de informações, que rouba dados de navegadores conhecidos, como Chrome, Edge, Brave e Firefox.

Carga útil do Infostealer

O estágio final é um ladrão de informações nunca antes visto. Pesquisadores de segurança da Volexidade Eu chamei esse ladrão ICÔNICO. Esse ladrão não pode ser executado diretamente usando o rundll.exe, pois segue outro processo de carregamento. É por isso que fizemos o possível para tirar nossas conclusões da análise estática.

O ladrão começa verificando a versão do sistema operacional que está sendo executada no sistema da vítima. Depois disso, ele verifica o arquivo C:\Program Files\ 3CXDesktopApp\ config.json. Sem esse arquivo, o ladrão não continuará suas operações.

Obtém a versão atual do sistema operacional e procura o arquivo

Em seguida, o ladrão obtém as informações do nome do host e do nome de domínio e as formata de forma que sejam armazenadas com a versão do sistema operacional. Provavelmente, isso será enviado ao C&C como um identificador de vítima.

Nome do host, nome de domínio e versão atual do sistema operacional armazenados juntos

 

Em seguida, o ladrão inicia suas operações de roubo de arquivos. Ele usa um loop de Encontre o primeiro arquivo () e Encontre o próximo arquivo () para encontrar dados relacionados a navegadores populares.

Faça um loop para ler arquivos relacionados ao navegador

O ladrão tem os caminhos dos navegadores populares codificados. Abaixo está uma lista dos navegadores de destino e os respectivos arquivos que o ladrão rouba.

Caminhos de navegador codificados

 

Browser

File

Google Chrome

AppData\Local\Google\Chrome\User Data\History

Microsoft Edge

AppData\Local\Microsoft\Edge\User Data\History

Brave

AppData\Local\BraveSoftware\Brave-Browser\History

Mozilla Firefox

AppData\Roaming\Mozilla\Firefox\Profiles\places.sqlite

O História arquivo para Chrome, Edge e Brave é roubado e o locais.sqlite arquivo para o Firefox foi roubado. Esses arquivos são responsáveis por armazenar o histórico de navegação na web e são armazenados na forma de um banco de dados SQLite. Eles contêm o URL, o título da página, a hora da última visita e outras informações relacionadas à navegação.

Às vezes, o URL de uma página pode conter informações confidenciais, como credenciais criptografadas ou outras informações semelhantes, que podem ser usadas por um invasor. Deve-se notar, no entanto, que isso acontece muito raramente com os principais portais e sites que coletam esses dados.

O ladrão também usa o URL de crack na Internet API para armazenar os componentes detalhados de um URL, como protocolo, nome do host, porta e outros parâmetros.

InternetCrackURLW sendo usado

 

O ladrão implementa consultas SQL para limitar os resultados a apenas 500 entradas, a fim de garantir que ele roube as informações mais recentes.

Consultas SQL usadas para as informações mais recentes

Finalmente, os dados roubados são repassados para o módulo principal, para que possam ser enviados ao servidor C&C.

Variante macOS

O instalador do macOS para o 3CX também foi infectado e funciona de forma um pouco diferente:

  • O caminho do componente malicioso é Aplicativo de desktop 3CX.app/Contents/Frameworks/Electron Framework.framework/versions/a/libraries/libffmpeg.dylib.
  • Os URLs são codificados em XOR e codificados no binário (não recuperados do repositório GitHub mencionado anteriormente). Os URLs usados estão listados abaixo. Essa variante também usa um formato de solicitação da Web ligeiramente diferente para se comunicar com os URLs.

msstorageazure[.]com/analysis

officestoragebox[.]com/api/biosync

visualstudiofactory[.]com/groupcore

azuredeploystore[.]com/cloud/images

msstorageboxes[.]com/xbox

officeaddons[.]com/quality

sourceslabs[.]com/status

zacharryblogs[.]com/xmlquery

pbxcloudeservices[.]com/network

pbxphonenetwork[.]com/phone

akamaitechcloudservices[.]com/v2/fileapi

azureonlinestorage[.]com/google/storage

msedgepackageinfo[.]com/ms-webview

glcloudservice[.]com/v1/status

pbxsources[.]com/queue

www.3cx[.]com/blog/event-trainings/

Detecção

Uma regra da YARA pode ser encontrada na referencia seção deste relatório, a fim de detectar todas as etapas desta campanha.

 

Indicadores de compromisso (IOCs)

Files Obtained

SHA256

3CXDesktopApp.exe

DDE03348075512796241389DFEA5560C20A3D2A2EAC95C894E7BBED5E85A0ACC

ffmpeg.dl

7290A9AEFBB759C9B40EF8A197CF20FD098FD74DD413C4D9D81E77A31E643F49

d3dcompiler_47.dll

11BE1803E2E307B647A8A7E02D128335C448FF741BF06BF52B332E0BBF423B03

Final payload

8ab3a5eaaf8c296080fadf56b265194681d7da5da7c02562953a4cb60e147423

3CXDesktopApp-18.12.416.msi

59e1edf4d82fae4978e97512b0331b7eb21dd4b838b850ba46794d9c7a2c0983

3CXDesktopApp-18.12.416.dmg|3CXDesktopApp-latest.dmg

e6bbc33815b9f20b0cf832d7401dd893fbc467c800728b5891336706da0dbcec

libffmpeg.dylib

a64fa9f1c76457ecc58402142a8728ce34ccba378c17318b3340083eeb7acc67

icon0.ico

210C9882EBA94198274EBC787FE8C88311AF24932832A7FE1F1CA0261F815C3D

icon1.ico

A541E5FC421C358E0A2B07BF4771E897FB5A617998AA4876E0E1BAA5FBB8E25C

icon2.ico

D459AA0A63140CCC647E9026BFD1FCCD4C310C262A88896C57BBE3B6456BD090

icon3.ico

D459AA0A63140CCC647E9026BFD1FCCD4C310C262A88896C57BBE3B6456BD090

icon4.ico

D51A790D187439CE030CF763237E992E9196E9AA41797A94956681B6279D1B9A

icon5.ico

4E08E4FFC699E0A1DE4A5225A0B4920933FBB9CF123CDE33E1674FDE6D61444F

icon6.ico

8C0B7D90F14C55D4F1D0F17E0242EFD78FD4ED0C344AC6469611EC72DEFA6B2D

icon7.ico

F47C883F59A4802514C57680DE3F41F690871E26F250C6E890651BA71027E4D3

icon8.ico

2C9957EA04D033D68B769F333A48E228C32BCF26BD98E51310EFD48E80C1789F

icon9.ico

268D4E399DBBB42EE1CD64D0DA72C57214AC987EFBB509C46CC57EA6B214BECA

icon10.ico

C62DCE8A77D777774E059CF1720D77C47B97D97C3B0CF43ADE5D96BF724639BD

icon11.ico

C13D49ED325DEC9551906BAFB6DE9EC947E5FF936E7E40877FEB2BA4BB176396

icon12.ico

F1BF4078141D7CCB4F82E3F4F1C3571EE6DD79B5335EB0E0464F877E6E6E3182

icon13.ico

2487B4E3C950D56FB15316245B3C51FBD70717838F6F82F32DB2EFCC4D9DA6DE

icon14.ico

E059C8C8B01D6F3AF32257FC2B6FE188D5F4359C308B3684B1E0DB2071C3425C

icon15.ico

D0F1984B4FE896D0024533510CE22D71E05B20BAD74D53FAE158DC752A65782E

README.md

9B5607140EC954341035604783CD7EC0D10B887C79AE9BAAEBE915D2AB0410D7

web.pack

E7B7002D270C6316404134F796FB2B982A8F9629522160870892217712FED72D

URLs

https://www.3cx[.]com/blog/event-trainings/

https://msstorageazure[.]com/window

https://officestoragebox[.]com/api/session

https://visualstudiofactory[.]com/workload

https://azuredeploystore[.]com/cloud/services

https://msstorageboxes[.]com/office

https://officeaddons[.]com/technologies

https://sourceslabs[.]com/downloads

https://zacharryblogs[.]com/feed

https://pbxcloudeservices[.]com/phonesystem

https://akamaitechcloudservices[.]com/v2/storage

https://akamaitechcloudservices[.]com/v2/storage

https://azureonlinestorage[.]com/azure/storage

https://msedgepackageinfo[.]com/microsoft-edge

https://glcloudservice[.]com/v1/console

https://pbxsources[.]com/exchange

Referências

Mehardeep Singh Sawhney
Extremely passionate about cyber security and it's real application in protecting Information Assets. Love learning about new ways to exploit devices
Nenhum item encontrado.

Blogs relacionados