WinorDLL64: una backdoor dal vasto arsenale di Lazarus?

WinorDLL64: una backdoor dal vasto arsenale di Lazarus?

Nodo di origine: 1975596

La regione presa di mira e la sovrapposizione nel comportamento e nel codice suggeriscono che lo strumento sia utilizzato dal famigerato gruppo APT allineato alla Corea del Nord

I ricercatori ESET hanno scoperto uno dei payload del Scarica Wslink che abbiamo scoperto nel 2021. Abbiamo chiamato questo payload WinorDLL64 in base al suo nome file WinorDLL64.dll. Wslink, che aveva il nome file WinorLoaderDLL64.dll, è un caricatore per i binari di Windows che, a differenza di altri caricatori di questo tipo, viene eseguito come server ed esegue i moduli ricevuti in memoria. Come suggerisce la formulazione, un caricatore funge da strumento per caricare un payload, o il malware vero e proprio, sul sistema già compromesso. Il vettore di compromesso Wslink iniziale non è stato identificato.

Il payload Wslink inizialmente sconosciuto è stato caricato su VirusTotal dalla Corea del Sud poco dopo la pubblicazione del nostro post sul blog e ha raggiunto una delle nostre regole YARA basate sul nome univoco di Wslink WinorDLL64. Per quanto riguarda Wslink, la telemetria ESET ha visto solo pochi rilevamenti: in Europa centrale, Nord America e Medio Oriente.

I WinorDLL64 Il payload funge da backdoor che in particolare acquisisce ampie informazioni di sistema, fornisce mezzi per la manipolazione dei file, come l'esfiltrazione, la sovrascrittura e la rimozione di file ed esegue comandi aggiuntivi. È interessante notare che comunica tramite una connessione già stabilita dal caricatore Wslink.

Nel 2021, non abbiamo trovato alcun dato che suggerisca che Wslink sia uno strumento di un noto attore di minacce. Tuttavia, dopo un'analisi approfondita del carico utile, abbiamo attribuito WinorDLL64 al gruppo Lazarus APT con bassa confidenza basata sulla regione target e una sovrapposizione sia nel comportamento che nel codice con campioni Lazarus noti.

Attivo almeno dal 2009, questo famigerato gruppo schierato con la Corea del Nord è responsabile di incidenti di alto profilo come sia il Hack della Sony Pictures Entertainment e decine di milioni di dollari attacchi informatici nel 2016, le WannaCryptor (alias WannaCry) nel 2017 e una lunga storia di attacchi dirompenti contro Infrastrutture pubbliche e critiche sudcoreane almeno dal 2011. US-CERT e FBI chiamano questo gruppo COBRA NASCOSTO.

Sulla base del nostro vasta conoscenza delle attività e delle operazioni di questo gruppo, riteniamo che Lazarus sia costituito da un grande team sistematicamente organizzato, ben preparato e composto da diversi sottogruppi che utilizzano un ampio set di strumenti. L'anno scorso, noi ha scoperto uno strumento di Lazzaro che ha approfittato del CVE‑2021‑21551 vulnerabilità per prendere di mira un dipendente di un'azienda aerospaziale nei Paesi Bassi e un giornalista politico in Belgio. È stato il primo abuso registrato della vulnerabilità; in combinazione, lo strumento e la vulnerabilità hanno portato all'accecamento del monitoraggio di tutte le soluzioni di sicurezza sulle macchine compromesse. Abbiamo anche fornito un'ampia descrizione del struttura della macchina virtuale utilizzato nei campioni di Wslink.

Questo blogpost spiega l'attribuzione di WinorDLL64 a Lazarus e fornisce un'analisi del payload.

Link a Lazzaro

Abbiamo scoperto sovrapposizioni sia nel comportamento che nel codice con i campioni di Lazarus da Operazione GhostSecret e la Impianto Bankshot descritto da McAfee. La descrizione degli impianti in entrambi gli articoli GhostSecret e Bankshot contiene sovrapposizioni nella funzionalità con WinorDLL64 e abbiamo riscontrato alcune sovrapposizioni di codice negli esempi. In questo blogpost useremo solo il file FE887FCAB66D7D7F79F05E0266C0649F0114BA7C campione da GhostSecret per il confronto con WinorDLL64 (1BA443FDE984CEE85EBD4D4FA7EB1263A6F1257F), se non diversamente specificato.

I seguenti dettagli riassumono i fatti a sostegno della nostra attribuzione di scarsa fiducia a Lazarus:

1. Vittimologia

  • I colleghi ricercatori di AhnLab hanno confermato le vittime sudcoreane di Wslink nella loro telemetria, che è un indicatore rilevante considerando i tradizionali obiettivi di Lazarus e che abbiamo osservato solo pochi colpi.

Figura 1. Vittima sudcoreana denunciata, dove mstoned7 è il ricercatore di Ahnlab

2. Malware

  • L'ultimo esempio di GhostSecret riportato da McAfee (FE887FCAB66D7D7F79F05E0266C0649F0114BA7C) risale a febbraio 2018; abbiamo individuato il primo campione di Wslink alla fine del 2018 e altri ricercatori hanno riportato successi nell'agosto 2018, che hanno rivelato dopo la nostra pubblicazione. Quindi, questi campioni sono stati individuati a distanza di tempo relativamente breve.
  • I Intestazioni ricche di PE indicano che lo stesso ambiente di sviluppo e progetti di dimensioni simili sono stati utilizzati in molti altri campioni noti di Lazarus (ad es. 70DE783E5D48C6FBB576BC494BAF0634BC304FD6; 8EC9219303953396E1CB7105CDB18ED6C568E962). Abbiamo trovato questa sovrapposizione utilizzando le seguenti regole che coprono solo questi campioni Wslink e Lazarus, che è un indicatore con un peso ridotto. Li abbiamo testati La retrocaccia di VirusTotal e il nostro corpus di file interno.

rich_signature.length == 80 e
pe.rich_signature.toolid(175, 30319) == 7 e
pe.rich_signature.toolid(155, 30319) == 1 e
pe.rich_signature.toolid(158, 30319) == 10 e
pe.rich_signature.toolid(170, 30319) >= 90 e
pe.rich_signature.toolid(170, 30319) <= 108

Questa regola può essere tradotta nella seguente notazione che è più leggibile e utilizzata da VirusTotal, dove è possibile vedere la versione del prodotto e l'ID build (VS2010 build 30319), numero e tipo di file sorgente/oggetto utilizzati ([LTCG C++] dove LTCG sta per Link Time Code Generation, [ASM], [ C ]), e numero di esportazioni ([SCAD]) nella regola:

[LTCG C++] VS2010 build 30319 conteggio=7
[EXP] VS2010 build 30319 conteggio=1
[ASM] VS2010 build 30319 conteggio=10
[ C ] VS2010 build 30319 conteggio in [ 90 .. 108 ]

  • L'articolo di GhostSecret descriveva "un componente unico per la raccolta di dati e l'installazione di impianti che ascolta sulla porta 443 le connessioni al server di controllo in entrata" che funzionava anche come servizio. Questa è una descrizione accurata del comportamento del downloader Wslink, a parte il numero di porta, che può variare in base alla configurazione. Per riassumere, anche se l'implementazione è diversa, entrambi hanno lo stesso scopo.
  • Il caricatore è virtualizzato da Code Virtualizer di Oreans, che è una protezione commerciale utilizzata frequentemente di Lazzaro.
  • Il caricatore utilizza il Modulo di memoria libreria per caricare i moduli direttamente dalla memoria. La libreria non è comunemente utilizzata dal malware, ma è piuttosto popolare tra i gruppi allineati alla Corea del Nord come Lazarus e Kimsuky.
  • Sovrapposizione nel codice tra WinorDLL64 e GhostSecret che abbiamo riscontrato durante la nostra analisi. I risultati e il significato nell'attribuzione sono elencati nella Tabella 1.

Tabella 1. Somiglianze tra WinorDLL64 e GhostSecret e il loro significato nell'attribuire entrambi allo stesso autore di minacce

Altre somiglianze tra WinorDLL64 e GhostSecret Impact
Sovrapposizione di codice nel codice responsabile per ottenere l'architettura del processore Basso
Sovrapposizione di codice nella manipolazione della directory corrente Basso
Sovrapposizione di codice nell'ottenere l'elenco dei processi Basso
Sovrapposizione codice nell'invio file Basso
Sovrapposizione di comportamento nei processi di quotazione Basso
Sovrapposizione del comportamento nella manipolazione della directory corrente Basso
Sovrapposizione di comportamento nell'elenco di file e directory Basso
Sovrapposizione di comportamento nei volumi di quotazione Basso
Sovrapposizione di comportamento nella lettura/scrittura dei file Basso
Sovrapposizione di comportamento nella creazione di processi Basso
Il comportamento considerevole si sovrappone nella rimozione sicura dei file Basso
Il comportamento considerevole si sovrappone alla fine dei processi Basso
Notevole sovrapposizione di comportamento nella raccolta delle informazioni di sistema Basso

La sovrapposizione del codice nella funzionalità di invio di file è evidenziata nella Figura 2 e nella Figura 3.

Figura 2. GhostSecret invia un file

Figura 3. Wslink invia un file

Analisi tecnica

WinorDLL64 funge da backdoor che in particolare acquisisce ampie informazioni di sistema, fornisce mezzi per la manipolazione dei file ed esegue comandi aggiuntivi. È interessante notare che comunica tramite una connessione TCP già stabilita dal suo caricatore e utilizza alcune delle funzioni del caricatore.

Figura 4. Visualizzazione della comunicazione di Wslink

La backdoor è una DLL con una singola esportazione senza nome che accetta un parametro, una struttura per la comunicazione già descritta nel nostro post precedente. La struttura contiene un contesto TLS – socket, key, IV – e callback per l'invio e la ricezione di messaggi crittografati con AES-CBC a 256 bit che consentono a WinorDLL64 di scambiare dati in modo sicuro con l'operatore su una connessione già stabilita.

I seguenti fatti ci portano a credere con grande sicurezza che la biblioteca faccia effettivamente parte di Wslink:

  • La struttura univoca viene utilizzata ovunque nel modo previsto, ad esempio, il contesto TLS e altri parametri significativi vengono forniti nell'ordine previsto ai callback corretti.
  • Il nome della DLL è WinorDLL64.dll e il nome di Wslink era WinorLoaderDLL64.dll.

WinorDLL64 accetta diversi comandi. La Figura 5 mostra il ciclo che riceve e gestisce i comandi. Ogni comando è associato a un ID univoco e accetta una configurazione che contiene parametri aggiuntivi.

Figura 5. La parte principale del ciclo di ricezione dei comandi della backdoor

L'elenco dei comandi, con le nostre etichette, è in Figura 6.

Figura 6. L'elenco dei comandi

La tabella 2 contiene un riepilogo dei comandi WinorDLL64, dove le categorie modificate e vecchie si riferiscono alla relazione con la funzionalità GhostSecret precedentemente documentata. Evidenziamo solo cambiamenti significativi nella categoria modificata.

Tabella 2. Panoramica dei comandi backdoor

Categoria ID comando Funzionalità Descrizione
New 0x03 Esegui un comando di PowerShell WinorDLL64 indica all'interprete di PowerShell di eseguire senza restrizioni e di leggere i comandi dall'input standard. Successivamente, la backdoor passa il comando specificato all'interprete e invia l'output all'operatore.
0x09 Comprimi e scarica una directory WinorDLL64 itera in modo ricorsivo su una directory specificata. Il contenuto di ciascun file e directory viene compresso separatamente e scritto in un file temporaneo che viene successivamente inviato all'operatore e quindi rimosso in modo sicuro.
0x0D Disconnettere una sessione Disconnette un utente connesso specificato dalla sessione di Servizi Desktop remoto dell'utente. Il comando può anche eseguire diverse funzionalità in base al parametro.
0x0D Elenca le sessioni Acquisisce vari dettagli su tutte le sessioni sul dispositivo della vittima e li invia all'operatore. Il comando può anche eseguire diverse funzionalità in base al parametro.
0x0E Misura il tempo di connessione Utilizza l'API di Windows GetTickCount per misurare il tempo necessario per connettersi a un host specificato.
Modificata 0x01 Ottieni informazioni sul sistema Acquisisce dettagli completi sul sistema della vittima e li invia all'operatore.
0x0A Rimuovi i file in modo sicuro Sovrascrive i file specificati con un blocco di dati casuali, rinomina ogni file con un nome casuale e infine li rimuove in modo sicuro uno per uno.
0x0C Uccidi i processi Termina tutti i processi i cui nomi corrispondono a un modello fornito e/o con un PID specifico.
Vecchio 0x02/0x0B Crea un processo Crea un processo come utente corrente o specificato e, facoltativamente, ne invia l'output all'operatore.
0x05 Imposta/Ottieni la directory corrente Tenta di impostare e successivamente acquisire il percorso della directory di lavoro corrente.
0x06 Elenca i volumi Itera sulle unità da C: a Z: e acquisisce il tipo di unità e il nome del volume. Il comando può anche eseguire diverse funzionalità in base al parametro.
0x06 Elenca i file in una directory Itera sui file nella directory specificata e acquisisce informazioni come nomi, attributi, ecc. Il comando può anche eseguire diverse funzionalità in base al parametro.
0x07 Scrivi su un file Scarica e aggiunge la quantità dichiarata di dati al file specificato.
0x08 Leggi da un file Il file specificato viene letto e inviato all'operatore.
0x0C Elenca i processi Acquisisce dettagli su tutti i processi in esecuzione sul dispositivo della vittima e invia inoltre l'ID del processo corrente.

Conclusione

Il carico utile di Wslink è dedicato a fornire mezzi per la manipolazione dei file, l'esecuzione di ulteriore codice e l'ottenimento di ampie informazioni sul sistema sottostante che possono essere sfruttate in seguito per il movimento laterale, a causa dell'interesse specifico per le sessioni di rete. Il caricatore Wslink è in ascolto su una porta specificata nella configurazione e può servire ulteriori client di connessione e persino caricare vari payload.

WinorDLL64 contiene una sovrapposizione nell'ambiente di sviluppo, nel comportamento e nel codice con diversi esempi di Lazarus, il che indica che potrebbe essere uno strumento del vasto arsenale di questo gruppo APT allineato con la Corea del Nord.

ESET Research offre report di intelligence APT privati ​​e feed di dati. Per qualsiasi domanda su questo servizio, visitare il Intelligence sulle minacce ESET .

IOCS

SHA-1 Nome di rilevamento ESET Descrizione
1BA443FDE984CEE85EBD4D4FA7EB1263A6F1257F Win64/Wslink.A Dump della memoria del payload Wslink WinorDll64 rilevato.

Tecniche MITRE ATT&CK

Questa tabella è stata creata utilizzando Versione 12 del framework ATT&CK. Non menzioniamo di nuovo le tecniche del caricatore, solo il carico utile.

tattica ID Nome Descrizione
Sviluppo delle risorse T1587.001 Capacità di sviluppo: malware WinorDLL64 è uno strumento personalizzato.
T1059.001 Interprete di comandi e script: PowerShell WinorDLL64 può eseguire comandi PowerShell arbitrari.
T1106 API nativa WinorDLL64 può eseguire ulteriori processi utilizzando il file CreateProcessW ed CreateProcessAsUserW API.
Evasione della difesa T1134.002 Manipolazione token di accesso: crea processo con token WinorDLL64 può chiamare le API WTSQueryUserToken ed CreateProcessAsUserW per creare un processo sotto un utente impersonato.
T1070.004 Rimozione dell'indicatore: eliminazione dei file WinorDLL64 può rimuovere in modo sicuro i file arbitrari.
Ricerca e Sviluppo T1087.001 Scoperta dell'account: account locale WinorDLL64 può enumerare le sessioni ed elencare gli utenti associati e i nomi dei client, tra gli altri dettagli.
T1087.002 Scoperta dell'account: account di dominio WinorDLL64 può enumerare le sessioni ed elencare i nomi di dominio associati, tra gli altri dettagli.
T1083 Scoperta di file e directory WinorDLL64 può ottenere elenchi di file e directory.
T1135 Rilevamento condivisione di rete WinorDLL64 può rilevare unità di rete condivise.
T1057 Scoperta dei processi WinorDLL64 può raccogliere informazioni sui processi in esecuzione.
T1012 Interrogare il Registro di sistema WinorDLL64 può interrogare il registro di Windows per raccogliere informazioni di sistema.
T1082 Scoperta delle informazioni di sistema WinorDLL64 può ottenere informazioni come il nome del computer, il sistema operativo e l'ultima versione del service pack, l'architettura del processore, il nome del processore e la quantità di spazio su unità fisse.
T1614 Scoperta della posizione del sistema WinorDLL64 può ottenere il nome del paese predefinito della vittima utilizzando l'estensione Ottieni informazioni locali W API.
T1614.001 Rilevamento della posizione del sistema: rilevamento della lingua del sistema WinorDLL64 può ottenere la lingua predefinita della vittima utilizzando il file Ottieni informazioni locali W API.
T1016 Scoperta della configurazione di rete del sistema WinorDLL64 può enumerare le informazioni sulla scheda di rete.
T1049 Scoperta delle connessioni di rete del sistema WinorDLL64 può raccogliere un elenco di porte in ascolto.
T1033 Scoperta del proprietario/utente del sistema WinorDLL64 può enumerare le sessioni ed elencare i nomi di utenti, domini e client associati, tra gli altri dettagli.
Collezione T1560.002 Archivia i dati raccolti: Archivia tramite la libreria WinorDLL64 può comprimere ed esfiltrare le directory utilizzando il file rapido biblioteca.
T1005 Dati dal sistema locale WinorDLL64 può raccogliere dati sul dispositivo della vittima.
Impact T1531 Rimozione dell'accesso all'account WinorDLL64 può disconnettere un utente connesso da sessioni specificate.

Timestamp:

Di più da Viviamo la sicurezza