# Mars Stealer - O Redesign Minimalista do Oski com Foco em Carteiras Crypto
> **ATIVO | Infostealer | Windows | Global** - Mars Stealer e um infostealer surgido em **junho de 2021** como redesign e sucessor direto do [[oski-stealer|Oski Stealer]] (descontinuado em 2020). Com apenas **95KB** de tamanho de binario (Assembly + C), e notavelmente compacto e eficiente. O Mars se especializa em roubo de **40+ extensoes de browser de carteiras crypto** e aplicativos 2FA, injeta no `explorer.exe` via copia customizada do `ntdll.dll` para evadir hooks de EDR, e implementa **anti-CIS check** baseado em idioma (para evitar alvos em paises CIS). Comercializado a US$ 140-160 lifetime.
> [!danger] Campanha OpenOffice no Canada (2022)
> Morphisec documentou uma campanha de Google Ads em que anuncios maliciosos para "OpenOffice" redirecionavam canadenses para download do Mars Stealer. A campanha demonstrou eficacia do malvertising para stealers de nicho: alta taxa de instalacao em alvos de valor (usuarios empresariais buscando software de escritorio).
## Visão Geral
**Mars Stealer** emergiu em junho de 2021 como uma reescrita eficiente do [[oski-stealer|Oski Stealer]], preservando as capacidades principais enquanto expandia o suporte a **carteiras de criptomoedas** - o alvo de maior valor no cenário de 2021-2022 de boom de DeFi. O stealer e notavel por seu tamanho extremamente compacto (**95KB**) achievado ao escrever partes criticas em **Assembly puro** com wrapper em C.
O projeto foi vendido em foruns underground como compra única (lifetime) por US$ 140-160, democratizando acesso a um stealer tecnico para operadores menores. O CERT-UA documentou uso do Mars em campanha contra organizacoes ucranianas em marco de 2022, demonstrando adocao tanto por cibercriminosos quanto por atores com motivacoes geopoliticas.
| Campo | Detalhe |
|-------|---------|
| **Tipo** | Infostealer |
| **Linguagem** | Assembly + C (95KB binario) |
| **Preco** | US$ 140-160 lifetime |
| **Primeira observacao** | Junho 2021 |
| **Status** | Ativo |
| **C2** | HTTP POST - ZIP com logs |
| **Predecessor** | [[oski-stealer\|Oski Stealer]] (2019-2020) |
| **Anti-CIS** | Sim - verifica `GetUserDefaultLangID` |
## Visão Geral Técnica
### Arquitetura Assembly/C Minimalista
O Mars e construido para ser **compacto e eficiente**:
- **95KB total** - um dos menores infostealers funcionais
- Assembly para operações criticas (syscalls, API resolution, parsing de estruturas)
- C para lógica de alto nivel e montagem de dados
- Sem framework ou runtime - zero dependências externas
### Anti-CIS Check
Antes de qualquer operação, o Mars verifica o idioma do sistema via `GetUserDefaultLangID` ([[t1497-virtualizationsandbox-evasion|T1497]]). Se detectar idiomas CIS (russo, ucraniano, bielorrusso, georgiano, etc.), termina imediatamente sem executar nenhuma funcionalidade:
```
// Pseudo-código da verificação anti-CIS
LANGID lang = GetUserDefaultLangID();
if (lang in {RUSSIAN, UKRAINIAN, BELARUSIAN, GEORGIAN, KAZAKH, ARMENIAN}) {
ExitProcess(0); // Saida silenciosa
}
```
### Injecao em Explorer.exe via NTDLL Customizado
Técnica avancada de evasão de EDR ([[t1055-process-injection|T1055]]): o Mars carrega uma **copia limpa do ntdll.dll diretamente do disco** (sem hooks do EDR que sao aplicados em memoria), usa esta copia para realizar chamadas de sistema que injetam código no `explorer.exe`, e executa a coleta a partir deste processo confiavel.
Esta técnica e similar a usada pelo [[bazarloader|BazarLoader]] e contorna EDRs que monitoram chamadas de API via hooks de IAT mas nao monitoram syscalls diretas.
### Coleta de Dados
**Strings ofuscadas com RC4 + Base64** ([[t1140-deobfuscatedecode-files-or-information|T1140]]):
- Todas as strings criticas (paths, nomes de chaves de registro, URLs) sao cifradas em RC4
- Decifradas em runtime imediatamente antes do uso
**Browsers e credenciais:**
- Chromium-based: DPAPI para decriptar senhas, cookies, autofill ([[t1555-003-credentials-from-browsers|T1555.003]])
- Firefox: sqlite logins.json + key4.db
- **40+ extensoes de carteiras crypto**: MetaMask, Coinbase Wallet, Binance Chain, Trust Wallet, Phantom, Keplr, TronLink, Math Wallet e outros ([[t1005-data-from-local-system|T1005]])
- **Extensoes 2FA**: Authenticator, EOS Authenticator, Authy
**Fingerprint do sistema:**
- Hardware GUID, OS build, usuario, dominio ([[t1082-system-information-discovery|T1082]])
- Screenshot da area de trabalho
- IP público via API externa
**Exfiltração:**
- ZIP com todos os dados via HTTP POST ([[t1071-001-web-protocols|T1071.001]], [[t1020-automated-exfiltration|T1020]])
- Auto-delecao do executavel após envio bem-sucedido
### Cadeia de Infecção
```mermaid
graph TB
A["🎯 Google Ads malicioso<br/>Software popular falsificado<br/>OpenOffice / VLC / Notepad++"] --> B["🌐 Site clone convincente<br/>Dominio typosquatting<br/>Download automatico"]
B --> C["⚙️ Execução do Mars 95KB<br/>Anti-CIS: idioma CIS?"]
C -->|"Idioma CIS"| Z["❌ Saida silenciosa<br/>ExitProcess(0)"]
C -->|"Idioma nao-CIS"| D["💉 Injeta em explorer.exe<br/>NTDLL customizado do disco<br/>Syscalls sem hooks EDR"]
D --> E["🔍 Fingerprint + Screenshot<br/>Hardware GUID / OS<br/>IP publico"]
E --> F["🍪 Coleta browsers<br/>DPAPI Chromium<br/>Firefox sqlite"]
F --> G["💰 40+ extensoes crypto<br/>MetaMask / Phantom<br/>Aplicativos 2FA"]
G --> H["📦 Monta ZIP + HTTP POST<br/>RC4 strings decifradas<br/>Auto-delete binario"]
```
## Timeline
```mermaid
timeline
title Mars Stealer - Historico
2019 : Oski Stealer lancado - predecessor
2020 : Oski descontinuado pelo autor
2021-06 : Mars Stealer anunciado como redesign
: Oski v2 - 95KB Assembly/C
2021-09 : Primeiras amostras em campanhas ativas
: Preco US$140 lifetime documentado
2022-03 : CERT-UA - campanha contra Ucrania
: Distribuição após inicio da guerra
2022-03 : Morphisec - Google Ads OpenOffice Canada
: Malvertising para usuarios empresariais
2022-04 : 3xp0rt análise técnica completa
: NTDLL injection documentada
2023 : Continua ativo com atualizacoes
: Novas extensoes crypto adicionadas
2024-2025 : Ativo em campanhas residuais
: Preferido por operadores independentes
```
## TTPs MITRE ATT&CK
| ID | Técnica | Uso |
|----|---------|-----|
| [[t1189-drive-by-compromise\|T1189]] | Drive-by Compromise | Google Ads para sites clone de software |
| [[t1204-002-malicious-file\|T1204.002]] | Malicious File | Usuario executa "installer" do software falso |
| [[t1497-virtualizationsandbox-evasion\|T1497]] | Sandbox Evasion | Anti-CIS check via GetUserDefaultLangID |
| [[t1055-process-injection\|T1055]] | Process Injection | Injecao em explorer.exe via NTDLL do disco |
| [[t1140-deobfuscatedecode-files-or-information\|T1140]] | Deobfuscaté Files | Strings RC4 decifradas em runtime |
| [[t1555-003-credentials-from-browsers\|T1555.003]] | Credentials from Browsers | DPAPI Chromium + Firefox sqlite |
| [[t1539-steal-web-session-cookie\|T1539]] | Steal Web Session Cookie | Cookies de sessao para account takeover |
| [[t1082-system-information-discovery\|T1082]] | System Information Discovery | Hardware GUID, OS, usuario, IP público |
| [[t1005-data-from-local-system\|T1005]] | Data from Local System | 40+ extensoes crypto + 2FA apps |
| [[t1071-001-web-protocols\|T1071.001]] | Web Protocols | HTTP POST para C2 com dados em ZIP |
| [[t1020-automated-exfiltration\|T1020]] | Automated Exfiltration | ZIP automatico com auto-delete pos-envio |
## Alvos Crypto - 40+ Extensoes
| Categoria | Extensoes Alvo |
|-----------|----------------|
| EVM (Ethereum) | MetaMask, Coinbase Wallet, Rabby, Frame |
| Multi-chain | Trust Wallet, Math Wallet, Binance Chain Wallet |
| Solana | Phantom, Solflare, Slope |
| Cosmos/IBC | Keplr, Leap Wallet |
| Tron | TronLink |
| 2FA | Authenticator, EOS Authenticator, Authy |
| Hardware wallet | Ledger Live, Trezor Suite |
## Impacto no Brasil / LATAM
Mars Stealer afeta o Brasil principalmente via campanhas de malvertising genericas:
- **Campanha Canada como modelo**: A campanha de Google Ads OpenOffice documentada pela Morphisec no Canada usa o mesmo mecanismo que campanhas identicas direcionadas ao Brasil para software populares como LibreOffice, VLC e Notepad++
- **Boom DeFi/crypto LATAM**: Com o crescimento exponencial de usuários de DeFi no Brasil e LATAM, as 40+ extensoes crypto do Mars representam risco direto para portadores de carteiras DeFi
- **CERT-UA relevância**: Embora o contexto ucraniano sejá geopolitico, demonstra que o Mars e considerado suficientemente eficaz para uso em campanhas dirigidas por atores com recursos
> [!warning] Evasão de EDR por NTDLL
> A técnica de carregar NTDLL limpo do disco para contornar hooks de EDR e uma TTP de alta sofisticacao para um stealer comercial de US$160. Organizacoes brasileiras com EDR mas sem proteção de syscalls diretas (kernel callbacks) podem ser vulneraveis. Verificar se a solução EDR monitora criação de processos via `NtCreateProcess` e `NtCreateThread` alem de hooks de API.
## Detecção e Caca a Ameaças
### Indicadores Comportamentais
- Binario de 90-100KB sem imports de DLL padrao (alta suspeita de Assembly/C puro)
- `ntdll.dll` sendo lido diretamente do disco por processo que nao e o loader do sistema
- `explorer.exe` realizando acesso a `Login Data` do Chrome (injetado pelo Mars)
- HTTP POST com payload ZIP para IP externo logo após acesso a arquivos de browser
- Processo terminando após um único HTTP POST (auto-delete pattern)
### KQL - Microsoft Sentinel
```kusto
// Mars: explorer.exe acessando arquivos de credenciais (injecao)
DeviceFileEvents
| where InitiatingProcessFileName =~ "explorer.exe"
| where FileName in~ ("Login Data", "Cookies", "Web Data", "wallet.dat")
| where FolderPath has_any ("Chrome", "Firefox", "Edge", "Brave", "Bitcoin", "Ethereum")
| project Timestamp, DeviceName, InitiatingProcessCommandLine,
FileName, FolderPath, InitiatingProcessId
| sort by Timestamp desc
```
```kusto
// Mars: NTDLL carregado do disco por processo suspeito (anti-hook)
DeviceImageLoadEvents
| where FileName =~ "ntdll.dll"
| where FolderPath !startswith @"C:\Windows\System32"
| where FolderPath !startswith @"C:\Windows\SysWOW64"
| where InitiatingProcessFileName !in~ ("ntoskrnl.exe", "smss.exe", "csrss.exe")
| project Timestamp, DeviceName, InitiatingProcessFileName,
FolderPath, InitiatingProcessFolderPath
```
## Referências
- [Morphisec - Mars Stealer OpenOffice Campaign (2022)](https://blog.morphisec.com/mars-stealer-via-google-paid-ads-campaigns)
- [3xp0rt - Mars Stealer Technical Analysis](https://3xp0rt.com/posts/mars-stealer)
- [CERT-UA - Mars Stealer Campaign Ukraine (2022)](https://cert.gov.ua/article/38611)
- [ANY.RUN - Mars Stealer Samples](https://any.run/malware-trends/mars_stealer)
- [ThreatFox - Mars Stealer IoCs](https://threatfox.abuse.ch/browse/malware/win.mars_stealer/)
- [Malpedia - win.mars_stealer](https://malpedia.caad.fkie.fraunhofer.de/details/win.mars_stealer)