Așa cum am promis într-unul dintre postările noastre anterioare de pe blog despre kiturile de exploatare (Nuclear EK), vom analiza mai în profunzime Angler Exploit Kit. Angler EK este probabil cel mai sofisticat kit de exploatare folosit în prezent de infractorii cibernetici. A fost un pionier al soluțiilor pe care alte kituri de exploatare au început să le folosească mai târziu, cum ar fi detectarea antivirusului și fișierele dropper criptate. În plus, Angler tinde să fie cel mai rapid să integreze cele mai recente zero day, cum ar fi Adobe Flash zero day (CVE-2015-0311) de acum câteva săptămâni, și folosește un sistem de ofuscare deosebit de unic. În cele din urmă, Angler rulează malware-ul abandonat din memorie, fără a fi nevoit să scrie vreodată pe hard disk; această tehnică unică în rândul kiturilor de exploatare face extrem de dificilă detectarea sa de către tehnologiile antivirus tradiționale, deoarece acestea se bazează pe scanarea sistemului de fișiere.
În timp ce Angler este cel mai avansat kit de exploatare din peisajul actual al amenințărilor, clienții Websense sunt protejați de această amenințare cu ACE, motorul nostru de clasificare avansată, în următoarele etape:
- Etapa 2 (Lure) – ACE are detecție pentru site-urile web compromise.
- Stadiul 3 (Redirecționare) – ACE are detecție pentru codul injectat care redirecționează utilizatorul către pagina de exploatare.
- Stadiul 4 (Kit de exploatare) – ACE are detecție pentru codul malițios care încearcă să execute acest atac cibernetic.
- Stage 5 (Dropper Files) – ACE are detecție pentru fișierele binare asociate cu acest atac
Obfuscation
Pagina de aterizare a lui Angler este formată din patru părți de bază. În primul rând, există un text vizibil în limba engleză, care este folosit pentru a face victima kitului de exploatare să creadă că a navigat pe o pagină legitimă. În al doilea rând, are diverse rutine de debifuzare pentru a debifuza scripturile malițioase reale. Aceste scripturi sunt localizate în etichete de clasă p și sunt codificate ca base64. Decodificarea șirurilor base64 dezvăluie codul real al kitului de exploatare ofuscat. În cele din urmă, pagina de destinație conține mai multe șiruri de caractere criptate, care conțin diverse URL-uri care duc la diferite exploit-uri (Flash, Silverlight, Internet Explorer) incluse în kit.
Eșantioane din pagina de aterizare Angler
Codul exploatării dezabuzate
După ce pagina de aterizare este dezabuzată, este dezvăluită adevărata natură a codului. Angler, la fel ca Nuclear și diverse alte kituri de exploatare, utilizează un al doilea strat de ofuscare foarte elementar pentru a îngreuna și mai mult detectarea de către produsele de securitate.
Se folosește, de asemenea, de detecția antivirus, pe lângă detectarea diferitelor soluții de virtualizare (VMWare, VirtualBox, Parallels), precum și a unui proxy de depanare web numit Fiddler, care este utilizat pe scară largă de către cercetătorii în domeniul securității. Implementarea acestor măsuri face foarte dificilă observarea și investigarea acestui kit de exploatare în natură, deoarece majoritatea cercetătorilor în domeniul securității se bazează adesea foarte mult pe aceste instrumente.
Detectarea diverselor fișiere .sys și .dll care aparțin programelor AV și de virtualizare
DetectareaVMWare, VirtualBox, Parallels, precum și a proxy-ului de depanare web Fiddler
Cea mai unică caracteristică a lui Angler este utilizarea acestor căi URL criptate. Folosește un cifru simplu bazat pe transpoziție (în termeni simpli: amestecarea literelor) pentru a cripta și decripta aceste date.
Rutinele de decriptare sunt încorporate în partea ofuscată a kitului de exploatare.
Rutine de decriptare așa cum se găsește în kit
Rutine de decriptare formatată și comentată
Vom folosi un exemplu foarte simplu pentru a demonstra cum funcționează decriptarea. Să presupunem că textul nostru cifrat (datele criptate) este „TEER CSURH TO PLTAOEL IX TP”, iar cheia noastră de decriptare este „OBFUSCATE”. Ceea ce face Angler este că ia ordinea alfabetică a literelor din cheie și rearanjează textul cifrat pe baza acesteia. De exemplu:
OBFUSCATE → 6,2,5,5,9,7,3,1,8,4
Aceasta ne dă ordinea literelor din textul cifrat. Folosind acest lucru îl putem decripta cu ușurință prin rearanjarea literelor.
Exemplu de decriptare
Și în final spațiile albe sunt eliminate din șirul decriptat . Evident, aceasta este o formă extrem de rudimentară de criptare și ar fi foarte ușor de spart chiar și fără cheie dacă (ca în exemplul de mai sus) textul în clar este format din cuvinte reale. Cu toate acestea, Angler utilizează URL-uri extrem de aleatoare, astfel încât acest tip de criptare este mai mult decât suficient pentru a ascunde adevărata natură a acestor șiruri și a căilor URL reale de diverse produse de securitate.
Restul codului deobfuscat urmează tiparele obișnuite ale kit-ului de exploatare: există diverse rutine de detectare a plugin-urilor și de verificare a versiunilor, astfel încât kit-ul de exploatare „știe” ce exploit(uri) să lanseze asupra țintei. Există, de asemenea, destul de multe rutine de construire a codului de coajă, deoarece Angler utilizează un cod de coajă în mai multe etape, în care diferite etape sunt codificate și sunt decodificate de etapele anterioare. Acesta include, de asemenea, o cheie de criptare/decriptare codificată pentru fișierul dropper.
Cheie de criptare pentru încărcătura utilă
Cod shell în mai multe etape
Dropper
Dacă exploatarea reușește, încărcătura utilă a lui Angler este lansată pe sistemul victimei. Pe măsură ce încărcătura utilă călătorește prin rețea, aceasta este încă criptată și este decriptată ulterior de către shellcode-ul din etapa finală. Această tehnică este utilizată pentru a face detectarea dropper-ului malițios foarte dificilă pentru sistemele tradiționale de detectare a intruziunilor (IDS). După cum am menționat anterior, Angler utilizează droppere „fără fișiere”, ceea ce înseamnă că acestea sunt rulate direct din memorie. Dropper-ul folosit de Angler se numește Bedep, care este de fapt doar un downloader – adică nu este malițios în sine, dar este folosit pentru a descărca și a executa diferite tipuri de malware.
Carga utilă constă într-o combinație de shellcode și Bedep DLL. Dacă primii câțiva octeți ai încărcăturii utile sunt „909090” (NOPs sau No Operations în ansamblul x86), DLL-ul va fi încărcat din memorie, în caz contrar va fi scris pe disc la fel ca un fișier dropper normal. Codul de shellcode este responsabil pentru rularea DLL din memorie.
Codul de shellcode rezolvă API-uri precum kernel32.dll și wininet.dll
Summary
Angler Exploit Kit este, fără îndoială, unul dintre cele mai periculoase kituri de exploatare existente în prezent în sălbăticie. Dispune de diverse tehnici în arsenalul său pentru a învinge metodele tradiționale de detectare, cum ar fi:
- Unique Obfuscation
- Detectează software-ul antivirus/virtualizare
- Encrypted payload
- Fileless infections
În plus, Angler este adesea primul care adoptă cele mai recente exploit-uri, care includ zero days din când în când. Natura în continuă evoluție a lui Angler evidențiază, de asemenea, necesitatea unor soluții de securitate care să ofere protecție de-a lungul întregului lanț de eliminare, în loc să se concentreze doar pe o singură etapă a acestuia.
.