Linux/Moose: încă există


Ce este un Moose - Introducere

Linux/Moose este o familie de malware, care adresează în primul rând routerele utilizatorilor bazate pe Linux, dar care poate infecta, de asemenea, alte sisteme integrate bazate pe Linux. Dispozitivele compromise sunt folosite pentru a fura traficul de rețea necriptat și oferă servicii proxy operatorului de botnet. În practică, aceste capacități sunt folosite pentru a fura cookie-uri HTTP de pe site-urile populare de social media și de a efectua acțiuni frauduloase, cum ar fi "follow-uri", "puncte de vedere" și "aprecieri" non-legitime.

În mai 2015 ESET a lansat un raport asupra familiei malware pe care am numit-o Linux/Moose. După publicare, servere de comandă și control Linux/Moose s-au închis și am pierdut urma codului malware. Câteva luni mai târziu, în septembrie 2015, am primit un nou eșantion de Linux/Moose – care după cum ne așteptam suferise o evoluție din momentul publicării raportului.

Pentru anul trecut, ESET și firma de securitate GoSecure și-au unit abilitățile, cu scopul de a cerceta Linux/Moose în continuare. GoSecure a investigat aspectele fraudei în social media pentru a releva o piață necunoscută numită “The Ego Market”. Această piață este evidențiată într-un nou raport publicat de GoSecure. Acest articol va acoperi modificările tehnice dintre variantele Moose pe care le-am descris în raportul nsotru și noile variante care au apărut în septembrie 2015.

Elan în tufișuri – ascunderea adresei C & C

Primul lucru pe care am observat când am primit noul eșantion a fost că nu mai exista o adresă IP de comandă și control (C & C) în interiorul codului binar. Se pare că operatorii au citit raportul nostru cu atenție și au decis să facă lucrurile un pic mai grele pentru noi. În această nouă versiune adresa IP de C & C este dată ca argument în linia de comandă criptat, așa cum se arată în următoarea ieșire:

1

Această nouă caracteristică implică faptul că nu se mai poate rula eșantionul de către noi înșine; mașinile noastre trebuie să fie compromise de către o altă secvență de cod integrată ce răspândește amenințare necontrolat pentru a recupera adresa IP de C&C. Cititorul atent va observa că adresa IP afișată este în format întreg pe 32 de biți.

Scopul criptării adresei IP de aici, în cazul în care codul binar este găsit singur, rămâne inutil fără valoarea transmisă ca argument. De asemenea, valoarea singură nu are niciun sens fără codul binar acesta având valoarea corectă pentru a decripta argumentul. Valoarea este XORed cu o valoare statică așa cum se arată în următorul cod:

2-2

Decompiler output

Din câte știm noi, această valoare a rămas la fel în ultimele câteva luni. Aici este un fragment Python pentru a decripta valoarea C & C Integer pe 32 de biți:

4-1

Decriptarea adresei IP de C&C

Schimbarea Moose-ului – Comunicare în rețea

Protocolul de rețea a fost modificat, dar a păstrat baza protocolului său și a adăugat noi straturi. Mai jos este o privire rapidă asupra a două capturi de ecran de la ambele eșantioane. După cum arată lucrurile principala schimbare adusă aici este la protocolul binar ASCII printabil. În Figura 1, în partea stângă este protocolul de rețea vechi și în partea dreaptă cel nou.

screen-shot-2016-10-31-at-14-16-14

Figura 1: Diferențele la nivelul protocolului de rețea

În vechea probă analizată configurația a fost trimisă de către serverul C & C pentru malware și conținea diverse domenii, cum ar fi câmpul de biți pentru a determina ce caracteristici să activeze, câmpurile de adresă IP, câmpul whitelist și câmpul parolă. Aceste câmpuri sunt încă prezente în noua versiune, dar separate în trei chei (a se vedea tabelul 1). Operatorul folosește Cookie: și Set-CookieHTTP headers pentru a trimite aceste câmpuri de configurare. Această configurare este criptată printr-o simplă buclă XOR ca în prima variantă, dar este, de asemenea, codificată pentru a putea fi imprimată în antetele HTTP datorită funcției următoare:

5-1

Decompiler output

Tabelul 1 (tabelul valorilor de key) rezumă configurația principală a Moose v.2:

6

Cheia de PHPSESSID conține valoarea criptată a câmpurilor de biți, care permit activarea sau dezactivarea anumitor funcții în Moose (scanare externă/locală, sniffer, procesul de închidere). Cheia LP conține lista de parole. Linux/Moose încă încearcă să se răspândească prin forțarea datelor de autentificare a Telnet. A existat o mare schimbare în această listă, de la aproximativ 300 de utilizatori și parole în 2015, față de aproximativ 10 în 2016. A se vedea mai jos:

6-1

Cheia WL conține lista whitelist. Din nou, lista a fost scurtată de la 50 la 10 adrese IP. Aceste adrese IP sunt în secțiunea IoC. Linux/Moose are în continuare capacitatea de a rula un serviciu proxy prin interceptarea portul TCP 20012. Varianta anterioară obișnuia să intercepteze portul 10073. Caracteristica proxy permite adreselor IP din whitelist să interacționeze cu malware-ul.

Concluzie

Autorii codului malware Linux/Moose au muncit din greu pentru a nu fi descoperiți  prin ascunderea locației mai eficientă a serverului de C & C și schimbarea protocolului de rețea. Făcând acest lucru, Moose evită indicatorii de compromis (IoCs) lansați în raportul ESET din 2015. Scurtarea whitelistului și a listei de parole este o abordare mult mai delicată pentru Moose. Cu toate acestea, unele urme care induc în eroare sunt plasate în interiorul codului binar, cum ar fi domeniu fals www.challpok.cn găsit în clartext în lista de string-uri de caractere sau chiar nume de fișiere care pot corespunde pentru bitcoinminer sau malware-ului DDoS. Linux/Moose este în mod exclusiv o amenințare la nivelul memoriei-rezidente; repornirea dispozitivului încorporat se va solda cu execuția acestuia.

Indicatorii de compromis

Hashes

versiunea 0x1F (31)

c6edfa2bf916d374e60f1b5444be6dbbee099692
c9ca4820bb7be18f36b7bad8e3044b2d768a5db8
5b444f1ac312b4c24b6bde304f00a5772a6a19a4
f7574b3eb708bd018932511a8a3600d26f5e3be9

versiunea 0x20 (32)

34802456d10efdf211a7d486f7108319e052cd17
0685cb1d72107de63fa1da52930322df04a72dbc
2876cad26d6dabdc0a9679bb8575f88d40ebd960
f94b6cc5aea170cee55a238eaa9339279fba962f
274ef5884cb256fd4edd7000392b0e326ddd2398
c3f0044ffa9d0bc950e9fd0f442c955b71a706b6
f3daea1d06b1313ec061d93c9af12d0fe746839a

versiunea 0x21 (33)

7767c8317fb0bbf91924bddffe6a5e45069b0182
1caac933ae6ca326372f7e5dd9fff82652e22e34
5dea6c0c4300e432896038661db2f046c523ce35
e8dc272954d5889044e92793f0f637fe4d53bb91
0843239b3d0f62ae6c5784ba4589ef85329350fa
1d1d46c312045e17f8f4386adc740c1e7423a24a
d8b45a1114c5e0dbfa13be176723b2288ab12907

versiunea 0x22 (34)

c35d6812913ef31c20404d9bbe96db813a764886

Adrese IP

Serverele principale C&C

192.3.8.218
192.3.8.219

Whitelist

155.133.18.64
178.19.111.181
151.80.8.2
151.80.8.19
151.80.8.30
62.210.6.34

Georgiana November 4, 2016

Lasa un comentariu