Cibersegurança

Hackers abusam do LuaJIT e de injeção de processos no Windows para ocultar o malware XLoader de roubo de credenciais

Nova cadeia de infecção do XLoader oculta o roubador de credenciais dentro de um interpretador LuaJIT embutido e o transfere para outro processo do Windows por meio de injeção por seção compartilhada. A campanha usa iscas de e-mail com temática empresarial e também distribuiu Agent Tesla, Remcos e XWorm.


Mayura Kathir Quarta - 04 de Novembro de 2026 às 18:57
GBHackers
GBHackers
XLoader infection chain (Source : Morphisec).

Uma nova cadeia de infecção do XLoader oculta o roubador de credenciais dentro de um interpretador LuaJIT (linguagem de script Lua com compilador just-in-time) embutido. Em seguida, ele é transferido para outro processo do Windows por meio de injeção por seção compartilhada.

GBHackers
XLoader infection chain (Source : Morphisec).

A campanha usa iscas de e-mail com temática empresarial e também distribuiu Agent Tesla, Remcos e XWorm.

A cadeia começa com e-mails sobre pedidos e pagamentos. Uma mensagem em grego tem assunto iniciado por “RE:”, para sugerir uma troca de correspondências já em andamento. O texto pede que o destinatário confirme o pedido 001828 e é enviado para “undisclosed-recipients”. Também foram observadas variantes em esloveno e com temática de cotações.

Cada e-mail traz um arquivo RAR que contém um único script JScript ofuscado, em vez de um documento de pedido.

O Windows Script Host (serviço de execução de scripts do Windows) executa o script. Ele tenta apagar o próprio fluxo Zone.Identifier, o que remove a marca de origem da web (mark-of-the-web).

Depois, o script decodifica dois blocos embutidos em Base64 (método de codificação de dados) por meio de Microsoft.XMLDOM e os grava com ADODB.Stream na pasta Documentos do usuário.

Os arquivos são um executável x86 compatível com LuaJIT, chamado EHFTUOMQDRXVTJSF.exe, e um arquivo Lua sem extensão, chamado FSJTVXRDQMOUTFHE. Nenhum download é feito nesta etapa. O script inicia o interpretador em modo oculto e não aguarda que ele termine.

O carregador usa a FFI (interface de função externa) do LuaJIT para chamar APIs (interfaces de programação de aplicações) do Windows. Ele oculta o console e tenta enfraquecer as defesas dentro do próprio processo.

Uma rotina zera as cadeias de caracteres AmsiScanBuffer e AmsiInitialize na memória do CLR (Common Language Runtime). Outra sobrescreve 12 exportações da biblioteca ntdll, incluindo EtwEventWrite e NtTraceEvent, com uma instrução RET (retorno) seguida de NOPs (instruções sem operação).

A Morphisec ressalta que isso demonstra intenção, mas os pesquisadores não observaram aplicação bem-sucedida desses patches em nenhum host.

Um ramo de persistência condicional é acionado por um arquivo marcador .mui. Ele pode criar uma tarefa agendada que executa um iniciador VBS (Visual Basic Script) a cada dez minutos. O caminho da primeira execução nunca cria esse marcador, por isso os pesquisadores tratam isso como uma capacidade, e não como um comportamento confirmado.

A Morphisec observou que o carregador então decodifica um literal de 382.982 bytes que começa com “|K”. Ele aplica uma substituição, inverte o texto, executa uma decodificação Base64 personalizada e uma rotação, e mapeia o PE32 (formato Portable Executable de 32 bits) empacotado resultante na memória do LuaJIT.

Ataque de malware XLoader

O mapeador chama CreateRemoteThread, mas passa GetCurrentProcess(), de modo que a thread é executada dentro do LuaJIT.

O PE empacotado tem uma única seção .text de alta entropia, com entropia de cerca de 7,9937 bits por byte, e não possui tabela de importação. Ele percorre o PEB (Process Environment Block, bloco de ambiente do processo) para localizar a ntdll, resolve NtAllocateVirtualMemory e aloca 0x45031 bytes de memória executável.

Em seguida, descriptografa uma região de 0x43400 bytes com RC4 (cifra de fluxo). Uma segunda passagem de RC4 é executada sobre 15 blocos de 0x47BB bytes, e a cifra é reinicializada para cada bloco. Depois, o empacotador chama o núcleo do XLoader na mesma thread.

O núcleo descriptografa seu injetor somente enquanto um wrapper está em execução. O wrapper descriptografa o corpo de 0x656 bytes, executa-o e o criptografa novamente depois. Assim, resta pouco texto claro na memória para ser encontrado por scanners.

O injetor clona o estágio e escolhe um alvo x86. Ele encontra um processo em execução ou inicia um host SysWOW64 suspenso.

Os 12 hosts candidatos são cleanmgr.exe, clip.exe, TSTheme.exe, getmac.exe, UserAccountControlSettings.exe, proquota.exe, SearchProtocolHost.exe, mobsync.exe, mshta.exe, ftp.exe, fsutil.exe e find.exe.

Ele mapeia uma seção compartilhada em ambos os processos. Depois, define o contexto da thread alvo para que a execução entre no bootstrap mapeado em remote_view + 0xC9C1.

Em seguida, copia o clone por meio de sua visualização local e retoma a thread. Isso evita WriteProcessMemory e a criação de threads remotas, que muitas soluções de detecção monitoram.

A imagem original do alvo permanece mapeada, por isso a Morphisec classifica a técnica como injeção por seção compartilhada com redirecionamento de contexto de thread, e não como process hollowing.

O código do XLoader pode então executar comandos HTTP GET (Protocolo de Transferência de Hipertexto), enumerar o Windows Vault e preparar registros de cookies.

A Morphisec já havia rastreado carregadores baseados em Lua. Uma campanha de 2025 usou a lua51.dll com um carregador enxuto para executar scripts ofuscados contra estudantes e mecanismos de jogos.

O GuLoader, outro carregador, também distribuiu XLoader, Remcos e outras famílias de malware. A Morphisec também documentou uma técnica semelhante de mapeamento de seção e retomada de thread em cadeias do Agent Tesla.

Os defensores devem bloquear arquivos de script entregues em RAR e monitorar o wscript.exe iniciando executáveis a partir da pasta Documentos. Também devem emitir alertas para utilitários do SysWOW64 inesperadamente iniciados em modo suspenso e para mapeamentos de seção compartilhada entre processos não relacionados. A Morphisec afirma que sua Automated Moving Target Defense (defesa automatizada de alvo móvel) foi projetada para interromper esse tipo de execução em memória.

Indicadores de comprometimento

Nota: endereços IP e domínios foram intencionalmente desfigurados (ex.: [.]) para evitar resolução ou links acidentais. Restaure-os somente em plataformas controladas de inteligência de ameaças, como MISP, VirusTotal ou seu SIEM.

XLoader LuaJIT Malware

FONTE

GBHackers