VULNERABILITATEA CVE-2023-1389 IDENTIFICATA PE
PARTEA WAN LA TP-LINK, A FOST ADAUGAT LA ARSENALUL BOTNET MIRAI.
Săptămâna
trecută, echipa de vânătoare de amenințări Zero Day Initiative (ZDI) a observat
încercări noi de exploatări provenite din sistemul nostru de telemetrie din
Europa de Est, indicând faptul că botnet-ul Mirai și-a actualizat arsenalul
pentru a include CVE-2023-1389, cunoscut și sub numele de
ZDI-CAN-19557/ZDI-23-451. Această problemă la routerul Wi-Fi TP-Link Archer
AX21 a fost dezvăluită inițial către ZDI în cadrul evenimentului Pwn2Own
Toronto, unde a fost folosită de către echipa Viettel pentru intrarea lor pe
partea LAN împotriva dispozitivului TP-Link și de către Qrious Security pentru
intrarea lor pe partea WAN.
Ambele intrări
ale echipelor au avut succes în cadrul concursului, iar vulnerabilitățile au
fost dezvăluite către producător. Este interesant de menționat că această
problemă a fost folosită și de către echipa Tenable în încercarea lor nereușită
de a exploata dispozitivul în cadrul evenimentului Pwn2Own. Aceștia au
dezvăluit problema către TP-Link, dar raportul lor public nu a arătat că
această problemă putea fi exploatată pe interfața WAN. TP-Link a lansat o
actualizare de firmware în martie care "a remediat câteva probleme de
securitate", inclusiv această problemă și alte CVE-uri. În urma publicării
acestei remedieri, încercări de exploatare folosind această CVE au fost
detectate în mediul online.
Detalii privind vulnerabilitatea
Problema în sine
este o vulnerabilitate de injectare de comenzi neautentificate în API-ul local
disponibil prin intermediul interfeței de gestionare web. Acest endpoint
permite utilizatorului să specifice formularul pe care dorim să-l apelăm prin
specificarea formularului de interogare împreună cu o operație, care de obicei
este de citire sau scriere. În acest caz, suntem interesați de operația de
scriere pe formularul de țară, care este gestionat de funcția set_country.
Această funcție va apela merge_config_by_country care concatenează câmpul de
țară specificat într-un șir de comenzi. Acest șir de comenzi va fi executat
folosind funcția popen. Nu există nicio sanitizare a câmpului de țară, astfel
încât un atacator poate realiza injectarea de comenzi la acest punct.
Această
funcționalitate este expusă pe partea LAN a routerului, conform dovezilor
prezentate de către ambele echipe, Team Viettel și Tenable, care au vizat
această funcționalitate în cadrul concursului. Cu toate acestea, echipa Qrious
Security a reușit să exploateze această vulnerabilitate pe interfața WAN a
routerului. Aceștia au descoperit o problemă de condiție de cursă legată de
gestionarea iptable pe partea de procesare WAN a TP-Link, care ar expune pentru
scurt timp această funcționalitate pe partea WAN. Acest lucru le-a permis să
înlănțuiască slăbiciunea de condiție de cursă cu injectarea de comenzi locale
API pentru a obține execuție de cod în cadrul concursului. Potrivit TP-Link,
ambele probleme au fost rezolvate în patch-ul lansat pe 17 martie.
Detalii despre exploatarea activă
Începând cu 11
aprilie, am început să primim notificări din partea sistemului nostru de
telemetrie că un actor de amenințare a început să exploateze public această
vulnerabilitate. Puteți vedea un exemplu al atacului aici:
Mai mult de
jumătate din activitatea inițială a fost observată la atacarea dispozitivelor
din Europa de Est, dar acum observăm detectări și în alte locații din întreaga
lume.
Payload-uri Mirai
În această
versiune a lui Mirai, atacatorii utilizează CVE-2023-1389 pentru a face o
cerere HTTP către serverele de comandă și control (C2) ale Mirai pentru a
descărca și executa o serie de payload-uri binare. Aceste payload-uri binare
sunt destinate diverselor arhitecturi de sistem. Aceasta este una dintre aceste
cereri:
Payload-urile
binare sunt descărcate și apoi executate folosind metodologia forței brute
pentru a găsi payload-ul potrivit pentru arhitectura sistemului țintă.
Odată ce binarul
potrivit este găsit și payload-ul este instalat, gazda devine complet infectată
și stabilește o conexiune cu Mirai C2. Iată o urmărire a rețelei care arată
această conexiune:
În timp ce
analizam unele dintre payload-uri, am determinat că actorii amenințării
criptează șiruri folosind 0x00 și 0x22 ca chei XOR. Decodarea acestor șiruri a
relevat unele dintre capacitățile și detaliile de configurare care corespund
indicatorilor cunoscuți ai lui Mirai.