# 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)