În decembrie 2014, ESET a lansat un raport legat de TorrentLocker, o famile de cripto-ransomware, ce se răspândește prin spam, e-mailuri care impersonează companiile de servicii poștale locale sau companiile de energie și telecomunicații. Raportul a descris schema sa de distribuție, funcționalitățile de bază, protocolul de rețea și a expus unele similitudini cu troianul bancar Hesperbot.
Pe parcursul ultimelor luni, am decis să aruncăm o privire la noile modele pentru a verifica starea actuală a acestei familii de malware. Acest articol face un rezumat al rezultatelor obținute în urma analizelor și compară campaniile din 2016 față de cercetarea de la sfârșitul anului 2014.
În 2014, numele folosit la alerta de răscumpărare pentru TorrentLocker a fost bine-cunoscutul “CryptoLocker”. Din motive necunoscute, un an mai târziu, literele “o” au fost schimbate în zero, ajungând la varianta “Crypt0l0cker”. Nu există schimbări majore la nivel de distribuție, infrastructură C&C sau mostre de malware care ar putea indica faptul că ar fi vorba despre un ransomware diferit. Suntem de părere că este operat de același grup de atacatori. Pentru a evita confuzia, am hotărât să menținem numele de TorrentLocker, în loc de Crypt0l0cker atunci când ne referim la această familie de malware.
Schema de distribuție
Distribuția actuală este foarte asemănătoare cu tehnicile utilizate în 2014. Mesajele transmise prin e-mail conțin un link de legătură către o pagină, unde se pretinde că un "document" (aparent o factură sau un cod de urmărire) trebuie descărcat. În cazul în care “documentul” malițios este descărcat și deschis de către utilizator, TorrentLocker este executat. Acesta începe comunicarea cu serverul de comandă și control (C&C) și criptează fișierele victimei. Mai jos, găsiți câteva exemple de TorrentLocker din perioada aprilie – august 2016:
- A1 Telekom (Austria)
- AGL (Australia)
- Australia Post (Australia)
- Poliția Federală din Australia
- British Gas (Marea Britanie)
- Correos (Spania)
- Endesa (Spania)
- Enel (Italia)
- Österreichische Post (Austria)
- New Zealand Post (Noua Zeelandă)
- PGE Polska (Polonia)
- PostNord (Suedia)
- PostNL (Olanda)
- Telia (Suedia)
- Turkcell (Turcia)
- Verbund (Austria)
- Vodafone Italia (Italia)
Așa cum am documentat în 2014, URL-urile distribuite sunt în continuare accesibile, aparent, doar de la adrese IP din țara vizată în cadrul campaniei, făcând paginile greu de urmărit pentru cercetătorii din afara țării respective.
Figura 1: Spam în Austria; arată de parcă ar proveni de la poșta austriacă
Figura 2: Pagina de descărcare pentru Austria în cazul campaniei de la A1 Telekom
Figura 3: Pagina de descărcare pentru Australia în cazul campaniei de la AFP
Figura 4: Pagina de descărcare pentru Austria în cazul campaniei de la Verbund
Cu toate că schema arată la fel, există câteva modificări aduse. Au fost adăugate straturi de redirecționare în lanțul ce duce la fișierul executabil malițios final. Link-ul din e-mailul de tip spam conduce către un script PHP găzduit pe un server compromis. Script-ul verifică dacă vizitatorul navighează pe internet se află în țara vizată, iar în cazul în care acest lucru este conform planului, utilizatorul va fi redirecționat către o pagină unde va fi descărcată următoarea etapă a acestui malware. În caz contrar, vizitatorul este redirecționat către Google. De asemenea, fișierul ZIP descărcat conține un fișier JScript ascuns, care va descărca și executa fișierul TorrentLocker PE.
ReaQta a publicat pe blog o postare în două părți , unde se descrie schema, mai în detaliu. Rezumând, aici este un exemplu de lanț al evenimentelor ce conduc la criptarea fișierelor unei victime:
- Mesajul spam conține un link de printare a unui cod de urmărire: hxxp://diniyat.com/jKu8xT.php?id=victim@domain.nl
- Utilizatorul este redirecționat către hxxp://azrs.postnl-tracking24.org/yr7mb.php?id=dmljdGltQGRvbWFpbi5ubA==
- Utilizatorul face clic pentru a descărca hxxp://azrs.postnl-tracking24.org/file/PostNL-pakket.zip
- Utilizatorul deschide fișierul și accesează apoi fișierul PostNL-pakket.js file
- Acest JScript descarcă și execută TorrentLocker de la hxxp://sudoimpex.ru/administrator/file.exe
TorrentLocker are încă abilitatea de a retrage cărți de adrese și setări SMTP pentru a ajuta la răspândirea sa.
A fost adăugată o parolă suplimentară din patru cifre pentru a preveni enumerarea paginii de plată
Pe parcursul analizelor de la sfârșitul anului 2014, cercetătorii de la ESET au descoperit faptul că acele “coduri de utilizator” generate de serverul C&C pentru a identifica victimele sunt secvențiale și previzibile. Acest lucru ne-a permis să accesăm fiecare pagină de plată și să colectăm statistici legate de modul în care multe victime au plătit răscumpărarea sau de numărul de cazuri în funcție de țară. Până în momentul în care raportul a fost lansat, operatorii lui TorrentLocker au adăugat un câmp de parolă format din patru cifre denumit "parolă utilizator" pentru a accesa paginile de plată.
Potrivit unei postări pe blogul celor de la TrendMicro, parametrul user_pass a fost identificat pentru prima data în decembrie 2014, cu o săptămână înainte de lansarea raportului de la ESET. Cu toate acestea, operatorii nu au aflat probabil de acest defect prin citirea raportului, ci prin inspectarea jurnalelor. După ce operatorii au observat că cercetătorii au putut avea acces la toate paginile de plată, au adăugat câmpul pentru parolă, astfel încât să evite o evidență ulterioară.
Generația “user code” se folosește de același algoritm previzibil în campaniile curente. Dar, nu am găsit nimic ce ar putea ajuta la prezicerea valorii pentru “user pass”. Pare a fi un număr întreg la întâmplare, adăugat în baza de date a serverului C&C.
Figura 5: URL în 2014
Figura 6: URL cu parolă
Confuzia
Pentru această analiză, am ales trei mostre de TorrentLocker proiectate cu diferite variante de criptare. Nu am petrecut prea mult timp în încercarea de a realiza o inginerie inversă pentru acestea. Așa cum am observat în 2014, există mai multe niveluri de cod de decriptare, iar sarcina de plată finală este băgată în procesul explorer.exe. Baza lui TorrentLocker exportă aceleași funții ca și în 2014 și anume “_local_entry” și “_remote_entry“. Cu toate acestea, acest sistem s-a schimbat în eșantionul de campanie “main-13”, unde TorrentLocker nu se mai impune în procesul explorer.exe.
Odată ce a fost desfăcut, nucleul lui TorrentLocker utilizează tehnici suplimentare de confuzionare pentru a face analiza mai dificilă. Vom descrie două tehnici pe care nu le-am găsit în mostrele din 2014. În primul rând, șirurile de caractere sunt codificate utilizând o cheie hardcoded. Cheia este aceeași de la o campanie la alata, dar este trunchiată, iar dimensiunea se schimbă. String-urile sunt decodate la cerere prin realizarea de XOR cu cheile trunchiate. Punem la dispoziție un script Ida pe ESET Github pentru a ajuta la decodarea string-urilor dintr-un eșantion în faza inițială.
Funcțiile importante Windows API sunt rezolvate dinamic de la un hash de 32de biți. Funcția de rezolvare se iterează peste exporturile bibliotecii solicitate și calculează hash-urile numelor exportate până când se găsește o potrivire. Această necesită un număr variabil de parametri: primul parametru este un index în matricea de nume de fișiere de bibliotecă, al doilea este hash-ul numelui pentru funcție, al treilea este numărul parametrilor trecuți la funcția API iar restul reprezintă valori ale acelor parametri. Spre exemplu, așa arată un apel către InternetOpenW:
resolve_and_call_function(
23, // wininet.dll
0xF190D96, // hash(“InternetOpenW”)
5, // nargs
0, 0, 0, 0, 0x8404C700 // args
);
// calls InternetOpenW(NULL, INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL,
INTERNET_FLAG_PRAGMA_NOCACHE|INTERNET_FLAG_NO_UI|INTERNET_FLAG_HYPERLINK|\
INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS|INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP|\
INTERNET_FLAG_NO_AUTH|INTERNET_FLAG_NO_CACHE_WRITE|INTERNET_FLAG_RELOAD)
Comunicările C&C
Una dintre cele mai interesante schimbări aduse la nivel de TorrentLocker este reprezentată de modurile în care poate contacta serverul C&C. Așa cum se obișnuia în 2014, TorrentLocker încearcă să obțină un domeniu hardcoded prin HTTPS. Cu toate acestea, atașează acum un subdomeniu aleatoriu. Domeniile hardcoded sunt, de obicei, cu valori exacte de scurtă durată și eliminate repede.
Ce este de remarcat este că în cazul unui eșec, acum va ajunge din nou pe serviciile ascunse Tor. O mica implementare Tor este în mod statistic legată în cod binar, asigurându-se astfel că nu se bazează pe dependențe externe pentru a se conecta cu succes la rețeaua Tor. Contactarea C&C prin intermediul serviciilor ascunse Tor este o tehnică ce devine din ce în ce mai populară în rândul atacatorilor care creează ransomware. Acest lucru face ca identificarea zonelor unde sunt localizate fizic serverele C&C să fie din ce în ce mai dificilă pentru cercetătorii de malware.
Figura 7: Trasee ce indică faptul că librăria Tor inclusă folosește LibreSSL
Următoarele trei domenii dirijate se găsesc în această ordine în toate probele analizate:
Nu au fost observate modificări semnificative la nivelul protocolului de comunicare, cu excepția faptului că în momentul utilizării Tor, există un domeniu nou pentru adresa IP publică a victimei. Din cauza modului în care funcționează Tor, serverul C&C nu cunoaște adresa IP a sursei cererii pe care o primește; Încorporarea adreselor IP publice ale victimelor în raport este importantă, deoarece acest lucru permite serverului C&C să le localizeze. TorrentLocker utilizează adresa IP pentru a genera pagini de răscumpărare în limba cea mai apropiată victimei și utilizează moneda locală la afișarea prețului, așa cum vom putea observa ulterior în acest articol.
În timp ce TorrentLocker obișnuia să se bazeze pe HTTPS pentru a cripta comunicările cu serverul C&C, variantele actuale adaugă un strat suplimentar de criptare. AES-256-CBC este folosit pentru criptarea raportului înainte de transformarea într-o cerere de tip HTTP POST, care va fi apoi criptată, fie cu SSL în cazul optării pentru HTTPS sau alegând Tor. Cheia este hardcoded în cod binar și nu trebuie să fie schimbată prea des, întrucât în cazul în care aceasta este schimbată în serverul C&C al lui TorrentLocker, eșantioanele anterioare nu vor mai putea comunica. Cheile AES sunt listate în anexe.
Comportament geolocalizat
O caracteristică bine-cunoscută legată de TorrentLocker este modul de localizare pentru descărcare, răscumpărare și pentru paginile de plată. Victimelor li se furnizează informații în limba și în moneda locală. Pentru această analiză, am încercat să adunăm informații despre țările care au primit aceste detalii localizate legate de răscumpărare și de plată.
Pentru a realiza acest lucru, ne-am folosit de faptul că o criptare de succes a fișierelor victimei poate fi raportată prin rețeaua Tor. În acest scenariu, adresa IP externă (utilizată pentru a localiza victima) este prevăzută ca un parametru la serverul C&C (controlat de utilizator). Am luat câte o adresă IP din fiecare țară, am raportat un eveniment de criptare a fișierelor reușit la serverul C&C, care pretindea a fi de la adresa IP și a fost solicitată pagina de răscumpărare și de plată.
Pagina originală este în limba engleză, iar moneda utilizată este USD. Am constatat faptul că 22 de țări au primit o versiune localizate a paginii de răscumpărare sau de plată. Mai jos, găsiți lista acestor țări:
- Australia
- Austria
- Belgia
- Cehia
- Danemarca
- Franța
- Germania
- Italia
- Japonia
- Martinica
- Olanda
- Norvegia
- Polonia
- Portugalia
- Korea
- Spania
- Suedia
- Elveția
- Taiwan
- Thailanda
- Turcia
- Marea Britanie
Au fost observate campanii spam cu TorrentLocker pentru toate țările cu bold. Nu este clar dacă celelalte au fost vizate în trecut, urmează să fie au un mecanism diferit de răspândire.
S-a observat, de asemenea, că TorrentLocker refuză criptarea victimelor din câteva țări specifice. Acest comportament a fost deja documentat, dar noi am dat încă de o listă a acestor țări. La momentul experimentului nostru, TorrentLocker a refuzat criptarea victimelor din următoarele patru țări:
- China
- Rusia
- Ucraina
- SUA
Criptografie
În timp ce schema globală de criptare a lui TorrentLocker nu s-a schimbat, unele aspecte ale implementării sale s-au schimbat. În 20114, TorrentLocker folosea o bibliotecă criptografică denumită LibTomCrypt. Cu toate acestea, am identificat variante recente ce utilizau Microsoft CryptoAPI, în schimb (de la campaniile denumite “main-9” la “main-12“). Ce este neclar este motivul pentru care s-a făcut schimbarea de la o librărie la cealaltă. Fie că este vorba de LibTomCrypt sau de CryptoAPI, vectorul de inițializare (IV) este întotdeauna de 32 de biți nuli.
Așa cum am menționat mai devreme, comunicarea cu serverul C&C este criptată. Acest lucru este valabil și pentru configurare și pentru fișierele lăsate pe disc. Acestea sunt criptate pe baza de AES-256 cu o cheie hardcoded care se schimbă de la o campanie la alta. De asemenea, numele de fișiere sunt acum șiruri de caractere alese la întâmplare, în loc de numere consecutive.
Figura 8: Configurare director TorrentLocker
TorrentLocker criptează fișierele victimei cu AES-256-CBC, așa cum o face cu fișierele de configurare și raportează la serverul C&C. Cheia este generată cu un apel către CryptGenRandom cu o cerere de 32 de biți. Fiecare dintre acești biți sunt apoi adăugați la cei mai puțin semnificativi ai valorii de returnare a unui apel GetTickCount.
Figura 9: CFG pentru generația AES Key
Cheia este aceeași pentru toate fișierele criptate. Este apoi criptată cu o cheie publică RSA încorporată și trimisă la serverul C&C server. Aceeași cheie publică a fost găsită în toate eșantioanele. Este oferită în anexe.
TorrentLocker asigură faptul că sistemul rămâne utilizabil prin necriptarea fișierelor de sistem, Anterior, conținea o listă de extensii ale denumirilor de fișiere, precum “.doc“, “.docx“, “.xls“ etc. Acum este vorba de o situație opusă: are o listă de extensii care să nu fie niciodată criptate, cum ar fi “.exe“, “.dll“, “.sys” și altele. Lista completă este prevăzută ca anexă.
O altă schimbare – în 2014, TorrentLocker a criptat primele 2MB de fișiere. După cum a raportat Sophos, s-a redus această valoare la 1 MB.
Concluzie
TorrentLocker este încă active și se menține în raza de urmărire pentru mulți, din cauza modului în care își alege potențialele victime cu spam direcționat. Verificați articolul realizat de către Lysa Myer, 11 lucruri pe care le puteți face pentru protecția împotriva ransomware, inclusiv pentru informații legate de prevenție.
Mulțumiri lui Frédéric Vachon pentru contribuția adusă la analiză și la redactarea acestui articol.
Referințe
Lawrence Abrams, TorrentLocker își schimbă numele în Crypt0L0cker și ajunge pe calculatoarele din SUA, 2015‑04‑28, http://www.bleepingcomputer.com/forums/t/574686/torrentlocker-changes-its-name-to-crypt0l0cker-and-bypasses-us-computers/
Lilia Elena Gonzalez Medina, Din culisele campaniei TorrentLocker, 2016‑07‑25, https://blog.fortinet.com/2016/07/25/insights-on-torrentlocker
Marc Rivero López, Campania TorrentLocker exploatează o companie de utilități din Spania, 2016‑06‑01, https://blogs.mcafee.com/mcafee-labs/torrentlocker-campaign-exploits-spanish-utility-brand/
Nicholas Griffin, TorrentLocker este înapoi și vizează Suedia și Italia, 2016‑03‑15, https://blogs.forcepoint.com/security-labs/torrentlocker-back-and-targets-sweden-italy
Paul Pajares și Christopher Ke, TorrentLocker Ransomware atacă regiunea ANZ, 2015‑01‑11,https://blog.trendmicro.com/trendlabs-security-intelligence/torrentlocker-ransomware-hits-anz-region/
Starea actuală a ransomware-ului: TorrentLocker, 2015‑12‑23,https://blogs.sophos.com/2015/12/23/the-current-state-of-ransomware-torrentlocker/
Thomas White, Crypt0L0cker – TorrentLocker Rebranded, 2015‑05‑13,https://tribalchicken.com.au/security/crypt0l0cker-torrentlocker-rebranded/
Campania TorrentLocker afectează Spania și Italia, 2014‑12‑26, http://securityblog.s21sec.com/2014/12/torrentlocker-campaign-affecting-spain.html
Ransomware-ul TorrentLocker vizează utilizatorii de internet din Elveția, 2016‑01‑21, https://www.govcert.admin.ch/blog/17/torrentlocker-ransomware-targeting-swiss-internet-users
Trojaner-Warnung: Gefälschte “A1” Online-Rechnung, 2016‑08‑16, https://www.mimikama.at/allgemein/trojaner-warnung-gefaelschte-a1-online-rechnung/
Descoperirea unei operațiuni de distribuire de ransomware – partea 1, 2016‑04‑11, https://reaqta.com/2016/04/uncovering-a-ransomware-distribution-operation/
Descoperirea unei operațiuni de distribuire de ransomware – partea 2, 2016‑04‑26,https://reaqta.com/2016/04/uncovering-ransomware-distribution-operation-part-2/
Kelvin Heath, TorrentLocker Ransomware Outbreak, 2016‑05‑19, https://www.vectra-corp.com/torrentlocker-ransomware-outbreak/
Anexe
Fișiere analizate
AES-256 chei de statistici
IV este compus întotdeauna din biți nuli.
Fișierele cu aceste extensii nu sunt criptate:
- exe
- dll
- sys
- vdx
- vxd
- com
- msi
- scr
- cpl
- bat
- cmd
- lnk
- url
- log
- log2
- tmp
- ###
- ini
- chm
- manifest
- inf
- html
- txt
- bmp
- ttf
- png
- ico
- gif
- mp3
- wav
- avi
- theme
- evtx
- folder
- kdmp
Cheia publică TorrentLocker RSA-4096 utilizată în campaniile main-9 - main-13
-----BEGIN PUBLIC KEY-----
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0LrTxrnan3wlqkeCrO8j
L/BlcjS3yOh/YZ9vH5uRw4RvHY86JpsKaJLQ1WajkY9bgO6w9an9l9dtJch70joD
o+aQfzpQIb1HUwrOmrxICO18zyhvkH+vXBSuDmQBFvuPMu8g1R4cpo9TzR0XCSEn
BjDBhNirSBRmfSjhWMhLMcrrAUJ986+ucLdjQtBrDyTIlYZ8/H83T+rbkBE2sLbY
D7HSBtosPArg18hC6fgDJ2V4tADmLx/wk3k8JKeQ0OXbBqVbzWbYzODIJ/VibKNg
mE278RS9KR3f+0P38/ztf81SH4ZK5kjqN6qLL0AyUfQpm7bOpQHSpwOdhA0i/8M5
lMzZj1wdfp3UDoPpAyH4fc6mpgt1OjN5Rj5PjQj/bEPM/Rz67LCdFY3LbI5rCyxm
9V4UVTOJdAavByDUa8PKEY++XMKjEjTskDD4Io3tD+54rmr4/WPoRPlrQ+Bj4o7I
DSvrMGsnEudhcO7qMlQ5JszHDejk5QF8glsiWsCHVxmZqsHFNYxBKGgtvUxvokgv
+yxo6twfC/hC1wJHhWofINDABxIYqgVOg4GJEs0gA1v8FByNg6pss2W/oNcYDuiZ
7R/9vHAUHzMBVNaXq9Rz5h61pLFjEpIrfzO8ctAq3+wDdltyTbz40D7G4+zPHV2t
PW9R7I4fmgDQMM4SimN8NcUCAwEAAQ==
-----END PUBLIC KEY-----
MARC-ETIENNE M.LÉVEILLÉ
CORESPONDENT INDEPENDENT
Lasa un comentariu