download di una versione di Slack infettata da un trojan download un sito web di typosquatting offre agli hacker qualcosa che la maggior parte degli utenti non saprebbe nemmeno cercare: un desktop nascosto in esecuzione sul proprio computer.
Il programma di installazione sembra legittimo e avvia persino una copia funzionante di Slack. Tuttavia, in background, può creare una sessione invisibile che consente agli hacker di navigare, accedere agli account e interagire con il sistema senza che nulla appaia sullo schermo. Per chiarezza, questa campagna non ha nulla a che vedere con l'azienda Slack, alla quale abbiamo comunicato quanto scoperto.
Slack conta decine di milioni di utenti attivi al giorno in oltre 200.000 organizzazioni paganti distribuite in più di 150 paesi, tra cui 77 delle aziende della classifica Fortune 100. Pertanto, un programma di installazione infettato da un trojan non rappresenta solo una minaccia per la persona che lo esegue, ma anche per le reti aziendali, gli account collegati tramite SSO e le comunicazioni interne.
Tutti si fidano del logo

Slack è una di quelle app che le persone installano senza pensarci due volte. Si affianca Chrome Zoom rientra a pieno titolo nella vasta gamma di software che i lavoratori scaricano il primo giorno di un nuovo impiego, spesso tramite una rapida ricerca su Google anziché da un link salvato tra i preferiti. È proprio questo che lo rende così attraente. Il marchio è immediatamente riconoscibile, il programma di installazione è qualcosa che milioni di persone hanno già utilizzato e l'intera esperienza di installazione appare del tutto ordinaria.
Gli autori di questa campagna hanno registrato il dominio slacks[.]pro (da notare la «s» in più e il dominio di primo livello .pro al posto di .com). Il codice sorgente del sito include una funzione JavaScript che intercetta ogni clic sulla pagina e reindirizza il browser a un download su un dominio separato, debtclean-ua[.]sbs. Gli unici clic esclusi sono quelli sui pulsanti di consenso ai cookie; tutto il resto attiva il download. Non si tratta di un vero e proprio attacco drive-by che sfrutta il browser in modo silenzioso, ma ci si avvicina molto: basta un solo clic da parte di un utente distratto.
Ciò che appare sul desktop della vittima è un file denominato slack-4-49-81.exe, un nome che rispecchia la numerazione delle versioni effettive di Slack in modo talmente fedele che la maggior parte delle persone non avrebbe alcuna esitazione.

Non si tratta di una tattica sconosciuta. Nell’agosto 2024 abbiamo documentato una campagna quasi identica che utilizzava annunci Google Ads fraudolenti per reindirizzare le ricerche su Slack verso una download dannosa. Questi attacchi diffondevano SecTopRAT, un trojan di accesso remoto dotato di funzionalità di furto di dati.
Queste campagne continuano a ripetersi perché la formula funziona: gli hacker scelgono un marchio affidabile, registrano un dominio convincente e fanno leva sul fatto che la maggior parte delle persone non esamina attentamente un URL quando sta semplicemente cercando di configurare il proprio ambiente di lavoro.
Un'installazione vera e propria e un programma di avvio nascosto, in esecuzione contemporaneamente
Ecco cosa rende ingegnoso questo particolare campione: non si limita a simulare l'installazione di Slack. Installa effettivamente una versione funzionante dell'applicazione, eseguendo contemporaneamente in background un programma di caricamento del malware. La vittima vede una schermata iniziale legittima, osserva Slack apparire nella barra delle applicazioni e non ha motivo di sospettare che qualcosa sia andato storto.
Hai preso qualcosa che non avresti dovuto?
Pochi secondi dopo il lancio, slack-4-49-81.exe salva due file temporanei nella directory dell'utente %TEMP% cartella. La prima, slack.tmp, è l'esca: un pacchetto di installazione autoestraente di Squirrel. Squirrel è un framework di aggiornamento legittimo e open source integrato in decine di app Electron, tra cui le vere Slack, Discord e Microsoft. Teams . Il contagocce contiene una copia autentica di Squirrel's Update.exe insieme a un pacchetto NuGet chiamato slack-4.49.81-full.nupkg, un'immagine di benvenuto con il marchio (background.gif), e un manifesto di rilascio. Quando slack.tmp una volta eseguito, decomprime tutto questo in %LOCALAPPDATA%\SquirrelTemp, lancia Update.exe con uno standard --install flag, e da quel momento in poi l'installazione di Slack procede esattamente come se l'utente avesse scaricato l'app da slack.com. Slack si apre, ha un bell'aspetto e funziona.
Il secondo file, svc.tmp, arriva pochi secondi dopo. Questo è il programma di caricamento: un eseguibile separato di circa 519 KB incorporato nel programma di installazione da 150 MB ed estratto in %TEMP% accanto all'esca. Non è firmato, si identifica nei metadati del suo eseguibile portatile (PE) come Windows Component Update Service di Microsoft Corporation e non ha alcuna relazione con il framework Squirrel o con l'applicazione Slack che viene installata accanto ad esso. Quasi immediatamente crea un piccolo file chiamato loader_log.txt nella cartella temporanea, confermando che la fase di caricamento è stata avviata, e tenta di contattare un server di comando e controllo (C2) all'indirizzo 94.232.46.16 sulla porta TCP 8081.
Nel frattempo, l'installazione di Squirrel viene completata e viene creata una chiave Run nel Registro di sistema per garantire il funzionamento anche dopo il riavvio: nome del valore com.squirrel.slack.slack sotto HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run. Questo è esattamente il nome della chiave e il percorso creati da un'installazione legittima di Slack. Un amministratore IT che esamina le voci di avvio automatico vedrebbe quella che sembra una normale installazione di Slack e continuerebbe a scorrere.
All'interno del caricatore: cosa rivela l'analisi statica
Per capire cosa è progettato per fare il caricatore una volta che ha un canale C2, abbiamo esaminato direttamente il binario. Le sue informazioni sulla versione PE affermano di essere un Windows Servizio di aggiornamento dei componenti (nome interno) WinSvcUpd.exe), pubblicato da Microsoft Corporation, versione 1.4.2.0. Niente di tutto ciò è vero. Si tratta di una falsa bandiera pensata per passare inosservata in un elenco dei processi o nel Task Manager.
Il binario è a 64 bit Windows Eseguibile compilato con MSVC. Le sue sette sezioni PE hanno nomi casuali, come .7ssik, .d1npl, .m6zef, anziché i file standard .text e .rdata generati dai normali compilatori, in linea con l'uso di uno strumento personalizzato di compilazione o crittografia. La sua tabella di importazione è volutamente ridotta al minimo: 90 funzioni da KERNEL32.dll e nient'altro. Non ci sono importazioni statiche per le operazioni di rete, l'accesso al registro o la manipolazione dei processi. Al contrario, risolve tali API in fase di esecuzione utilizzando GetProcAddress e LoadLibraryExW, una tecnica standard che nasconde le reali funzionalità del file binario all'analisi della tabella di importazione.

Ciò che rende questo campione insolito per un loader è la sua estrema "loquacità" interna. Il file binario è costellato di stringhe di debug che descrivono la sua intera architettura, organizzata in sottosistemi contrassegnati da etichette. Queste stringhe non erano destinate alla vittima. Si tratta di informazioni diagnostiche degli sviluppatori rimaste nella build, che ci rivelano esattamente a cosa fosse destinato questo strumento.
Stringhe con prefisso [P1] descrivere la prima fase: il loader scarica un payload dal proprio C2 ([P1] Downloading payload...). Il download utilizza WinHTTP, risolto in fase di esecuzione. Le stringhe di debug [HTTP] Connect, [HTTP] Send, e [HTTP] Recv tracciare l'intero ciclo della richiesta, mentre [HTTP] winhttp unavailable rivela il percorso di fallback se la libreria non può essere caricata. Memorizza il payload nella memoria condivisa tramite Windows API di mappatura dei file ([P1] Payload in shared memory), e avvia una seconda istanza di se stessa come Fase 2 ([P1] Phase-2 launched). La fase 2 legge il payload dalla memoria condivisa ([P2] Payload copied from shared memory) e lo decodifica. Le stringhe [CRYPT] Decrypting... e [CRYPT] MZ OK confermare che il payload arrivi crittografato e sia convalidato come Windows eseguibile dopo la decrittazione. La DLL decrittografata viene scritta su disco con un nome file corrispondente al modello wmiprvse_*.tmp, progettato per mimetizzarsi con i file temporanei creati dal legittimo Windows Host del provider WMI.
Il caricatore è quindi progettato per richiamare una specifica funzione esportata dalla DLL decriptata: HvncRun. Le stringhe [LOAD] Calling HvncRun... e --- HvncClient log --- identificare il payload come un client HVNC, uno strumento di Hidden Virtual Network Computing. HVNC si differenzia in modo fondamentale dai tradizionali trojan di accesso remoto: crea una sessione desktop completamente separata e invisibile sul computer della vittima. L'autore dell'attacco può aprire browser, accedere a portali bancari e interagire con sessioni autenticate senza che nulla appaia sullo schermo visibile dell'utente. Si tratta di uno strumento utilizzato principalmente nell'ambito di operazioni di frode finanziaria.
Per eseguire il payload HVNC in modo invisibile, il programma di caricamento è in grado di iniettare la DLL in explorer.exe utilizzando una tecnica nota come «iniezione basata su sezioni». Le stringhe [INJ] === Section-based injection into explorer.exe === e [INJ] Remote thread created in explorer.exe! descrivere una sequenza in cui il caricatore crea una sezione di memoria condivisa tramite NtCreateSection, lo mappa sia nel proprio processo che nel Windows shell, scrive shellcode e il percorso DLL nella regione condivisa e avvia un thread remoto tramite NtCreateThreadEx. Si tratta di una variante dell'iniezione di processo più difficile da individuare rispetto alla classica WriteProcessMemory questo approccio, poiché evita di scrivere direttamente nello spazio di memoria del sistema di destinazione. Se le API di NT non sono disponibili, il caricatore ricorre alla scrittura della DLL su disco e al suo caricamento diretto ([INJ] Required NT APIs not available, falling back to DropAndLoad).

Il file binario include misure di protezione attive contro l'analisi. La stringa [AA] Debugger/sandbox detected indica che verifica la situazione e modifica il proprio comportamento di conseguenza. Dispone degli strumenti necessari per farlo: IsDebuggerPresent e GetTickCount compaiono nella tabella delle importazioni; sono comunemente utilizzate per il rilevamento dei debugger e per eludere le sandbox basate sul tempo, sebbene entrambe siano anche importazioni CRT standard in qualsiasi binario compilato con MSVC. La stringa di debug è l'indicatore più evidente del fatto che queste API vengono utilizzate intenzionalmente.
Cosa significa questo per chi l'ha eseguito
Se hai scaricato Slack da un sito diverso da slack.com di recente, in particolare da un dominio che termina con .pro, oppure se si tratta di un sito che scarica automaticamente un file quando si clicca in un punto qualsiasi della pagina, prendilo sul serio.
Il loader tenta di connettersi al proprio server C2 prima che la finestra di Slack abbia terminato il caricamento. È progettato per utilizzare tale connessione (se stabilita) per download decriptare un payload HVNC e iniettarlo in explorer.exe operare dall'interno Windows shell stessa. L'installazione di Squirrel scrive la stessa chiave Run che scriverebbe un'installazione legittima di Slack, quindi la voce di avvio automatico è indistinguibile da una macchina pulita. Nel frattempo, il loader deve avere successo solo una volta: se scarica il payload HVNC e lo inietta in explorer.exe Durante l'esecuzione iniziale, l'autore dell'attacco ottiene un punto d'appoggio che rimane attivo fino al riavvio successivo. L'eventuale persistenza del payload dipende dalle mosse successive dell'operatore C2.
Come stare al sicuro
Questa campagna è un caso di studio su quanto sforzo ingegneristico sia necessario per sembrare ordinario. Un percorso del codice installa software reale attraverso un framework legittimo. L'altro esegue un caricatore multifase con risoluzione API dinamica, consegna del payload crittografato, iniezione di processo nel Windows Shell e difese anti-analisi, il tutto racchiuso in un file binario che si identifica come un servizio Microsoft. L'esca nasconde ciò che sta accadendo, mentre il loader fornisce all'attaccante un punto d'appoggio.
Aggiungi ai preferiti le download ufficiali dei software che utilizzi. Se ti ritrovi a cercare su Google downloade a cliccare sul primo risultato che ti sembra quello giusto, sei esattamente il tipo di utente a cui questa campagna è destinata.
- download solo dal sito ufficiale. Vai direttamente su slack.com oppure utilizza un segnalibro affidabile. Evita di cliccare su annunci pubblicitari o link sconosciuti.
- Controlla attentamente l'URL. Fai attenzione a piccole differenze, come lettere in più o domini insoliti (ad esempio, «.pro» invece di «.com»).
- Fai attenzione ai siti che avviano il download al clic. Se una pagina inizia a scaricare un file quando clicchi in un punto qualsiasi, chiudila.
- Verifica il programma di installazione prima di eseguirlo. Fai clic con il pulsante destro del mouse sul file, controlla le proprietà e verifica che sia presente una firma digitale valida.
- Utilizza una protezione di sicurezza in tempo reale. Uno strumento di sicurezza è in grado di bloccare i domini dannosi noti e di individuare comportamenti sospetti durante l'installazione.
- Presta attenzione a comportamenti insoliti dopo l'installazione di un software. È opportuno indagare su attività di rete inaspettate, rallentamenti o processi sconosciuti.
- Se qualcosa ti sembra strano, agisci subito. Disconnettiti da Internet, esegui una scansione completa e cambia le tue password da un dispositivo non compromesso, in particolare per gli account di posta elettronica, bancari e di lavoro.
Cosa fare se potresti essere stato colpito
- Disconnettersi immediatamente dalla rete per interrompere qualsiasi sessione C2 attiva.
- Esegui una scansione completa con Malwarebytes .
- Cambia tutte le password degli account a cui hai effettuato l'accesso da questo computer. Esegui questa operazione da un altro dispositivo non compromesso. Dai la priorità agli account di posta elettronica, bancari e SSO.
- Se si tratta di un computer aziendale, avvisa immediatamente il reparto IT o il team di sicurezza.
Indicatori di compromesso (IOC)
Hash dei file (SHA-256)
cfd2e466ea5ac50f9d9267f3535a68a23e4ff62e3fe3e20a30ec52024553c564 (slack-4-49-81.exe)
08fd0a82cdeb0a963b7416cf57446564dfed5de5c6f66dee94b36d28bfefec9d (svc.tmp)
Distribuzione
slacks[.]pro
debtclean-ua[.]sbs
Indicatori di rete
94.232.46.16:8081
“Una delle migliori suite di sicurezza informatica al mondo.”
Secondo CNET.Leggi la loro recensione →





