# T1027.011 - Fileless Storage
## Técnica Pai
Esta é uma sub-técnica de [[t1027-obfuscated-files|T1027 - T1027 - Obfuscated Files or Information]].
## Descrição
**Fileless Storage** (Armazenamento Sem Arquivo) é uma subtécnica de [[t1027-obfuscated-files-or-information|T1027 - Obfuscated Files or Information]] na qual adversários armazenam payloads, shellcode ou dados coletados em locais que não correspondem a arquivos convencionais no sistema de arquivos. O objetivo central é escapar das ferramentas de segurança que dependem de varreduras baseadas em disco - como antivírus tradicionais, EDRs com foco em hash de arquivos e soluções de monitoramento de integridade de arquivos (FIM).
O conceito de "fileless" descreve qualquer formato de persistência ou staging que não cria artefatos diretos e facilmente inspecionáveis no sistema de arquivos convencional. Adversários utilizam essa técnica tanto para **persistência encoberta** (payloads que sobrevivem a reinicializações sem gerar arquivos em disco) quanto para **staging temporário** de dados antes da exfiltração, como no padrão [[t1074-001-local-data-staging|Local Data Staging]].
A técnica é considerada de **alta maturidade operacional** entre grupos APT avançados, pois representa uma evolução natural frente à consolidação de controles de endpoint modernos. Grupos como [[g0010-turla|Turla]] e [[g0050-apt32|APT32]] adotam fileless storage como componente-chave em operações de longa duração, onde a persistência discreta é prioritária.
---
## Como Funciona
### Mecanismos no Windows
**1. Registro do Windows**
O Registro é o mecanismo mais comum de fileless storage em Windows. Adversários armazenam payloads codificados (Base64, XOR, RC4) em chaves como:
- `HKCU\Software\Microsoft\Windows\CurrentVersion\Run` - execução automática na inicialização do usuário
- `HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options` - sequestro de debuggers
- Chaves arbitrárias fora dos caminhos de execução conhecidos, acessadas por stagers PowerShell ou WMI
Um stager típico é um script PowerShell mínimo que, na inicialização, lê o payload do Registro, decodifica e injeta em memória via [[t1055-process-injection|Process Injection]].
**2. Repositório WMI (Windows Management Instrumentation)**
O repositório WMI (`%SystemRoot%\System32\Wbem\Repository`) permite armazenar código em classes e instâncias WMI personalizadas. Adversários criam classes WMI com propriedades que contêm shellcode ou scripts. A execução pode ser acionada por **Event Subscriptions WMI** (combinação de `__EventFilter`, `__EventConsumer` e `__FilterToConsumerBinding`), garantindo persistência mesmo sem entradas no Registro ou tarefas agendadas visíveis.
**3. Event Logs do Windows**
Menos comum, mas documentado: adversários codificam shellcode como dados de eventos em logs do Windows (Application, Security, System). O payload é fragmentado em múltiplos eventos e um loader reconstrói o shellcode a partir dos logs via WinAPI (`OpenEventLog`, `ReadEventLog`). Essa abordagem é especialmente evasiva pois os logs são considerados repositórios de auditoria, não de execução.
### Mecanismos no Linux
**Diretórios de memória compartilhada:**
- `/dev/shm` - compartilhamento entre processos via memória compartilhada POSIX
- `/run/shm`, `/var/run`, `/var/lock` - também mapeados em RAM
Arquivos gravados nesses diretórios não são persistidos em disco - existem apenas enquanto o sistema está ligado. Adversários os utilizam para staging de payloads em ataques de curta duração ou como área de trabalho intermediária entre estágios de um ataque, escapando de soluções FIM que monitoram apenas o sistema de arquivos convencional.
### Ofuscação Adicional
O dado armazenado quase sempre passa por ofuscação adicional:
- **Codificação**: Base64, Hex, ROT13, combinações
- **Criptografia**: XOR com chave hardcoded, AES/RC4 com chave derivada de informações do ambiente
- **Fragmentação**: payload dividido em múltiplas chaves/valores/entradas para dificultar reconstrução manual
---
## Attack Flow
```mermaid
graph TB
A([Adversário obtém execução inicial]) --> B[Stager executado em memória<br/>ex: macro Office, exploit web]
B --> C{Escolha do mecanismo\nde fileless storage}
C --> D1[Registro do Windows<br/>HKCU/HKLM]
C --> D2[Repositório WMI<br/>Classe personalizada]
C --> D3[Event Log do Windows<br/>Shellcode nos eventos]
C --> D4[Linux /dev/shm<br/>ou /var/run]
D1 --> E1[Payload codificado<br/>gravado na chave]
D2 --> E2[Classe WMI criada<br/>com Event Subscription]
D3 --> E3[Shellcode fragmentado<br/>gravado como eventos]
D4 --> E4[Arquivo temporário<br/>só em RAM]
E1 --> F[Trigger de execução<br/>na inicialização ou evento]
E2 --> F
E3 --> F
E4 --> F
F --> G[Loader decodifica<br/>e injeta payload]
G --> HProcess Injection\nem processo legítimo]
H --> I([Execução furtiva<br/>sem artefato em disco])
I --> J{Uso do payload}
J --> J1Persistência encoberta\nsobrevive reinicialização]
J --> J2Staging de dados\npré-exfiltração]
J --> J3[Download de<br/>próximo estágio]
style A fill:#c0392b,color:#fff
style I fill:#8e44ad,color:#fff
style J1 fill:#2980b9,color:#fff
style J2 fill:#2980b9,color:#fff
style J3 fill:#2980b9,color:#fff
```
---
## Exemplos de Uso
### Turla - PolyglotDuke e ComRAT
O grupo [[g0010-turla|Turla]] (atribuído à inteligência russa FSB) é um dos maiores expoentes de fileless storage em operações de espionagem de longa duração. O malware [[s0518-polyglotduke|PolyglotDuke]] utiliza o Registro do Windows para armazenar configurações de C2 e chaves de criptografia entre estágios. O [[s0126-comrat|ComRAT]] (v4, também conhecido como Agent.BTZ) usa o sistema de arquivos virtual do próprio malware implementado sobre chaves de Registro, permitindo armazenar logs de keylogging, documentos exfiltrados e módulos adicionais sem criar arquivos convencionais. O Turla opera com persistência de meses a anos em redes governamentais europeias sem ser detectado.
### APT32 (OceanLotus) - Registry + WMI Persistence
O grupo vietnamita [[g0050-apt32|APT32]] combina fileless storage com [[t1620-reflective-code-loading|Reflective Code Loading]] em campanhas direcionadas a entidades governamentais e corporações no Sudeste Asiático, incluindo alvos no Brasil relacionados a negócios com o Vietnã. O APT32 utiliza Event Subscriptions WMI para manter persistência de backdoors sem entradas no Registro de autorun - uma técnica que escapa de ferramentas como Autoruns da Sysinternals.
### DarkWatchman - Registro como Keylogger Storage
O [[darkwatchman|DarkWatchman]] é um malware-as-a-service que armazena seu agente de keylogging inteiramente no Registro do Windows - sem nunca gravar em disco. O keylogger é implementado em JavaScript e reside em uma chave de Registro, sendo invocado via Windows Script Host (wscript.exe) agendado por uma tarefa criada sem binários adicionais. A técnica demonstra que fileless storage não está restrita a atores patrocinados por estados.
### QakBot - Event Log Shellcode
O [[s0650-qakbot|QakBot]] (também conhecido como QBot) implementou em 2022 uma técnica documentada por pesquisadores da Kaspersky: armazenar shellcode criptografado em entradas do Event Log do Windows (canal Application), usando o ID de evento `0x4142` ("AB" em ASCII) como marcador. O shellcode era reconstituído e injetado em processos legítimos como `wermgr.exe` ou `AtBroker.exe`. Essa abordagem dificultou significativamente a detecção por EDRs que monitoravam apenas operações de arquivo e Registro.
### ShadowPad - WMI Repository
O [[s0596-shadowpad|ShadowPad]] é uma plataforma modular de RAT utilizada por múltiplos grupos APT chineses. Sua arquitetura usa o repositório WMI para armazenar módulos adicionais que são carregados dinâmicamente. A persistência via WMI Event Subscriptions permite que o ShadowPad sobreviva a reinicializações sem deixar entradas nos locais de autorun convencionais monitorados por soluções de segurança.
---
## Detecção
### Estrategia Geral
A detecção de fileless storage exige monitoramento de **operações em fontes não convencionais** - Registro, WMI e logs - em vez de varredura de arquivos. As ferramentas de detecção mais eficazes incluem:
- **Sysmon** (eventos 12, 13, 14 para Registro; evento 19, 20, 21 para WMI)
- **Windows Event Log** (IDs 4656, 4663 para acesso ao Registro; 5861 para WMI subscriptions)
- **EDR com telemetria de Registro e WMI** (CrowdStrike, SentinelOne, Microsoft Defender for Endpoint)
### Regra Sigma - Gravação Suspeita em Registro por PowerShell
```yaml
title: Fileless Payload Stored in Registry via PowerShell
id: a3f1b2c4-d5e6-7890-abcd-ef1234567890
status: experimental
description: >
Detecta PowerShell gravando dados codificados em Base64 ou Hex em chaves
de Registro fora dos caminhos de execução conhecidos - padrão de fileless storage.
references:
- https://attack.mitre.org/techniques/T1027/011/
- https://www.mandiant.com/resources/blog/fileless-malware-registry
author: RunkIntel
daté: 2026-03-25
tags:
- attack.defense_evasion
- attack.t1027.011
logsource:
category: registry_set
product: windows
detection:
selection_process:
Image|endswith:
- '\powershell.exe'
- '\pwsh.exe'
- '\wscript.exe'
- '\cscript.exe'
selection_registry:
TargetObject|contains:
- '\Software\Microsoft\Windows\CurrentVersion\Run'
- '\Software\Microsoft\Windows NT\CurrentVersion'
- '\Software\Classes\CLSID\'
selection_content:
Details|re: '^[A-Za-z0-9+/]{100,}={0,2}