Concentrato principalmente sull'Asia, questo nuovo gruppo di spionaggio informatico utilizza strumenti non documentati, inclusa l'estrazione steganografica di payload PowerShell da file PNG
I ricercatori ESET hanno recentemente scoperto attacchi mirati che utilizzavano strumenti non documentati contro varie aziende di alto profilo e governi locali, soprattutto in Asia. Questi attacchi sono stati condotti da un gruppo di spionaggio precedentemente sconosciuto che abbiamo chiamato Worok e che è attivo almeno dal 2020. Il set di strumenti di Worok include un caricatore C++ CLRLoad, una backdoor PowerShell PowHeartBeat e un caricatore C# PNGLoad che utilizza la steganografia per estrarre malware nascosti payload da file PNG.
Chi è Workok?
Durante la ProxyShell (CVE-2021-34523) divulgazione delle vulnerabilità all'inizio del 2021, abbiamo osservato attività di vari gruppi APT. Uno mostrava caratteristiche comuni con TA428:
- Tempi di attività
- Verticali mirati
- Utilizzo di ShadowPad
Il resto del set di strumenti è molto diverso: ad esempio, TA428 ha preso parte al Compromissione desktop in grado nel 2020. Riteniamo che i collegamenti non siano abbastanza forti da considerare Worok come lo stesso gruppo di TA428, ma i due gruppi potrebbero condividere strumenti e avere interessi comuni. Abbiamo deciso di creare un cluster e di chiamarlo Workok. Il nome è stato scelto dopo un mutex in un caricatore utilizzato dal gruppo. A questo gruppo è stata poi collegata un'ulteriore attività con varianti degli stessi strumenti. Secondo la telemetria di ESET, Worok è attivo dalla fine del 2020 e continua ad essere attivo al momento della stesura di questo documento.
Alla fine del 2020, Worok prendeva di mira governi e aziende in più paesi, in particolare:
- Una società di telecomunicazioni nell'Asia orientale
- Una banca in Asia centrale
- Una società del settore marittimo nel sud-est asiatico
- Un ente governativo in Medio Oriente
- Una società privata nell'Africa meridionale
C'è stata un'interruzione significativa nelle operazioni osservate dal 2021-05 al 2022-01, ma l'attività di Workok è tornata nel 2022-02, mirando a:
- Una compagnia energetica in Asia centrale
- Un ente del settore pubblico nel sud-est asiatico
La Figura 1 presenta una mappa termica visiva delle regioni e dei verticali target.
Considerando i profili degli obiettivi e gli strumenti che abbiamo visto utilizzati contro queste vittime, riteniamo che l’obiettivo principale di Worok sia rubare informazioni.
Analisi tecnica
Sebbene la maggior parte degli accessi iniziali siano sconosciuti, in alcuni casi nel 2021 e nel 2022 abbiamo visto exploit utilizzati contro le vulnerabilità ProxyShell. In questi casi, in genere vengono caricate webshell dopo aver sfruttato queste vulnerabilità, al fine di garantire la persistenza nella rete della vittima. Successivamente gli operatori hanno utilizzato vari impianti per acquisire ulteriori capacità.
Una volta ottenuto l'accesso, gli operatori hanno implementato molteplici strumenti pubblicamente disponibili per la ricognizione, tra cui Mimikatz, Lombrico, ReGeorge Scansione NBT, quindi hanno distribuito i loro impianti personalizzati: un caricatore di primo stadio, seguito da un caricatore .NET di secondo stadio (PNGLoad). Sfortunatamente, non siamo riusciti a recuperare nessuno dei carichi utili finali. Nel 2021, il caricatore della prima fase era un assembly CLR (CLRLoad), mentre nel 2022 è stato sostituito, nella maggior parte dei casi, da una backdoor PowerShell completa (PowHeartBeat): entrambe le catene di esecuzione sono illustrate nella Figura 2. Queste tre gli strumenti sono descritti in dettaglio nelle sottosezioni seguenti.
CLRLoad: caricatore di assiemi CLR
CLRLoad è un Windows PE generico che abbiamo visto sia nella versione a 32 che a 64 bit. È un caricatore scritto in C++ che carica la fase successiva (PNGLoad), che deve essere a Assembly Common Language Runtime (CLR). DLL. Quel codice viene caricato da un file situato sul disco in una directory legittima, presumibilmente per indurre in errore le vittime o gli operatori che rispondono all'incidente a pensare che si tratti di software legittimo.
Alcuni esempi CLRLoad iniziano decodificando il percorso completo del file di cui caricheranno il contenuto nella fase successiva. Questi percorsi di file sono codificati con uno XOR a byte singolo, con una chiave diversa in ogni campione. Decodificati o testo in chiaro, questi percorsi di file sono assoluti, di seguito quelli che abbiamo riscontrato:
- C:ProgrammiVMwareVMware ToolsVMware VGAuthxsec_1_5.dll
- C:ProgrammiUltraViewermsvbvm80.dll
- C:ProgrammiInternet ExplorerJsprofile.dll
- C:ProgrammiWinRarRarExtMgt.dll
- C:Programmi (x86)Foxit SoftwareFoxit Readerlucenelib.dll
Successivamente, viene creato un mutex e abbiamo visto un nome diverso in ogni campione. Il caricatore controlla questo mutex; se trovato, esce, perché il caricatore è già in esecuzione. In uno dei campioni, il mutex Wo0r0KGWhYGO è stato incontrato, il che ha dato al gruppo il nome di Worok.
CLRLoad carica quindi un assembly CLR dal percorso del file eventualmente decodificato. Essendo codice non gestito, CLRLoad ottiene ciò tramite CorBindToRuntimeEx Chiamate API di Windows nelle varianti a 32 bit o CLRCreateInstance chiamate nelle varianti a 64 bit.
PowHeartBeat: backdoor di PowerShell
PowHeartBeat è una backdoor completa scritta in PowerShell, offuscata utilizzando varie tecniche come compressione, codifica e crittografia. Sulla base della telemetria ESET, riteniamo che PowHeartBeat abbia sostituito CLRLoad nelle campagne Worok più recenti come strumento utilizzato per lanciare PNGLoad.
Il primo livello del codice backdoor è costituito da più blocchi di codice PowerShell con codifica base64. Una volta ricostruito il payload, viene eseguito tramite IEX. Una volta decodificato, viene eseguito un altro livello di codice offuscato, che possiamo vedere nella Figura 3.
Il secondo strato della backdoor first base64 decodifica lo strato successivo del suo codice, con il quale viene poi decriptato Tripla DES (Modalità CBC). Dopo la decrittazione, questo codice viene decompresso utilizzando il file gzip algoritmo, fornendo così il terzo livello di codice PowerShell, che è la backdoor vera e propria. È diviso in due parti principali: configurazione e gestione dei comandi backdoor.
Anche il livello principale del codice backdoor è scritto in PowerShell e utilizza HTTP o ICMP per comunicare con il server C&C. Funziona come illustrato nella Figura 4.
Configurazione
La configurazione contiene più campi, tra cui il numero di versione, la configurazione proxy opzionale e l'indirizzo C&C. La tabella 1 descrive il significato dei campi di configurazione nelle diverse versioni che abbiamo osservato.
Tabella 1. Significati dei campi di configurazione
nome campo | Descrizione |
---|---|
nouse / ikuyrtydyfg (altri campioni) |
Inutilizzato. |
Identificativo cliente | Identificativo del cliente, utilizzato per i seguenti scopi: · Come valore durante la costruzione del Intestazione cookie per le comunicazioni C&C. · Come artefatto crittografico per la crittografia dei dati inviati. |
Versione | Numero di versione di PowHeartBeat. |
ExecTimes | Numero di tentativi di esecuzione consentiti durante l'emissione di un EseguiCmd (comando in esecuzione) comando. |
UserAgent | Agente utente utilizzato per le comunicazioni C&C. |
Referer | Referer intestazione utilizzata per le comunicazioni C&C. |
AccettaCodifica | Inutilizzato. |
CookieClientId CookieTaskId CookieTerminalId |
Valori utilizzati per costruire il Cookies intestazione per le comunicazioni C&C. |
UrlHttps | Protocollo da utilizzare per le comunicazioni C&C. |
Dominio URL Indirizzo IP Domini |
URL, dominio/i o indirizzo IP utilizzato come server C&C. Se Domini non è vuoto, viene scelto al posto di Indirizzo IP. In altri casi, Indirizzo IP è preso. |
UrlInviaHeartBeat | Percorso URL utilizzato quando la backdoor richiede comandi al server C&C. |
UrlSendResult | Percorso URL utilizzato quando la backdoor invia i risultati del comando al server C&C. |
GetUrl | URL completo, utilizzato da PowHeartBeat per richiedere comandi dal server C&C. È la concatenazione degli elementi URL sopra. |
PutUrl | Uguale a GetUrl ma utilizzato per inviare i risultati del comando al server C&C. |
currentPath | Inutilizzato. |
ProxyEnableFlag | Flag che indica se la backdoor deve utilizzare o meno un proxy per comunicare con il server C&C. |
Messaggi proxy | Indirizzo del proxy da utilizzare se ProxyEnableFlag è impostato su $vero. |
Intervallo | Tempo in secondi durante il quale lo script dorme tra le richieste GET. |
PercorsoConfigBasic | Percorso di un file di configurazione opzionale contenente Tempo di attività, DownTime, Intervallo predefinitoe Domini. Tali valori verranno sovrascritti se il file è presente. |
Tempo di attività | Ora del giorno da cui la backdoor inizia a funzionare, ovvero inizia a effettuare richieste GET al server C&C. |
DownTime | Orario del giorno fino al quale la backdoor può funzionare, ovvero l'ora in cui smette di effettuare richieste al server C&C. |
Indice di dominio | Indice del nome a dominio corrente da utilizzare per le comunicazioni con il server C&C. Nel caso in cui una richiesta restituisca un messaggio di errore diverso da 304 ("Non modificato"), Indice di dominio è aumentato. |
Chiave segreta | Chiave utilizzata per decrittografare/crittografare la configurazione. La configurazione è crittografata con XOR a più byte. |
SeLog | Inutilizzato. |
IfLogFilePath | Flag che indica se la registrazione è abilitata. |
logpath | Percorso del file di registro. |
File proxy | Percorso del file della configurazione proxy opzionale. Se è vuoto o non viene trovato nel file system, la backdoor recupera le impostazioni proxy dell'utente dal valore del registro HKCUSoftwareMicrosoftWindowsCurrentVersionImpostazioni InternetProxyServer . |
SeConfig | Flag che indica se utilizzare un file di configurazione. |
La Figura 5 mostra un esempio della configurazione estratta da un campione PowHeartBeat (SHA-1: 757ABA12D04FD1167528FDD107A441D11CD8C427).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
$Script:nouse = 100; if(Test-Path $MyInvocation.MyCommand.Path){Remove-item $MyInvocation.MyCommand.Path -Force;} $Script:ClientId = “83”; $Script:Version = “2.1.3.0003”; $Script:ExecTimes = 10; $Script:UserAgent = “Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3487.100 Safari/537.36”; $Script:Referer = “www.adobe.com”; $Script:AcceptEncoding = “text/html,app1ication/xhtml+xml,app1ication/xml;q=0.9,*/*;q=0.8”; $Script:CookieClientId = “s_ecid”; $Script:CookieTaskId = “aam_uuid”; $Script:CookieTerminalId = “AAMC_adobe_0”; $Script:UrlHttps = “http://”; $Script:UrlDomain= ” 118.193.78[.]22:443″; $Script:UrlSendHeartBeat = “/latest/AdobeMessagingClient.js”; $Script:UrlSendResult = “/content/dam/offers-homepage/homepage.jpg”; $Script:GetUrl = $Script:UrlHttps + $Script:UrlDomain + $Script:UrlSendHeartBeat; $Script:PutUrl = $Script:UrlHttps + $Script:UrlDomain + $Script:UrlSendResult; $Script:currentPath = Split-Path -Parent $MyInvocation.MyCommand.Definition; $Script:ProxyEnableFlag = $false; $Script:Proxymsg; $Script:Interval = 10 ; $Script:BasicConfigPath = “C:ProgramDataunins.dat”; $Script:UpTime = 0; $Script:DownTime = 24; $Script:Domains; $Script:DomainIndex; $Script:SecretKey = “###ConfigKey###”; #$Script:IfLog = $true; $Script:IfLogFilePath = “C:ProgramDatatpncp.dat”; $Script:logpath = “C:ProgramDataunins000.dat”; $Script:ProxyFile = “C:ProgramDatahwrenalm.dat”; $Script:IfConfig = $false; |
Figura 5. Esempio di configurazione
Crittografia dei dati
PowHeartBeat crittografa i registri e il contenuto aggiuntivo dei file di configurazione.
Il contenuto del file di registro viene crittografato tramite XOR a più byte con una chiave specificata in testo non crittografato nell'esempio. È interessante notare che Identificativo cliente viene utilizzato come sale per l'indice nell'array di chiavi. La chiave è un array da 256 byte, identico in ogni campione riscontrato. Il contenuto aggiuntivo del file di configurazione viene crittografato tramite XOR a più byte con il valore da Chiave segreta come la sua chiave.
Comunicazioni C&C
PowHeartBeat ha utilizzato HTTP per le comunicazioni C&C fino alla versione 2.4, quindi è passato a ICMP. In entrambi i casi la comunicazione non è crittografata.
HTTP
In un ciclo infinito, la backdoor invia una richiesta GET al server C&C, chiedendo l'invio di un comando. La risposta crittografata viene decrittografata dalla backdoor, che elabora il comando e scrive l'output del comando in un file il cui contenuto viene quindi inviato al server C&C tramite una richiesta POST.
Il formato delle richieste GET è il seguente:
GET <UrlSendHeartBeat> HTTP/1.1 User-Agent: <UserAgent> Referer: <Referer> Host: <Domain> Cookie: <CookieClientId>=<ClientId> Connection: close |
Tieni presente che la richiesta viene costruita utilizzando gli omonimi campi di configurazione.
Nella risposta del server C&C, il terzo byte del contenuto è l'identificatore del comando che indica il comando che deve essere elaborato dalla backdoor. Lo chiameremo id_comando. Il contenuto rimanente della risposta verrà passato come argomento al comando elaborato. Questo contenuto è crittografato con l'algoritmo mostrato nella Figura 6, IDattività essendo il valore del cookie da cui prende il nome CookieTaskIdil valore dalla configurazione.
1 2 3 4 5 6 7 8 9 10 |
o[int] $pos = $taskId % 256; for ($i = 0; $i -lt $tmpBytes.Value.Length; $i++) { $pos = $pos + $clientId; if ($pos -ge 256) { $pos = $pos % 256; } $tmpBytes.Value[$i] = [byte]($tmpBytes.Value[$i] -bxor $hexEnc[$pos]); } |
Figura 6. Richiede l'algoritmo di crittografia dei dati del contenuto
La risposta del server C&C contiene anche un altro cookie, il cui nome è specificato dalla backdoor CookieTerminalId variabile di configurazione. Il valore di questo cookie viene ripetuto nella richiesta POST dalla backdoor e non deve essere vuoto. Dopo aver eseguito il comando backdoor, PowHeartBeat invia il risultato come richiesta POST al server C&C. Il risultato viene inviato come file il cui nome è .png.
ICMP
A partire dalla versione 2.4 di PowHeartBeat, HTTP è stato sostituito da ICMP, i pacchetti inviati avevano un timeout di sei secondi ed erano non frammentato. La comunicazione tramite ICMP è molto probabilmente un modo per eludere il rilevamento.
Non ci sono grandi cambiamenti nelle versioni 2.4 e successive, ma abbiamo notato alcune modifiche nel codice:
- PowHeartBeat invia un pacchetto heartbeat ad ogni loop che contiene la stringa abcdefghijklmnopqrstuvwxyz, prima di richiedere un comando. Ciò informa il server C&C che la backdoor è pronta a ricevere comandi.
- Le richieste per ottenere comandi eseguiti dalla backdoor contengono la stringa abcdefghijklmnop.
I pacchetti heartbeat hanno il formato descritto nella Figura 7.
La differenza tra Identificativo cliente ed bandiera del cliente è che Identificativo cliente differisce in ogni campione mentre bandiera del cliente è lo stesso in ogni campione che utilizza ICMP. bandiera del battito cardiaco indica che la backdoor sta inviando un heartbeat. La risposta dal server C&C ha il formato descritto nella Figura 8.
bandiera qui indica se c'è un comando da inviare alla backdoor. Le richieste per ottenere comandi hanno il formato descritto nella Figura 9.
Tieni presente che la modalità ICMP della backdoor consente di ricevere una quantità illimitata di dati, suddivisi in blocchi, e di variabili lunghezza dei dati, posizione attuale ed lunghezza totale vengono utilizzati per tenere traccia dei dati trasmessi. Le risposte a queste richieste hanno il formato descritto nella Figura 10.
Come nelle risposte HTTP, l'identificatore del comando è il terzo byte di dati.
Dopo sette risposte ICMP consecutive con contenuto vuoto o formattato in modo incoerente, i trasferimenti tra la backdoor e il server C&C vengono considerati terminati.
Per quanto riguarda le richieste di invio del risultato del comando immesso al server C&C, la modalità server viene modificata in modalità post e la stringa finale (abcdefghijklmnop) viene modificato per i dati dei risultati.
Comandi backdoor
PowHeartBeat ha varie funzionalità, tra cui l'esecuzione di comandi/processi e la manipolazione dei file. La tabella 2 elenca tutti i comandi supportati dai vari campioni analizzati.
Tabella 2. Descrizioni dei comandi PowHeartBeat
Nome | Identificatore del comando | Descrizione |
---|---|---|
cmd | 0x02 | Esegui un comando di PowerShell. |
Exe | 0x04 | Esegui un comando come a processi. |
Upload di file | 0x06 | Carica un file sul computer della vittima. Il contenuto del file è compresso con gzip. |
Download file | 0x08 | Scarica un file dal computer della vittima e restituisci il percorso del file, la lunghezza del file, l'ora di creazione, i tempi di accesso e il contenuto del file al server C&C. |
FileView | 0x0A | Ottieni informazioni sui file di una directory specifica, in particolare: · Nomi dei file · Attributi del file · Ultimi tempi di scrittura · Contenuto del file |
FileElimina | 0x0C | Elimina un file. |
FileRinomina | 0x0E | Rinominare o spostare un file. |
Cambia dir | 0x10 | Cambia la posizione di lavoro attuale della backdoor. |
Info | 0x12 | Ottieni una categoria di informazioni in base all'argomento specificato: · "Informazioni di base": Identificativo cliente, Versione, nome host, indirizzi IP, explorer.exe informazioni su versione e dimensione, sistema operativo (architettura e flag che indicano se la macchina è un server), Intervallo, directory corrente, informazioni sull'unità (nome, tipo, spazio libero e dimensione totale), ora corrente · “Informazioni sull'intervallo di tempo”: Intervallo e l'ora corrente · “Informazioni sul dominio”: contenuto del file di configurazione decrittografato |
Config | 0x14 | Aggiorna il contenuto del file di configurazione e ricarica la configurazione. |
N/A | 0x63 | Uscita dalla porta sul retro. |
In caso di errori sul lato backdoor, la backdoor utilizza uno specifico identificatore di comando 0x00 nella richiesta POST al server C&C, indicando così che si è verificato un errore.
Tieni presente che prima di inviare le informazioni al server C&C, i dati vengono compressi con gzip.
PNGLoad: caricatore steganografico
PNGLoad è il payload di seconda fase distribuito da Worok su sistemi compromessi e, secondo la telemetria ESET, caricato da CLRLoad o PowHeartBeat. Sebbene non vediamo alcun codice in PowHeartBeat che carichi direttamente PNGLoad, la backdoor ha la capacità di scaricare ed eseguire payload aggiuntivi dal server C&C, che è probabilmente il modo in cui gli aggressori hanno distribuito PNGLoad su sistemi compromessi con PowHeartBeat. PNGLoad è un caricatore che utilizza byte di file PNG per creare un payload da eseguire. È un eseguibile .NET a 64 bit, offuscato con Reattore .NET – che si maschera da software legittimo. Ad esempio, la Figura 11 mostra le intestazioni CLR di un campione mascherato da DLL WinRAR.
Una volta deoffuscato, è presente solo una classe. In questa classe c'è a Percorso principale attributo contenente il percorso della directory che la backdoor cerca, comprese le sue sottodirectory, per i file con a .png estensione, come mostrato nella Figura 12.
Ogni .png file individuato da questa ricerca di Percorso principale viene quindi controllato il contenuto incorporato steganograficamente. Innanzitutto, il bit meno significativo dei valori R (rosso), G (verde), B (blu) e A (alfa) di ciascun pixel viene recuperato e assemblato in un buffer. Se i primi otto byte di quel buffer corrispondono al numero magico visto nella Figura 13 e il successivo valore di otto byte, control, è diverso da null, il file supera il controllo del contenuto steganografico di PNGLoad. Per tali file, l'elaborazione continua con il resto del buffer decrittografato con uno XOR a più byte, utilizzando la chiave memorizzata nel file PNGLoad. SecretKeyBytes attributo e quindi il buffer decrittografato viene decompresso con gzip. Si prevede che il risultato sia uno script di PowerShell, che viene eseguito immediatamente.
È interessante notare che le operazioni eseguite da PNGLoad vengono registrate in un file il cui percorso è memorizzato nella variabile Percorso file di registro. Le operazioni vengono registrate solo se è presente un file il cui percorso è specificato dalla variabile interna IfLogFilePath.
Non siamo riusciti a ottenere un campione .png utilizzato insieme a PNGLoad, ma il modo in cui funziona PNGLoad suggerisce che dovrebbe funzionare con file PNG validi. Per nascondere il payload dannoso, Worok utilizza oggetti Bitmap in C#, che prendono solo informazioni sui pixel dai file, non dai metadati dei file. Ciò significa che Worok può nascondere i suoi payload dannosi in immagini PNG valide e dall'aspetto innocuo e quindi nascondersi in bella vista.
Conclusione
Worok è un gruppo di spionaggio informatico che sviluppa i propri strumenti, oltre a sfruttare quelli esistenti, per compromettere i propri obiettivi. Rubare informazioni alle loro vittime è ciò che crediamo gli operatori cerchino perché si concentrano su entità di alto profilo in Asia e Africa, prendendo di mira vari settori, sia privati che pubblici, ma con un'enfasi specifica sugli enti governativi. I tempi di attività e il set di strumenti indicano possibili legami con TA428, ma effettuiamo questa valutazione con scarsa certezza. Il loro set di strumenti personalizzato include due caricatori, uno in C++ e uno in C# .NET, e una backdoor PowerShell. Sebbene la nostra visibilità sia limitata, speriamo che far luce su questo gruppo incoraggi altri ricercatori a condividere informazioni su questo gruppo.
ESET Research offre ora anche report di intelligence APT privati e feed di dati. Per qualsiasi domanda su questo servizio, visitare il Intelligence sulle minacce ESET .
IOC
File
SHA-1 | Nome del file | Nome del rilevamento ESET | Commento |
---|---|---|---|
3A47185D0735CDECF4C7C2299EB18401BFB328D5 | copione | PowerShell/PowHeartBeat.B | PowHeartBeat 2.4.3.0003. |
27ABB54A858AD1C1FF2863913BDA698D184E180D | copione | PowerShell/PowHeartBeat.A | PowHeartBeat 2.4.3.0003. |
678A131A9E932B9436241402D9727AA7D06A87E3 | copione | PowerShell/PowHeartBeat.B | PowHeartBeat 2.4.3.0003. |
757ABA12D04FD1167528FDD107A441D11CD8C427 | copione | PowerShell/PowHeartBeat.B | PowHeartBeat 2.1.3.0003. |
54700A48D934676FC698675B4CA5F712C0373188 | copione | PowerShell/PowHeartBeat.A | PowHeartBeat 1.1.3.0002. |
C2F53C138CB1B87D8FC9253A7088DB30B25389AF | copione | PowerShell/PowHeartBeat.A | PowHeartBeat 1.1.3.0002. |
C2F1954DE11F72A46A4E823DE767210A3743B205 | tmp.ps1 | PowerShell/PowHeartBeat.B | PowHeartBeat 2.4.3.0004. |
CE430A27DF87A6952D732B4562A7C23BEF4602D1 | tmp.ps1 | PowerShell/PowHeartBeat.A | PowHeartBeat 2.1.3.0004. |
EDE5AB2B94BA85F28D5EE22656958E4ECD77B6FF | copione | PowerShell/PowHeartBeat.A | PowHeartBeat 2.4.3.0003. |
4721EEBA13535D1EE98654EFCE6B43B778F13126 | vix64.dll | MSIL/PNGLoader.A | PNGLoader. |
728A6CB7A150141B4250659CF853F39BFDB7A46C | RarExtMgt.dll | MSIL/PNGLoader.A | PNGLoader. |
864E55749D28036704B6EA66555A86527E02AF4A | Jsprofile.dll | MSIL/PNGLoader.A | PNGLoader. |
8DA6387F30C584B5FD3694A99EC066784209CA4C | vssxml.dll | MSIL/PNGLoader.A | PNGLoader. |
AA60FB4293530FBFF00D200C0D44EEB1A17B1C76 | xsec_1_5.dll | MSIL/PNGLoader.A | PNGLoader. |
B2EAEC695DD8BB518C7E24C4F37A08344D6975BE | msvbvm80.dll | MSIL/PNGLoader.A | PNGLoader. |
CDB6B1CAFEE098615508F107814179DEAED1EBCF | lucenelib.dll | MSIL/PNGLoader.A | PNGLoader. |
4F9A43E6CF37FF20AE96E564C93898FDA6787F7D | vsstrace.dll | Win64/CLRLoad.C | CLRLarico. |
F181E87B0CD6AA4575FD51B9F868CA7B27240610 | ncrypt.dll | Win32/CLRLoad.A | CLRLarico. |
4CCF0386BDE80C339EFE0CC734CB497E0B08049C | ncrypt.dll | Win32/CLRLoad.A | CLRLarico. |
5CFC0D776AF023DCFE8EDED5CADA03C6D7F9C244 | wlbctrl.dll | Win64/CLRLoad.E | CLRLarico. |
05F19EBF6D46576144276090CC113C6AB8CCEC08 | wlbctrl.dll | Win32/CLRLoad.A | CLRLarico. |
A5D548543D3C3037DA67DC0DA47214B2C2B15864 | secur32.dll | Win64/CLRLoad.H | CLRLarico. |
CBF42DCAF579AF7E6055237E524C0F30507090F3 | dbghelp.dll | Win64/CLRLoad.C | CLRLarico. |
Percorsi di file
Alcuni dei Percorso principale, Percorso file di registro ed IfLogFilePath valori che abbiamo riscontrato negli esempi PNGLoad:
Percorso principale | Percorso file di registro | IfLogFilePath |
---|---|---|
C:ProgrammiVMwareVMware Tools | C:ProgrammiVMwareVMware ToolsVMware VGAuthreadme.txt | C:ProgrammiVMwareVMware ToolsVMware VGAuthVMWSU_V1_1.dll |
C:ProgrammiWinRar | C:ProgrammiWinRarrarinstall.log | C:ProgrammiWinRardes.dat |
C:ProgrammiUltraViewer | C:ProgrammiUltraViewerCopy Rights.dat | C:ProgrammiUltraVieweruvcr.dll |
Network NetPoulSafe
Dominio | IP |
---|---|
Nessuna | 118.193.78[.]22 |
Nessuna | 118.193.78[.]57 |
aeroplano.agenzia-pubblicitaria di viaggio[.]. | 5.183.101[.]9 |
central.suhypercloud[.]org | 45.77.36[.]243 |
Mutex
Negli esempi CLRLoad, i nomi mutex che abbiamo riscontrato sono:
aB82UduGX0EX
ad8TbUIZl5Ga
Mr2PJVxbIBD4
oERiQtKLgPgK
U37uxsCsA4Xm
Wo0r0KGWhYGO
xBUjQR2vxYTz
zYCLBWekRX3t
3c3401ad-e77d-4142-8db5-8eb5483d7e41
9xvzMsaWqxMy
Un elenco completo di Indicatori di Compromise (IoC) e campioni è disponibile in il nostro repository GitHub.
Tecniche MITRE ATT&CK
Questa tabella è stata creata utilizzando Versione 11 del framework MITRE ATT&CK.
tattica | ID | Nome | Descrizione |
---|---|---|---|
Ricognizione | T1592.002 | Raccogli informazioni sull'ospite della vittima: software | PowHeartBeat si riunisce explorer.exe informazioni. |
T1592.001 | Raccogli le informazioni sull'ospite della vittima: Hardware | PowHeartBeat raccoglie informazioni sulle unità. | |
T1590.005 | Raccogliere informazioni sulla rete della vittima: indirizzi IP | PowHeartBeat raccoglie gli indirizzi IP del computer compromesso. | |
Sviluppo delle risorse | T1583.004 | Acquisire infrastruttura: server | Workok utilizza i propri server C&C. |
T1588.002 | Ottieni capacità: strumento | Workok ha distribuito più strumenti disponibili pubblicamente sulle macchine compromesse. | |
T1583.001 | Acquisire l'infrastruttura: domini | Workok ha domini registrati per facilitare la comunicazione e la messa in scena di C&C. | |
T1588.005 | Ottieni capacità: exploit | Worok ha utilizzato la vulnerabilità ProxyShell. | |
T1587.001 | Capacità di sviluppo: malware | Worok ha sviluppato il proprio malware: CLRLoad, PNGLoad, PowHeartBeat. | |
T1587.003 | Sviluppare capacità: certificati digitali | Worok ha creato i certificati Let's Encrypt SSL per abilitare l'autenticazione TLS reciproca per il malware. | |
T1059.001 | Interprete di comandi e script: PowerShell | PowHeartBeat è scritto in PowerShell. | |
Persistenza | T1505.003 | Componente software del server: Web Shell | Workok utilizza la webshell ReGeorg. |
Evasione della difesa | T1140 | Deoffuscare/decodificare file o informazioni | Worok utilizza vari schemi personalizzati basati su XOR per crittografare stringhe e log in PowHeartBeat, PNGLoad e CLRLoad. |
T1036.005 | Mascheramento: corrisponde al nome o alla posizione legittimi | Gli esempi PNGLoad vengono distribuiti in directory VMWare dall'aspetto legittimo. | |
Accesso alle credenziali | T1003.001 | Dumping delle credenziali del sistema operativo: memoria LSASS | Worok utilizza Mimikatz per eseguire il dump delle credenziali dalla memoria LSASS. |
Ricerca e Sviluppo | T1082 | Scoperta delle informazioni di sistema | PowHeartBeat raccoglie informazioni sul sistema operativo. |
T1083 | Scoperta di file e directory | PowHeartBeat può elencare file e directory. | |
T1046 | Individuazione dei servizi di rete | Usi di lavoro NbtScan per ottenere informazioni di rete sulle macchine compromesse. | |
T1124 | Scoperta dell'ora di sistema | PowHeartBeat raccoglie le informazioni sull'ora della vittima. | |
Collezione | T1005 | Dati dal sistema locale | PowHeartBeat raccoglie i dati dal sistema locale. |
T1560.002 | Archivia i dati raccolti: Archivia tramite la libreria | PowHeartBeat gzip comprime i dati prima di inviarli al server C&C. | |
Comando e controllo | T1071.001 | Protocollo del livello di applicazione: protocolli Web | Alcune varianti di PowHeartBeat utilizzano HTTP come protocollo di comunicazione con il server C&C. |
T1090.001 | Proxy: proxy interno | PowHeartBeat gestisce la configurazione del proxy sul computer della vittima. | |
T1001.002 | Offuscamento dei dati: steganografia | PNGLoad estrae i valori dei pixel da .png file per ricostruire i payload. | |
T1573.002 | Canale crittografato: crittografia asimmetrica | PowHeartBeat gestisce le comunicazioni HTTPS con il server C&C. | |
T1095 | Protocollo di livello non applicativo | Alcune varianti di PowHeartBeat utilizzano ICMP come protocollo di comunicazione con il server C&C. | |
T1132.001 | Codifica dati: codifica standard | Worok utilizza la codifica XOR in PowHeartBeat e PNGLoad. | |
T1132.002 | Codifica dati: codifica non standard | Worok utilizza algoritmi di codifica XOR che utilizzano un sale aggiuntivo. | |
exfiltration | T1041 | Esfiltrazione sul canale C2 | PowHeartBeat utilizza il suo canale di comunicazione C&C per esfiltrare informazioni. |
- blockchain
- geniale
- portafogli di criptovaluta
- cryptoexchange
- sicurezza informatica
- i criminali informatici
- Cybersecurity
- Dipartimento di Sicurezza Nazionale
- portafogli digitali
- Ricerca ESET
- firewall
- Kaspersky
- il malware
- Mcafee
- NextBLOC
- Platone
- platone ai
- Platone Data Intelligence
- Gioco di Platone
- PlatoneDati
- gioco di plato
- VPN
- Viviamo la sicurezza
- sicurezza del sito Web
- zefiro