Red Hot Cyber
La cybersecurity è condivisione. Riconosci il rischio, combattilo, condividi le tue esperienze ed incentiva gli altri a fare meglio di te.
Cerca

Operation Digital Eye: il primo attacco cinese che sfrutta Visual Studio Code come C2

Redazione RHC : 10 Dicembre 2024 14:45

Sintesi

  • Da fine giugno a metà luglio 2024, un presunto autore di minacce con legami con la Cina ha preso di mira grandi fornitori di servizi IT B2B nell’Europa meridionale, un cluster di attività che abbiamo soprannominato “Operation Digital Eye”.
  • Le intrusioni avrebbero potuto consentire agli avversari di stabilire punti di appoggio strategici e compromettere le entità a valle. SentinelLabs e Tinexta Cyber ​​hanno rilevato e interrotto le attività nelle loro fasi iniziali.
  • Gli autori della minaccia hanno utilizzato una capacità di movimento laterale indicativa della presenza di un fornitore condiviso o di un quartiermastro digitale che si occupa della manutenzione e del provisioning degli strumenti all’interno dell’ecosistema APT cinese.
  • Gli autori della minaccia hanno sfruttato in modo improprio Visual Studio Code e l’infrastruttura Microsoft Azure per scopi C2, tentando di eludere il rilevamento facendo apparire legittime le attività dannose.
  • La nostra visibilità suggerisce che l’abuso di Visual Studio Code per scopi C2 era stato relativamente raro in natura prima di questa campagna. Operation Digital Eye segna il primo caso di un presunto gruppo APT cinese che utilizza questa tecnica che abbiamo osservato direttamente.

Panoramica

Tinexta Cyber ​​e SentinelLabs hanno monitorato le attività di minaccia che hanno preso di mira i provider di servizi IT business-to-business nell’Europa meridionale. Sulla base del malware, dell’infrastruttura, delle tecniche utilizzate, della vittimologia e della tempistica delle attività, è altamente probabile che questi attacchi siano stati condotti da un attore di minacce China-nexus con motivazioni di cyberspionaggio.

Le relazioni tra i paesi europei e la Cina sono complesse, caratterizzate da cooperazione, competizione e tensioni sottostanti in settori quali commercio, investimenti e tecnologia. I gruppi di cyberspionaggio sospetti legati alla Cina prendono spesso di mira organizzazioni pubbliche e private in tutta Europa per raccogliere informazioni strategiche, ottenere vantaggi competitivi e promuovere interessi geopolitici, economici e tecnologici.

La campagna di attacco, che è stata soprannominata Operation Digital Eye, si è svolta da fine giugno a metà luglio 2024, per una durata di circa tre settimane. Le organizzazioni prese di mira forniscono soluzioni per la gestione di dati, infrastrutture e sicurezza informatica per clienti di vari settori, il che le rende obiettivi primari per gli attori del cyberspionaggio.

Sei un Esperto di Formazione?
Entra anche tu nel Partner program!
Accedi alla sezione riservata ai Creator sulla nostra Academy e scopri i vantaggi riservati ai membri del Partner program.
Per ulteriori informazioni, scrivici ad [email protected] oppure su Whatsapp al 379 163 8765 

Supporta RHC attraverso:


Ti piacciono gli articoli di Red Hot Cyber? Non aspettare oltre, iscriviti alla newsletter settimanale per non perdere nessun articolo.

Una presenza sostenuta all’interno di queste organizzazioni fornirebbe agli attori di Operation Digital Eye un punto d’appoggio strategico, creando opportunità di intrusioni nella supply chain digitale e consentendo loro di esercitare il controllo sui processi IT critici all’interno delle entità compromesse a valle. Gli attacchi sono stati rilevati e interrotti durante le loro fasi iniziali.

Il gruppo esatto dietro Operation Digital Eye rimane poco chiaro a causa dell’ampia condivisione di malware, manuali operativi e processi di gestione delle infrastrutture all’interno del panorama delle minacce cinesi. Gli autori delle minacce hanno utilizzato una capacità pass-the-hash, probabilmente proveniente dalla stessa fonte delle modifiche Mimikatz personalizzate closed-source osservate esclusivamente in presunte attività di cyberspionaggio cinese, come Operation Soft Cell e Operation Tainted Love. Il malware e gli strumenti utilizzati in queste campagne sono stati collegati a diversi gruppi APT cinesi distinti. Ci riferiamo collettivamente a queste modifiche Mimikatz personalizzate come mimCN.

L’evoluzione a lungo termine e il versioning dei campioni mimCN, insieme a caratteristiche notevoli come le istruzioni rilevate per un team separato di operatori, suggeriscono il coinvolgimento di un fornitore condiviso o di un quartier generale digitale responsabile della manutenzione attiva e della fornitura di strumenti. Questa funzione all’interno dell’ecosistema APT cinese, corroborata dalla fuga di notizie I-Soon, probabilmente svolge un ruolo chiave nel facilitare le operazioni di cyberspionaggio China-nexus.

L’abuso di Visual Studio Code Remote Tunnels per scopi C2 è centrale in questa campagna. Originariamente progettata per abilitare lo sviluppo remoto, questa tecnologia fornisce un accesso completo agli endpoint, inclusa l’esecuzione dei comandi e la manipolazione del file system. Inoltre, il tunneling di Visual Studio Code coinvolge eseguibili firmati da Microsoft e dall’infrastruttura di rete di Microsoft Azure, entrambi spesso non monitorati attentamente e in genere consentiti dai controlli delle applicazioni e dalle regole del firewall. Di conseguenza, questa tecnica potrebbe essere difficile da rilevare e potrebbe eludere le difese di sicurezza. In combinazione con l’accesso completo agli endpoint che fornisce, ciò rende il tunneling di Visual Studio Code una capacità attraente e potente da sfruttare per gli attori delle minacce.

Tinexta Cyber ​​e SentinelLabs hanno informato Microsoft dell’abuso di Visual Studio Code e dell’infrastruttura di Azure in relazione all’operazione Digital Eye.

Vettore di infezione e progressione dell’attacco

Gli aggressori hanno utilizzato l’iniezione di SQL (Structured Query Language) come vettore di accesso iniziale per infiltrarsi nei server Web e nei database connessi a Internet. Le intestazioni User-Agent delle richieste nei registri del traffico Web recuperate indicano che gli aggressori hanno utilizzato lo strumento sqlmap per automatizzare il rilevamento e lo sfruttamento delle vulnerabilità di iniezione di SQL.

Per stabilire un punto d’appoggio iniziale e mantenere un accesso persistente, gli autori della minaccia hanno distribuito una webshell basata su PHP. Relativamente semplice nella progettazione e nell’implementazione, la webshell utilizza la funzione assert per eseguire il codice PHP fornito dall’aggressore. La sua implementazione non assomiglia ad altre webshell con cui si ha familiarità. A questa webshell è stato dato il di PHPsert.

Per mascherare i file che implementano PHPsert e tentare di eludere il rilevamento in base all’attività del file system, gli aggressori hanno utilizzato nomi personalizzati su misura per gli ambienti infiltrati, facendo apparire legittimi i nomi dei file. Ciò includeva l’utilizzo della lingua locale e di termini allineati al contesto tecnologico delle organizzazioni prese di mira.

Dopo aver stabilito un punto d’appoggio iniziale, gli autori della minaccia hanno condotto una ricognizione utilizzando una varietà di strumenti di terze parti e utilità Windows integrate, come GetUserInfo e ping. Hanno anche distribuito lo strumento local.exe, che fa parte del Microsoft Windows NT Resource Kit e consente di visualizzare le appartenenze ai gruppi di utenti.

Per rubare le credenziali, gli aggressori hanno utilizzato lo strumento CreateDump per estrarre la memoria allocata al processo Local Security Authority Subsystem Service (LSASS) ed esfiltrare le credenziali. CreateDump fa parte della distribuzione di Microsoft .NET Framework. Gli autori della minaccia hanno anche recuperato le credenziali dal database Security Account Manager (SAM), che hanno estratto dal Registro di sistema di Windows utilizzando il comando reg save.

Gli attori della minaccia spesso nominano i file che distribuiscono utilizzando il pattern do.*. Esempi includono do.log (output dai comandi ping), do.exe (lo strumento CreateDump) e do.bat(uno script che esegue ed elimina l’eseguibile CreateDump).

Dagli endpoint inizialmente compromessi, gli aggressori si sono spostati lateralmente attraverso la rete interna, utilizzando principalmente connessioni RDP (Remote Desktop Protocol) e tecniche pass-the-hash. Per gli attacchi pass-the-hash, hanno utilizzato una versione modificata personalizzata di Mimikatz, implementata in un eseguibile denominato bK2o.exe.

Oltre alla webshell PHPsert, gli autori della minaccia hanno utilizzato due metodi per l’esecuzione di comandi remoti: l’accesso SSH, abilitato authorized_keys distribuendo file contenenti chiavi pubbliche per l’autenticazione, e Visual Studio Code Remote Tunnels.

Visual Studio Code Remote Tunnels, basato sulla tecnologia dev tunnel di Microsoft, consente agli sviluppatori di accedere e lavorare su sistemi remoti. Questo accesso include il terminale di comando e il file system, consentendo attività come l’esecuzione di comandi e la modifica di file. Gli attori di Operation Digital Eye hanno abusato di questa funzionalità per mantenere un accesso backdoor persistente ai sistemi compromessi.

Nel tentativo di eludere il rilevamento basato sull’attività del file system, gli autori della minaccia hanno utilizzato %SystemRoot%\Temp%ProgramData%\Visual Studio Code come directory di lavoro principali per l’archiviazione di strumenti e dati. %SystemRoot%\Temp è una directory in cui Windows archivia i file temporanei e spesso viene monitorata con minore attenzione. %ProgramData%\Visual Studio Code doveva apparire come una directory legittima associata a Visual Studio Code.

Le intrusioni sono state rilevate e interrotte prima che gli aggressori potessero procedere con fasi successive, come l’esfiltrazione dei dati.

Abuso di Visual Studio Code

Gli autori della minaccia hanno distribuito un eseguibile portatile di Visual Studio Code denominato code.exe, che è firmato digitalmente da Microsoft, e hanno utilizzato lo strumento winsw per eseguirlo come servizio Windows. Il file di configurazione winsw che è stato recuperato indica che gli aggressori hanno creato un servizio denominato Visual Studio Code Service, che viene eseguito code.exe con il parametro tunnel della riga di comando a ogni avvio del sistema.

Il file di configurazione rivela un approccio pragmatico da parte degli attori della minaccia, che hanno probabilmente modificato una configurazione disponibile al pubblico winsw. Ciò è suggerito dall’uso dell’identificativo myapp del servizio e della directory %BASE%\logs per l’archiviazione dei file winsw di registro, entrambi presenti nel file di configurazione pubblico e in quello recuperato.

file di configurazione winsw

Il parametro tunnel ordina a Visual Studio Code di creare un tunnel di sviluppo e di agire come server a cui gli utenti remoti possono connettersi. Dopo l’autenticazione al tunnel con un account Microsoft o GitHub, gli utenti remoti possono accedere all’endpoint che esegue il server di Visual Studio Code, tramite l’applicazione desktop di Visual Studio Code o la versione basata su browser, vscode.dev.

Dopo aver creato i tunnel di sviluppo, gli autori della minaccia si sono autenticati tramite account GitHub e hanno avuto accesso agli endpoint compromessi tramite la versione basata su browser di Visual Studio Code. Non si sa ancora se gli autori della minaccia abbiano utilizzato l’account GitHub auto registrato o compromesso per autenticarsi nei tunnel.

Infrastruttura di rete

Gli autori dell’Operazione Digital Eye hanno utilizzato infrastrutture situate esclusivamente in Europa, provenienti dal provider M247 e dalla piattaforma Cloud Microsoft Azure. Ciò faceva probabilmente parte di una strategia deliberata. Poiché le organizzazioni prese di mira hanno sede e operano in Europa, gli aggressori potrebbero aver cercato di ridurre al minimo i sospetti allineando la posizione della loro infrastruttura a quella dei loro obiettivi. Inoltre, l’infrastruttura Cloud comunemente utilizzata nei flussi di lavoro IT legittimi, come Microsoft Azure, spesso non è monitorata attentamente ed è frequentemente consentita tramite restrizioni firewall. Sfruttando l’infrastruttura Cloud pubblica per scopi dannosi, gli aggressori hanno fatto apparire legittimo il traffico, il che può essere difficile da rilevare e potrebbe eludere le difese di sicurezza.

Nelle fasi iniziali degli attacchi, gli autori della minaccia hanno utilizzato il server con indirizzo IP 146.70.161[.]78 per stabilire l’accesso iniziale rilevando e sfruttando le vulnerabilità di SQL injection, e il server con indirizzo IP 185.76.78[.]117 per gestire la webshell PHPsert. Entrambi gli indirizzi IP sono assegnati al provider di infrastrutture M247 e si trovano rispettivamente in Polonia e Italia.

Nelle fasi successive degli attacchi, gli autori della minaccia hanno utilizzato il server con indirizzo IP 4.232.170[.]137 per scopi C2 quando accedevano da remoto agli endpoint compromessi tramite il protocollo SSH. Questo server fa parte dell’infrastruttura Azure di Microsoft nella region del data center ( intervallo IP Azure :, tag di servizio 🙂 . Al momento non si hanno informazioni sul fatto che gli autori della minaccia abbiano utilizzato credenziali Azure auto-registrate o compromesse per accedere e gestire le risorse e 4.232.128[.]0/18 i servizi Azure AzureCloud.italynorth.

L’abuso del tunneling di Visual Studio Code per scopi C2 si basa anche sull’infrastruttura di Microsoft Azure. La creazione e l’hosting di un tunnel di sviluppo richiedono la connessione a un server Microsoft Azure con un dominio di *.[clusterID].devtunnels.ms, dove [clusterID]corrisponde alla regione di Azure dell’endpoint che esegue il server di Visual Studio Code, come euw per West Europe. In Operation Digital Eye, la creazione di tunnel di sviluppo ha comportato l’instaurazione di connessioni al server con il dominio [REDACTED].euw.devtunnels[.]ms, che si è risolto nell’indirizzo IP 20.103.221[.]187. Questo server fa parte dell’infrastruttura di Microsoft Azure nella regione West Europe del data center (intervallo IP di Azure: 20.103.0[.]0/16, tag di servizio: AzureCloud.westeurope).

La Webshell PHPsert

PHPsert esegue il codice PHP fornito dall’attaccante utilizzando la funzione assert, che, nelle versioni PHP precedenti alla 8.0.0, interpreta ed esegue stringhe di parametri come codice PHP. Per ostacolare l’analisi statica ed eludere il rilevamento, la webshell utilizza varie tecniche di offuscamento del codice, tra cui la codifica XOR, la rappresentazione dei caratteri esadecimali, la concatenazione di stringhe e nomi di variabili randomizzati.

Implementazione PHPsert

La webshell PHPsert funziona come segue:

  • PHPsert istanzia una classe con un singolo metodo regolare, che decodifica tramite XOR e concatena i caratteri esadecimali per generare la stringa assert. Il distruttore della classe (il metodo magico __destruct) usa questa stringa per invocare la funzione assert, passando il codice PHP fornito dall’attaccante come parametro.
  • La webshell recupera il codice PHP fornito dall’attaccante da un parametro di richiesta HTTP POST, ad esempio, momomomo. Se il parametro id è presente nell’URL della richiesta, PHPsert decodifica il valore codificato in Base64 del parametro POST. Se il parametro id è assente, la webshell utilizza il valore raw del parametro.
  • Infine, quando PHPsert termina l’esecuzione, viene richiamato il distruttore della classe, che a sua volta richiama la funzione assert per eseguire il codice PHP fornito dall’aggressore.

Abbiamo identificato diverse varianti di PHPsert, che sono state inviate a piattaforme di condivisione di malware da maggio 2023, da varie località tra cui Giappone, Singapore, Perù, Taiwan, Iran, Corea e Filippine. Queste varianti mostrano solo piccole differenze nella loro implementazione, come nomi di variabili e parametri di richiesta POST come mr6brute, e qq. L’analisi suggerisce che PHPsert è distribuito non solo come file PHP autonomo, ma è anche integrato in vari tipi di contenuti Web, tra cui editor di testo Web e sistemi di gestione dei contenuti.

Una delle varianti di PHPsert contiene frammenti di codice commentati in cinese semplificato che descrivono il codice vicino. Questi commenti e frammenti non sono presenti nelle versioni di PHPsert osservate in Operation Digital Eye, né in nessuna delle altre varianti della webshell. Di seguito sono riportati i commenti del codice, tutti tradotti automaticamente dal cinese semplificato:

  • 结果是"assert", che si traduce in The result is "assert".
  • 验证 $this->rg 是否安全, che si traduce in Verify that $this->rg is safe.
  • 验证和清理用户输入, che si traduce in Validating and sanitizing user input.
Frammenti di codice PHPsert con commenti in cinese

La presenza di questi commenti, insieme agli indicatori di codice rimosso nelle varianti di PHPsert, suggerisce il potenziale coinvolgimento di sviluppatori di lingua cinese che potrebbero aver semplificato la logica di esecuzione della webshell.

Capacità di Pass-the-Hash

L’eseguibile bK2o.exe (una versione modificata personalizzata di Mimikatz utilizzata in Operation Digital Eye per gli attacchi pass-the-hash) consente l’esecuzione di processi all’interno del contesto di sicurezza di un utente sfruttando un hash di password NTLM compromesso, bypassando la necessità della password effettiva dell’utente. Per ottenere ciò, bK2o.exe sovrascrive la memoria del processo LSASS. Lo strumento supporta i seguenti parametri della riga di comando:

  • /c: Processo da eseguire; cmd.exe se non specificato, il valore predefinito è .
  • /u: Nome utente dell’utente.
  • /d: Il dominio dell’utente.
  • /h: Hash della password NTLM.

bK2o.exe implementa una tecnica pass-the-hash sovrascrivendo la memoria LSASS in modo simile a Mimikatz, con la sua implementazione parzialmente sovrapposta alle funzioni Mimikatz come kuhl_m_sekurlsa_pth_luidkuhl_m_sekurlsa_msv_enum_cred_callback_pth. In sintesi, bK2o.exe esegue quanto segue:

  • Crea un processo sospeso in una nuova sessione di accesso, specificando il processo fornito dall’aggressore, il nome utente, il dominio e una password vuota.
  • In base all’identificatore univoco locale (LUID) della sessione, individua ed estrae dalla memoria del processo LSASS un blob di dati di credenziali crittografati contenente l’hash NTLM dell’utente e le chiavi di crittografia necessarie per decrittografare il blob.
  • Decrittografa il blob di dati, sovrascrive l’hash NTLM dell’utente con l’hash fornito dall’aggressore e crittografa nuovamente il blob di dati.
  • Riprende il processo sospeso.
bK2o.exe crea un nuovo processo e recupera il LUID della sessione di accesso

Per navigare nella memoria LSASS, bK2o.exe usa le firme di codice, rappresentate come sequenze di byte in formato esadecimale. Queste sequenze corrispondono a istruzioni LSASS note, che servono come punti di navigazione all’interno della memoria.

Per ostacolare l’analisi statica ed eludere il rilevamento, bK2o.exe offusca le firme del codice e le stringhe costruendole dinamicamente sullo stack in fase di esecuzione, anziché memorizzarle come dati statici.

bK2o.exe costruisce la firma del codice 33 ff 41 89 37 4c 8b f3 […] sullo stack

Dall’operazione Digital Eye a Tainted Love e Soft Cell

Sono stati quindi identificati altri due campioni e caricati su piattaforme di condivisione malware che costruiscono firme di codice sullo stack, che si chiamano wsx1.exewsx1.exe. Come bK2o.exe, entrambi wsx.exewsx1.exe sono versioni personalizzate modificate di Mimikatz e implementano la funzionalità pass-the-hash.

Segmenti di codice sostanziali in wsx.exewsx1.exe, che implementano la costruzione di firme di codice sullo stack, si sovrappongono a quelli in bK2o.exe, includendo dimensioni mov e valori di operandi di istruzione identici. Ciò suggerisce che wsx.exewsx1.exe, e bK2o.exe sono molto probabilmente derivati ​​dalla stessa fonte.

Segmento di codice in bK2o.exe
Segmento di codice in wsx1.exe

A loro volta, si è osservato sovrapposizioni tra i componenti wsx.exewsx1.exe e mim221. mim221 è uno strumento che esegue un “antifurto” di credenziali ben gestito e con più versioni, nonché una versione modificata personalizzata di Mimikatz, che SentinelLabs ha osservato nell’operazione Tainted Love, una campagna che ha preso di mira i fornitori di servizi di telecomunicazioni in Medio Oriente nel 2023.

Si è quindi attribuito Operation Tainted Love a un presunto gruppo cinese di cyberspionaggio all’interno del nesso tra Granite Typhoon (precedentemente noto come Gallium) e APT41, pur riconoscendo la possibilità di condivisione di strumenti tra attori di minacce sponsorizzati dallo stato cinese e il potenziale coinvolgimento di un fornitore condiviso o di un quartiermastro digitale. Si sta valutando che mim221 rappresenti un’evoluzione degli strumenti associati a Operation Soft Cell, come simplify_32.exe . Operation Soft Cell, che ha preso di mira i provider di telecomunicazioni nel 2017 e nel 2018, è stata collegata a Granite Typhoon e sono state suggerite anche possibili connessioni tra gli attori di Soft Cell e APT41.

mim221 ha un’architettura multi-componente, con un singolo eseguibile che organizza tre componenti — pc.dllAddSecurityPackage64.dll, e getHashFlsa64.dll— usando tecniche come la decrittazione, l’iniezione e il caricamento di immagini riflettenti. Questi componenti condividono diverse sovrapposizioni con bK2o.exewsx.exe, e wsx1.exe.

Per ostacolare l’analisi statica, alcuni componenti mim221 offuscano anche le stringhe costruendole sullo stack in fase di esecuzione. Inoltre, i componenti mim221 AddSecurityPackage64.dllgetHashFlsa64.dll implementano la registrazione degli errori simile a quella di wsx.exewsx1.exe, inclusi messaggi di errore personalizzati identici, un formato di output coerente e gli stessi errori in lingua inglese.

Messaggi di errore in wsx.exe e wsx1.exe

Inoltre, le informazioni RTTI (Run-Time Type Information) memorizzate in wsx.exewsx1.exe, e nel componente mim221 getHashFlsa64.dll rivelano che classi con gli stessi nomi sono dichiarate in questi eseguibili. Non abbiamo osservato questi nomi di classe in strumenti open source o disponibili al pubblico.

Redazione
La redazione di Red Hot Cyber è composta da un insieme di persone fisiche e fonti anonime che collaborano attivamente fornendo informazioni in anteprima e news sulla sicurezza informatica e sull'informatica in generale.