# SpyPress.ZIMBRA
> Tipo: **stealer browser-residente** · Componente de [[g0007-apt28|APT28]] em campanhas de webmail · Operation RoundPress / GhostMail
## Visão Geral
[[spypress-zimbra|SpyPress.ZIMBRA]] e um stealer browser-residente escrito em JavaScript desenvolvido pelo [[g0007-apt28|APT28]] como parte da campanha de espionagem via webmail denominada **Operation RoundPress** (documentada pelo ESET em 2024) e sua evolução denominada **Operation GhostMail** (Seqrite/Gblock, 2026). O malware e específicamente projetado para explorar vulnerabilidades XSS (Cross-Site Scripting) em clientes de webmail empresariais - principalmente Zimbra Collaboration Suite - executando inteiramente no contexto do browser da vitima sem necessidade de instalar software no endpoint.
A familia SpyPress inclui variantes para diferentes plataformas de webmail: **SpyPress.ROUNDCUBE** (Roundcube), **SpyPress.HORDE** (Horde), **SpyPress.MDAEMON** (explorando CVE-2024-11182, zero-day) e **SpyPress.ZIMBRA** (Zimbra). O [[g0007-apt28|APT28]] explora Zimbra de forma sistematica desde 2023, expandindo de Roundcube para incluir múltiplas plataformas de webmail como alvos.
A variante mais avancada documentada - utilizada na Operation GhostMail (janeiro 2026) - explorou CVE-2025-66376 (XSS armazenado no Classic UI do Zimbra, CVSS 7.2) para executar nove operações paralelas de coleta de inteligência de forma completamente automatica, sem qualquer clique adicional da vitima alem de abrir o email malicioso.
**Plataformas:** Navegadores web (Chrome, Firefox, Edge) acessando Zimbra Classic UI
## Como Funciona
O SpyPress.ZIMBRA opera exclusivamente no browser, sem deixar artefatos no disco:
1. **Entrega via email HTML malicioso** - Email aparentemente normal enviado de conta comprometida (.edu ou governamental); o HTML contem JavaScript ofuscado oculto em bloco `display:none` ou dentro de regra CSS `@import` que contorna os filtros AntiSamy do Zimbra
2. **Bypass do sanitizador (CVE-2025-66376)** - O AntiSamy do Zimbra e contornado via injecao de tokens `@import` dentro de nomes de tags, levando o engine do browser a reconstruir elemento SVG com handler `onload` a partir de fragmentos considerados seguros individualmente
3. **Decodificacao e execução** - Payload em camadas: Base64 decodificado via função nativa do browser e XOR com chave "twichcba5e"; Stage-2 injetado no documento de nivel superior para escapar do sandbox iframe e acessar contexto de sessao completo
4. **Nove operações paralelas em simultaneo**:
- Exfiltração de 90 dias de emails via endpoint de exportacao Zimbra
- Roubo de senhas via injecao DOM em campo de autocomplete
- Furto de token CSRF do armazenamento local do browser (`T1539`)
- Obtencao de códigos backup 2FA via SOAP API (`T1111`)
- Criação de senha app-specific "ZimbraWeb" que sobrevive a reset de senha (`T1098.001`)
- Habilitacao silenciosa de IMAP para acesso futuro persistente
- Enumeracao de apps OAuth autorizados (`T1528`)
- Inventario de dispositivos ActiveSync conectados
- Dump completo de configuração do servidor Zimbra (`T1082`)
5. **Exfiltração dupla** - Dados enviados via HTTPS POST para C2 E via DNS tunneling com chunks Base32 para garantia de entrega (`T1071.004`)
```mermaid
graph TB
A["Email HTML<br/>Conta comprometida .edu"] --> B["Zimbra renderiza email<br/>JS executa automaticamente"]
B --> C["AntiSamy bypass<br/>CVE-2025-66376 CSS import trick"]
C --> D["Loader Stage-1<br/>Base64 + XOR decode"]
D --> E["Stealer Stage-2<br/>Injeta no top document"]
E --> F["9 operacoes paralelas<br/>Promise.all simultaneo"]
F --> G1["90 dias de email<br/>exportados via tgz"]
F --> G2["Token CSRF<br/>e sessao roubados"]
F --> G3["Códigos 2FA backup<br/>via SOAP API"]
F --> G4["Senha persistente<br/>ZimbraWeb criada"]
G1 --> H["Exfiltração dupla<br/>HTTPS + DNS Tunneling Base32"]
G2 --> H
G3 --> H
G4 --> H
```
## Timeline
```mermaid
timeline
title SpyPress - Operation RoundPress e GhostMail
2023 : APT28 inicia Operation RoundPress contra webmail europeu
: SpyPress.ROUNDCUBE identificado pelo ESET
2024 : CVE-2024-11182 zero-day em MDaemon - SpyPress.MDAEMON
: ESET publica pesquisa Operation RoundPress
: Alvos: governo e defesa Ucrania, Bulgaria, Romania
2026-01 : Operation GhostMail - Agencia Hidrologia Ucraniana
: CVE-2025-66376 explorado como zero-day no Zimbra
: SpyPress.ZIMBRA com 9 operacoes paralelas documentado
2026-03 : Análise publica detalhada Seqrite e Gblock
: Patch disponível Zimbra 10.1.13 e 10.0.18
```
## TTPs MITRE ATT&CK
| Tática | Técnica | Uso |
|--------|---------|-----|
| Acesso inicial | [[t1566-001-spearphishing-attachment\|T1566.001]] | Email HTML com XSS embutido |
| Execução | [[t1059-007-javascript\|T1059.007]] | Payload browser-residente JavaScript |
| Execução | [[t1203-exploitation-for-client-execution\|T1203]] | CVE-2025-66376 XSS Zimbra Classic UI |
| Persistência | [[t1098-001-additional-cloud-credentials\|T1098.001]] | Senha app-specific "ZimbraWeb" criada |
| Evasão | [[t1027-obfuscated-files-or-information\|T1027]] | XOR + Base64 em camadas; bypass AntiSamy |
| Evasão | [[t1564-001-hidden-files-and-directories\|T1564.001]] | JavaScript em div display:none |
| Acesso credencial | [[t1528-steal-application-access-token\|T1528]] | GetOAuthConsumersRequest para tokens |
| Acesso credencial | [[t1539-steal-web-session-cookie\|T1539]] | Token CSRF de localStorage |
| Acesso credencial | [[t1111-multi-factor-authentication-interception\|T1111]] | Códigos backup 2FA via GetScratchCodesRequest |
| Coleta | [[t1114-002-email-collection-remote\|T1114.002]] | 90 dias de emails via endpoint tgz |
| Coleta | [[t1185-browser-session-hijacking\|T1185]] | Escape de iframe via window.top.document |
| Exfiltração | [[t1041-exfiltration-over-c2-channel\|T1041]] | HTTPS POST para C2 |
| Exfiltração | [[t1071-004-dns\|T1071.004]] | DNS tunneling Base32 |
## Relevância LATAM/Brasil
O [[g0007-apt28|APT28]] já demonstrou interesse em alvos na América Latina durante a Operation RoundPress, com comprometimentos documentados no Ecuador. Para o Brasil específicamente:
- **Zimbra em orgaos públicos brasileiros e universidades federais** e alvo natural para campanhas SpyPress - diversas IFES e orgaos governamentais utilizam Zimbra
- **Ataque documentado contra Forcas Armadas do Brasil** via CVE-2025-27915 (XSS diferente no Zimbra) confirmou que atores APT já visam sistemas Zimbra em territorio brasileiro
- **Embaixadas e ministerios** com Zimbra como solução de email corporativo devem considerar SpyPress como ameaça ativa e imediata
- A ausência total de arquivos em disco torna a detecção por soluções EDR tradicionais extremamente dificil - monitoramento de aplicação e anomalias de sessao sao essenciais
## Detecção
- **Patch urgente**: Atualizar Zimbra para 10.1.13 ou 10.0.18 para corrigir CVE-2025-66376
- **Sessao**: Monitorar acessos via token ZMBAuthToken de localizacoes geograficas inesperadas; alertar sobre criação de senhas app-specific incomuns como "ZimbraWeb"
- **DNS**: Queries com subdominos longos em padrao Base32 indicam exfiltração via DNS tunneling para infraestrutura C2
- **IMAP**: Alertar sobre habilitacao nao-solicitada de IMAP em contas de usuario
- **Email scanning**: Inspecionar emails HTML por CSS @import em posicoes incomuns; padroes SVG onload com payloads codificados em Base64
## Referências
- [Seqrite - Operation GhostMail Zimbra XSS (2026)](https://www.seqrite.com/blog/operation-ghostmail-zimbra-xss-russian-apt-ukraine/)
- [Gblock - Operation GhostMail análise técnica (2026)](https://www.gblock.app/articles/operation-ghostmail-zimbra-email-apt28)
- [Field Effect - APT28 Webmail Zero-Day (2025)](https://fieldeffect.com/blog/russian-apt28-hackers-leverage-webmail-zero-day)
- [Rewterz - Operation RoundPress Active IOCs (2025)](https://rewterz.com/threat-advisory/operation-roundpress-apt28-exploits-zero-day-in-global-espionage-campaign-active-iocs)
- [SecPod - Zimbra Flaw Exploited Brazilian Armed Forces (2025)](https://www.secpod.com/blog/zimbra-flaw-exploited-to-attack-brazils-armed-forces-through-ics-attachments/)