Investigarea LuminosityLink Remote Access troian Configuration

acest post este, de asemenea, disponibil în: XV (japoneză)

în ultimele săptămâni, am petrecut timp investigarea Luminositylink Remote Access troian (Rat) configurație încorporat. Pentru cei care nu știu, LuminosityLink este o familie de malware care costă 40 de dolari, care se pretinde a fi un utilitar de administrare a sistemului. Cu toate acestea, atunci când este executat, malware-ul folosește un keylogger foarte agresiv, precum și o serie de alte caracteristici rău intenționate care permit unui atacator să obțină controlul deplin asupra unei mașini victime.

 Luminozitatelink 1

Figura 1 site-ul LuminosityLink

la cererea unui coleg, mi sa cerut să extrag configurația unui eșantion LuminosityLink și, în timp ce aș fi putut pur și simplu să execut malware-ul într-un mediu sandboxed și să trag configurația din memorie, am ales să văd dacă aș putea efectua aceeași acțiune împotriva binarului static.

acest lucru m-a determinat să înțeleg cum configurația este criptată în binar, precum și cum să analizez acea configurație. Am creat un script pentru a efectua această acțiune împotriva unui eșantion malware luminositylink nealterat, pe care îl voi împărtăși în cadrul acestei postări pe blog. Mai mult, m-am uitat la aproximativ 18.000 de eșantioane LuminosityLink pe care Palo Alto Networks le-a colectat de-a lungul timpului și, folosind acest script, am reușit să extrag configurațiile a 14.700 de eșantioane. (Aceste date pot fi găsite în secțiunea anexă a acestui post.)

Prezentare generală a LuminosityLink

inițial la suprafață în Mai 2015, popularitatea LuminosityLink a fost în creștere, așa cum se arată în graficul următor. Până în prezent, Palo Alto Networks a urmărit aproximativ 50.000 de tentative de infecții ale LuminosityLink împotriva clienților noștri.

 Luminozitatelink 2

Figura 2 autofocus grafic al sesiunilor LuminosityLink în timp.

LuminosityLink se vinde în prezent cu 40 USD și poate fi achiziționat direct de la autorul său. Acest pachet permite atacatorilor să găzduiască un server LuminosityLink, precum și să genereze binare personalizate, care sunt ascunse cu ConfuserEx 0.4.0. ConfuserEx este un proiect open-source care ascunde baza .Cod NET, ceea ce face mult mai dificil pentru inginerii inversi care îl decompilează. Acest lucru este important de reținut pentru mai târziu, când discutăm despre determinarea modului de inginerie inversă a procesului de criptare.

după cum am menționat anterior, sunt incluse o serie de opțiuni de configurare, așa cum putem vedea în următoarea captură de ecran.

 Luminozitatelink 3

Figura 3 opțiuni de configurare a clientului în LuminosityLink

odată executate, atacatorilor li se oferă o multitudine de opțiuni, inclusiv keylogging, desktop la distanță, furtul de parole și interacțiunea cu un shell de pe dispozitiv.

Reverse-Engineering configurația

primul pas în parsarea configurația LuminosityLink este de a extrage static. Am deschis inițial un eșantion LuminosityLink curat folosind un program numit dnSpy pentru a căuta indicii cu privire la cazul în care configurația ar putea fi stocate. (Ca o scurtă deoparte, am foarte recomanda dnSpy, deoarece nu numai că face o treabă bună de decompiling binarul net furnizat, dar, de asemenea, vine echipat cu un debugger încorporat, care este esențial în abordarea problemelor, cum ar fi cea cu care ne confruntăm.)

la deschiderea inițială a unui eșantion binar, nu mă așteptam la mult, deoarece știam că eșantionul a fost obfuscat folosind ConfuserEx. Cu toate acestea, uitându-mă la resursele eșantionului, am văzut câteva șiruri care păreau promițătoare.

 Luminozitatelink 4

Figura 4 șiruri de resurse încorporate în LuminosityLink

după cum putem vedea, malware-ul conține o serie de resurse care, la rândul lor, conțin ceea ce pare a fi date codificate în baza 64. Resursele “SMARTLOGS”, “XML” și “CONFIG” conțin toate o multitudine de date, care, în acest moment, sunt încă necunoscute. Din păcate, decodarea acestor șiruri duce la gunoi, ceea ce înseamnă probabil că o altă formă de criptare este utilizată dedesubt.

am continuat să investighez codul de bază, care, deși este ascuns, oferă încă o idee la nivel înalt despre ceea ce fac diferite clase. Folosind spații de nume importate, apeluri API și anumite șiruri ne-ascunse, putem obține indicii cu privire la ceea ce se întâmplă în cadrul programului. Mai exact, vedem clasa fd() folosind spațiul de nume al ‘sistem.Securitatea.Criptografie’ , care merită cu siguranță investigații, deoarece am suspectat că cripto-ul este folosit împotriva șirurilor de resurse menționate anterior.

 Luminozitatelink 5

Figura 5 spațiul de nume criptografic utilizat de LuminosityLink

pe măsură ce investigăm în continuare această clasă, vedem referințe la următoarele clase și funcții:

  • MD5CryptoServiceProvider
  • ComputeHash
  • FromBase64String
  • RijndaelManaged

în acest moment, m-am întors la depanatorul meu în încercarea de a vedea cum au fost manipulate aceste șiruri. Am stabilit puncte de întrerupere pe diferite apeluri menționate anterior. Mai exact, punctul de întrerupere al clasei RijndaelManaged dă rezultate excelente.

 LuminosityLink 6

Figura 6 recuperarea cu succes a cheii AES-128

suntem capabili nu numai să verificăm dacă este utilizată criptarea AES-128, ci și să verificăm dacă șirul de resurse “SMARTLOGS” este utilizat. De asemenea, putem identifica șirul folosit ca cheie, care în acest exemplu particular este “\\ecnOnuR\\noisreVtnerruC\\swodniW\\tfosorciM\\erawtfoS”. Investigații suplimentare arată că acest șir este hash folosind algoritmul MD5. Primii 15 octeți ai acestui hash sunt concatenați cu toți cei 16 octeți ai hash-ului, urmați de un octet nul. Putem reproduce acest proces de decriptare în Python ca atare:

1
2
3
4
5
6
7
8
9
10

Def decrypt_data (date, key_string):
decoded_data = base64.b64decode (date)
m = hashlib.md5 ()
m.actualizare (key_string)
md5 = m.digest ()
cheie = md5+md5+”\x00″
mod = AES.MOD_ECB
iv = ‘\x00’ * 16
e = AES.nou (cheie, Mod, iv)
întoarcere e. decripta(decoded_data)

putem verifica în continuare dacă acest lucru este corect folosind codul de mai sus. În exemplul următor, variabila de date a fost setată cu șirul codificat base64 găsit în resursa “SMARTLOGS”, iar variabila key_string a fost setată la cheia de registry inversată menționată anterior.

1
2

>>> print decrypt_data(date, key_string)
172.16.1.100|11111|backup.dns.com|filename.exe|startup_name|folder_name|data_directory_name|backup_startup.exe / df5e0e1c667c399588b014cb9b4ae7b33c9c0b4cac9d4169f39197e41e9a43a4 / BuildID / 1idsnb|

folosind încercare și eroare, suntem capabili de a mapa cu succes fiecare variabilă asistat în configurația de mai sus. Ultima variabilă se dovedește a fi destul de interesant, ca fiecare caracter, cu excepția ‘1’ hărți la o anumită opțiune de configurare. Următoarea cartografiere a fost determinată:

  • i: activați instalarea/pornirea clientului
  • d: modul de persistență a clientului: protejați Clientul luminos binar
  • s : Modul silențios (ascunde fereastra de luminozitate pe PC-ul Client)
  • a : Proactive Anti-Malware: Curățați fișierele rău intenționate și accelerați PC-ul Client
  • n : economizor de energie: preveniți modul de repaus și opriți monitorul după 15 minute de inactivitate
  • m : eliminați fișierul după execuție (topiți)
  • v : mașini Anti-virtuale/depanare
  • h : ascundeți directoare
  • b : backup startup

folosind aceste cunoștințe, putem analiza configurația de mai sus, care dă următoarele rezultate.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

domeniu / IP: 172.16.1.100
Port: 11111
backup DNS: backup.dns.com
Nume fișier: Nume fișier.exe
nume de pornire: startup_name
Nume Folder: folder_name
nume director date: data_directory_name
pornire Backup Exe: backup_startup.exe
Mutex: Df5e0e1c667c399588b014cb9b4ae7b33c9c0b4cac9d4169f39197e41e9a43a4
Id Build: BuildID
Setări:
activați instalarea/pornirea clientului
modul de persistență client: protejați binar client luminozitate
modul silențios (ascunde fereastra luminozitate pe PC-ul client)
proactive Anti-Malware: Curățați fișierele rău intenționate și accelerați PC-ul Client
economizor de energie: preveniți modul de repaus și opriți monitorul după 15 minute de inactivitate
eliminați fișierul după execuție (topiți)
mașini Anti-virtuale / depanare
Ascundeți fișierele și directoarele
pornire Backup

parsarea configurațiilor LuminosityLink la scară

folosind aceste cunoștințe, am creat un script pentru a analiza configurația unui eșantion dat. Scriptul caută șiruri care par a fi codificate de bază64 cu o lungime mai mare de 50 și adoptă o abordare cu forță brută. Deși nu este elegant, face treaba cu succes. Scriptul poate fi descărcat în secțiunea anexă a acestei postări pe blog.

trecând prin depozitul de eșantioane Palo Alto Networks, am găsit aproximativ 18.000 de fișiere etichetate ca LuminosityLink. Pentru aceste 18.000 de eșantioane, am aplicat scriptul nostru de extragere și parsare a configurației statice și am recuperat cu succes aproximativ 4.500 de configurații. Probele rămase au fost ambalate dincolo de rutina de confuzie ConfuserEx încorporată și, ca atare, șirurile de configurare brute nu au fost prezente.

aceste probe au fost rulate printr-o instanță locală a cutiei de nisip cu cuc open-source, unde au fost extrase haldele de proces. Același script a fost aplicat acestor halde de proces, unde am reușit să obținem încă 10.200 de configurații, lăsându-ne cu un total de 14.700 de configurații luminositylink analizate.

pe măsură ce probele au fost procesate, au fost descoperite alte chei pentru a fi utilizate de autor. Următoarele trei șiruri suplimentare au fost utilizate pentru a genera cheile pentru eșantioanele LuminosityLink.

  • acest conf ‘ IG nu conține nimic util. Nu te mai comporta ca și cum ai fi cool decriptând-o.
  • resurse.SMARTLOGS
  • specificați o parolă

se pare că autorul LuminosityLink nu este lipsit de simțul umorului. În plus, pe măsură ce am analizat eșantioane mai vechi, s-a descoperit că configurația a făcut o schimbare cândva între februarie și iunie a acestui an. Mai puține opțiuni au fost disponibile în configurația eșantioanelor mai vechi. Scriptul furnizat reprezintă aceste diferențe și diverse chei utilizate.

folosind datele agregate din cele 14.700 de configurații, au fost extrase următoarele statistici la nivel înalt:

LuminosityLink 7

Figure 7 Prevalence of enabled settings in LuminosityLink configurations

Top C2 TLDs/IP Addresses

  • ddnsnet
  • duckdnsorg
  • no-ipbiz
  • chickenkillercom
  • no-iporg
  • mooocom
  • fishdnscom
  • no-ipinfo
  • ignorelistcom
  • freednssu

Top Build IDs

  • HOME
  • Client
  • crtx1
  • M4CHINATION
  • CSGO
  • NEW
  • Slave
  • CAPO
  • Youtube
  • PROJECT.D

Top Executable Names

  • sysmon.exe
  • client.exe
  • helper.exe
  • repair.exe
  • winlogon.exe
  • svchost.exe
  • Luminosity.exe
  • WinCOMHost.exe
  • chrome.exe
  • windowsbootapp.exe

porturi de Top

  • 6318
  • 1400
  • 1604
  • 1337
  • 3175
  • 22028
  • 9045
  • 2122
  • 100
  • 9999

datele de configurare analizate, furnizate în formatul de fișier CSV, sunt furnizate în mod liber comunității de securitate, în speranța că vor fi create protecții împotriva acestei amenințări.

concluzie

LuminosityLink, în timp ce comercializat ca un utilitar de administrare a sistemelor, este un keylogger formidabil și backdoor folosit de un număr mare de infractori. Până în prezent, Palo Alto Networks a asistat la peste 50.000 de încercări de infecții ale LuminosityLink, cuprinzând 18.000 de probe unice. Malware-ul este ieftin și ușor accesibil publicului, ceea ce face ca acesta să fie o amenințare periculoasă atât pentru organizații, cât și pentru persoane fizice.

prin inginerie inversă LuminosityLink samples, am reușit să extragem și să analizăm static configurația încorporată, care la rândul său oferă informații valoroase despre cu ce gazde și porturi malware-ul este configurat să comunice. De asemenea, oferă informații privind protecțiile configurate configurate în executabil, precum și informații despre instalare.

clienții Palo Alto Networks sunt protejați de această amenințare în următoarele moduri:

o etichetă AutoFocus poate fi utilizată pentru a urmări această familie de malware

  • toate eșantioanele LuminosityLink sunt marcate corespunzător ca fiind rău intenționate în WildFire
  • toate domeniile identificate sunt marcate ca fiind rău intenționate
  • traficul de rețea este identificat amenințare id #14460 (lumonositylinkrat.Trafic de comandă și Control Gen)

Anexa

un script de extragere și analiză pentru eșantioanele LuminosityLink poate fi găsit aici.

un script care va fi folosit pentru a analiza șiruri de configurare simple poate fi găsit aici.

un fișier CSV care conține toate datele de configurare extrase din setul de eșantioane Palo Alto Networks poate fi găsit aici.

Primiți actualizări de la
Palo Alto
rețele!

Înscrieți-vă pentru a primi cele mai recente știri, informații și cercetări privind amenințările cibernetice de la noi

prin trimiterea acestui formular, sunteți de acord cu Termenii de Utilizare și confirmați Declarația noastră de Confidențialitate.

Write a Comment

Adresa ta de email nu va fi publicată.