SOC Prime Bias: Médio

05 Dez 2025 17:36

Malware CoinMiner Continua a se Propagar por Drives USB

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Follow
Malware CoinMiner Continua a se Propagar por Drives USB
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

RESUMO

O malware CoinMiner continua a se propagar por meio de drives USB na Coreia do Sul, aproveitando um atalho oculto que aciona scripts VBS e BAT, que por sua vez organizam vários componentes que, em última instância, entregam uma carga útil de mineração de criptomoeda.

Investigação

O relatório descreve a estrutura de diretórios no USB infectado, a cadeia de execução do atalho por meio de várias etapas de dropper, o registro sob o serviço DcomLaunch e o uso dos mineradores de criptomoeda PrintMiner e XMRig.

Mitigação

Os usuários devem manter o sistema operacional e os softwares atualizados, bloquear a execução de arquivos de atalho não confiáveis, utilizar ferramentas antivírus atualizadas e negar o acesso a infraestruturas conhecidas como maliciosas.

Resposta

Detecte o atalho malicioso e seus scripts relacionados, monitore a criação de arquivos dropper e registros DCOM, e bloqueie o tráfego de rede para os domínios de comando e controle e endereços IP de mineração identificados.

graph TB %% Class definitions classDef action fill:#99ccff classDef tool fill:#66cc66 classDef file fill:#ffcc66 classDef process fill:#c266ff classDef malware fill:#ff6666 classDef network fill:#cccccc %% Nodes action_usb_insert[“<b>Ação</b> – <b>T1204.002 Execução pelo Usuário: Arquivo Malicioso</b>: O usuário insere um pendrive comprometido contendo um atalho oculto.”] class action_usb_insert action tool_shortcut[“<b>Ferramenta</b> – <b>T1547.009 Modificação de Atalho</b>: Atalho LNK oculto \”USB Drive.lnk\” visível para o usuário.”] class tool_shortcut tool tool_vbscript[“<b>Ferramenta</b> – <b>T1059.005 Visual Basic</b>: O atalho inicia um script em Visual Basic.”] class tool_vbscript tool tool_batch[“<b>Ferramenta</b> – <b>T1059.003 Shell de Comandos do Windows</b>: O VBScript executa um arquivo batch.”] class tool_batch tool file_malicious_dll[“<b>Arquivo</b> – <b>T1036.005 Disfarce: Correspondência com Nome Legítimo</b> & <b>T1036.008 Disfarce: Extensão Dupla</b>: DLL maliciosa \”printui.dll\” (renomeada de .dat) copiada para C:\\Windows\\System32 usando diretórios ocultos.”] class file_malicious_dll file process_printui[“<b>Processo</b> – <b>T1055.001 Injeção de Processo</b> & <b>T1574.001 Sequestro de DLL</b>: O printui.exe legítimo carrega a DLL maliciosa.”] class process_printui process tool_dcom[“<b>Ferramenta</b> – <b>T1546.015 Componente de Software de Servidor</b> & <b>T1021.003 DCOM</b>: Registra a DLL em um serviço DCOM para persistência.”] class tool_dcom tool file_svcinsty[“<b>Arquivo</b>: Executável \”svcinsty64.exe\” criado pelo dropper para instalar o payload final.”] class file_svcinsty file file_svctrl[“<b>Arquivo</b>: Executável \”svctrl64.exe\” criado pelo dropper como auxiliar.”] class file_svctrl file malware_printminer[“<b>Malware</b> – PrintMiner: Adiciona exclusão no Windows Defender, falsifica alertas de segurança e prepara o download do minerador.”] class malware_printminer malware tool_defender_exclusion[“<b>Ferramenta</b> – <b>T1564.012 Falsificação de Conteúdo em Disco</b> & <b>T1562.011 Modificar Registro</b>: Modifica a lista de exclusões do Defender para ocultar a atividade.”] class tool_defender_exclusion tool network_c2[“<b>Rede</b> – <b>T1071.001 Protocolos Web</b>, <b>T1102.002 Serviços Web</b>, <b>T1102.003 Transferência de Ferramentas de Entrada</b>: Comunicação HTTPS com o comando‑e‑controle para obter configuração e baixar o minerador.”] class network_c2 network malware_xmrig[“<b>Malware</b> – XMRig: Minerador de Monero de código aberto baixado e executado.”] class malware_xmrig malware action_compute_hijack[“<b>Ação</b> – <b>T1496.001 Sequestro de Recursos</b>: Executa o XMRig para minerar criptomoeda enquanto evita ferramentas de análise.”] class action_compute_hijack action action_replication[“<b>Ação</b> – <b>T1091 Replicação por Mídia Removível</b>: Recria o atalho e arquivos ocultos em outros dispositivos USB.”] class action_replication action %% Connections action_usb_insert –>|creates| tool_shortcut tool_shortcut –>|launches| tool_vbscript tool_vbscript –>|executes| tool_batch tool_batch –>|drops| file_malicious_dll file_malicious_dll –>|loaded by| process_printui process_printui –>|establishes persistence via| tool_dcom tool_dcom –>|creates| file_svcinsty tool_dcom –>|creates| file_svctrl file_svcinsty –>|installs| malware_printminer file_svctrl –>|supports| malware_printminer malware_printminer –>|adds exclusion using| tool_defender_exclusion malware_printminer –>|communicates with| network_c2 network_c2 –>|delivers| malware_xmrig malware_xmrig –>|executes| action_compute_hijack action_compute_hijack –>|triggers| action_replication action_replication –>|places| tool_shortcut

Fluxo de Ataque

Execução de Simulação

Pré-requisito: O Check de Pré-voo de Telemetria & Base deve ter sido aprovado.

Racional: Esta seção detalha a execução precisa da técnica do adversário (TTP) projetada para acionar a regra de detecção. Os comandos e a narrativa DEVEM refletir diretamente os TTPs identificados e visam gerar a telemetria exata esperada pela lógica de detecção. Exemplos abstratos ou não relacionados levarão a diagnósticos incorretos.

  • Narrativa do Ataque & Comandos:

    1. Estágio 1 – Descarregar uma DLL maliciosa: O adversário copia uma printui.dll para o mesmo diretório que printui.exe (simulando uma carga de driver entregue via dispositivo USB).
    2. Estágio 2 – Executar printui.exe: Invocando printui.exe com a chave /ml (carga maliciosa), a DLL maliciosa é carregada, gerando um evento de criação de processo que corresponde à seleção (da regra () enquanto também satisfaz a condição de filtro (Imagem contém printui.dll). A regra exclui este caso, então o atacante adiciona um segundo passo para contorná-lo.
    3. Estágio 3 – Executar svcinsty64.exe: O atacante registra um novo serviço apontando para um binário de carga útil (payload.exe) armazenado no drive USB. Esta ação cria um evento de criação de processo para svcinsty64.exe, satisfazendo a seleção da regra sem acionar o filtro, assim gerando um alerta.
  • Script de Teste de Regressão: O script abaixo automatiza os três estágios, garantindo reprodutibilidade.

    # -------------------------------------------------
    # Teste de Regressão – Acionamento da regra Sigma para printui.exe / svcinsty64.exe
    # -------------------------------------------------
    $dllPath = "$env:TEMPprintui.dll"
    $exePath = "$env:SystemRootSystem32printui.exe"
    $svcInstPath = "$env:SystemRootSystem32svcinsty64.exe"
    $payloadPath = "$env:TEMPpayload.exe"
    
    # 1️⃣ Descarregar uma DLL maliciosa fictícia (conteúdo binário não é importante para detecção)
    Write-Host "[*] Criando DLL maliciosa fictícia em $dllPath"
    Set-Content -Path $dllPath -Value ([byte[]](0..255)) -Encoding Byte
    
    # 2️⃣ Executar printui.exe (carga benigna) – NÃO deve acionar devido ao filtro
    Write-Host "[*] Executando printui.exe benigno (será filtrado)"
    Start-Process -FilePath $exePath -ArgumentList "/p" -Wait
    
    # 3️⃣ Executar printui.exe com carregamento de DLL maliciosa – caso filtrado (esperado)
    Write-Host "[*] Executando printui.exe com DLL maliciosa (caso filtrado)"
    Start-Process -FilePath $exePath -ArgumentList "/ml `$dllPath`" -Wait
    
    # 4️⃣ Preparar um executável de carga útil fictício (script CMD simples compilado para exe)
    Write-Host "[*] Criando executável de carga útil fictício"
    $payloadSource = @"
    @echo off
    echo Payload executado > $env:TEMPpayload_output.txt
    "@
    $payloadScript = "$env:TEMPpayload.bat"
    $payloadSource | Set-Content -Path $payloadScript -Encoding ASCII
    # Converter .bat para .exe usando iexpress (embutido)
    $iexpress = "$env:SystemRootSystem32iexpress.exe"
    $config = "$env:TEMPiexpress.sed"
    @"
    [Version]
    Version=3.0
    [Options]
    ExtractTitle=Payload
    ExtractLocation=%TEMP%
    ShowProgress=0
    HideExtractWindow=1
    [SourceFiles]
    SourceFiles=0
    %TEMP%payload.bat
    [Run]
    RunCommand="%TEMP%payload.bat"
    "@ | Set-Content -Path $config -Encoding ASCII
    & $iexpress /N /Q /M $config
    Move-Item -Path "$env:TEMPPayload.exe" -Destination $payloadPath -Force
    
    # 5️⃣ Registrar um serviço malicioso usando svcinsty64.exe – DEVE ACIONAR
    Write-Host "[*] Registrando serviço malicioso via svcinsty64.exe"
    $svcName = "MaliciousSvc"
    $svcDisplay = "Serviço Malicioso"
    $svcCmd = "`"$payloadPath`""
    $svcArgs = "/install `$svcName` `$svcDisplay` `$svcCmd`"
    Start-Process -FilePath $svcInstPath -ArgumentList $svcArgs -Wait
    
    # 6️⃣ Limpar serviço
    Write-Host "[*] Removendo serviço malicioso"
    $removeArgs = "/uninstall `$svcName`"
    Start-Process -FilePath $svcInstPath -ArgumentList $removeArgs -Wait
    
    # 7️⃣ Remover artefatos temporários
    Write-Host "[*] Limpando arquivos temporários"
    Remove-Item -Path $dllPath -Force -ErrorAction SilentlyContinue
    Remove-Item -Path $payloadPath -Force -ErrorAction SilentlyContinue
    Remove-Item -Path $payloadScript -Force -ErrorAction SilentlyContinue
    Write-Host "[+] Teste concluído"
  • Comandos de Limpeza: (Se o script acima falhar ou você preferir limpeza manual)

    # Remover o serviço malicioso se ainda estiver presente
    $svcName = "MaliciousSvc"
    $svcInstPath = "$env:SystemRootSystem32svcinsty64.exe"
    & $svcInstPath /uninstall $svcName
    
    # Excluir DLL temporária e carga útil
    Remove-Item -Path "$env:TEMPprintui.dll" -Force -ErrorAction SilentlyContinue
    Remove-Item -Path "$env:TEMPpayload.exe" -Force -ErrorAction SilentlyContinue
    Remove-Item -Path "$env:TEMPpayload.bat" -Force -ErrorAction SilentlyContinue
    
    # (Opcional) Verificar se não há serviços restantes
    Get-Service -Name $svcName -ErrorAction SilentlyContinue