OnePlus Nord 2 are o vulnerabilitate care acordă acces la shell rădăcină în câteva minute pe un bootloader blocat, fără ștergere a datelor

OnePlus Nord 2 are o vulnerabilitate care permite unui atacator să obțină acces nerestricționat la shell rădăcină. Citiți mai departe pentru a afla mai multe!

Mulți dintre noi aici la XDA-Developers au început inițial să navigheze pe forumuri pentru prima dată când căutam să rootați dispozitivele noastre Android. În acele vremuri, oamenii se bazau adesea pe metodele „rădăcină cu un singur clic”: aplicații sau scripturi care conțineau încărcături utile care vizează vulnerabilitățile cunoscute de escaladare a privilegiilor ale firmware-ului existent pentru a obține root acces. Cu îmbunătățiri și modificări aduse criptării, permisiunilor și gestionării legate de confidențialitate, dispozitivele moderne Android sunt relativ protejate de astfel de vectori de atac, dar va rămâne întotdeauna spațiu pentru exploatează și vulnerabilități.

OnePlus s-ar putea să-și fi cimentat numele printre principalii OEM Android, dar telefoanele sale sunt nici un străin la defecte de securitate. De data aceasta, compania a lăsat o vulnerabilitate destul de interesantă (a se citi: îngrijorătoare) nepatchată pe

OnePlus Nord 2 de la lansarea sa. Deși exploatarea lacunei necesită acces fizic la dispozitiv, atacatorul poate în mod eficient obțineți un shell rădăcină nerestricționat înainte ca utilizatorul să-și poată introduce acreditările. În special, nou lansat Ediția Pac-Man a Nord 2 este de asemenea afectat.

fundal

În zilele noastre, când vorbim despre a avea acces root pe un smartphone Android, oamenii se gândesc de obicei la corectarea imaginii de boot cu Magisk mai întâi și apoi afișarea intermitentă a imaginii corelate pe dispozitivul țintă după deblocarea bootloader-ului. În acest fel, utilizatorul final poate avea acces supravegheat la binarul „su” printr-o aplicație de manager. Alte câteva abordări experimentale există, dar rareori adună la fel de multă utilizare generală.

Când vine vorba de pre-producție, însă, scenariul este complet diferit. În timpul pregătirii firmware-ului unui dispozitiv, inginerii trebuie să aibă diverși parametri de înregistrare activați, inclusiv accesul root. Chiar și pe a userdebug construi, Android Debug Bridge Daemon (adbd) rulează ca rădăcină, astfel încât cineva să aibă acces privilegiat shell pentru scopuri de depanare. Când firmware-ul este gata pentru livrare, toți acești parametri de depanare trebuie dezactivați înainte de a-l lansa.

Dar ce se întâmplă dacă uiți să faci asta? Vom vedea, deoarece lansările oficiale OxygenOS pentru OnePlus Nord 2 vin cu un astfel de defect.

OnePlus Nord 2 -- Vulnerabilitatea rădăcinilor

Unii OEM precum Samsung oferă capacitatea de încărcare laterală a pachetului de actualizare în recuperarea stocurilor pe dispozitivele de vânzare cu amănuntul. În acest caz, adbd binary rulează cu un privilegiu semnificativ ridicat în timpul încărcării laterale, dar se închide singur de îndată ce procesul de actualizare se termină. În afară de asta, nu este permis accesul ADB într-un mediu de recuperare furnizat de OEM.

OnePlus nu mai permite utilizatorilor să flash un pachet ZIP de actualizare prin recuperarea stocului prin intermediul ADB sideload. Presupunând că totul este configurat așa cum ar trebui, mediul de recuperare al unui dispozitiv obișnuit OnePlus ar trebui să fie ferit de atacatorii care livrează orice tip de încărcare utilă folosind ADB. Din păcate, nu totul decurge conform planului în cazul OnePlus Nord 2.

După cum se dovedește, oricine poate genera un shell de depanare Android cu privilegii de root în mediul de recuperare al OnePlus Nord 2. Se pare că una dintre setările critice de depanare și-a făcut drum spre versiunile de producție, ceea ce duce la această eroare.

Exploatarea defectului de pe OnePlus Nord 2

Tot ce trebuie să faceți este să reporniți OnePlus Nord 2 în modul său de recuperare. Un atacator poate lua dispozitivul și poate folosi o simplă combinație de butoane hardware pentru a-l forța să treacă în modul de recuperare. De fapt, nu este nevoie să ajungeți la meniul de recuperare real, deoarece secțiunea vulnerabilă vine înainte. Creditul revine membrului senior XDA AndroPlus pentru subliniind existența acestei erori încă din octombrie 2021.

  1. În timp ce telefonul este oprit, apăsați simultan butoanele de reducere a volumului și de pornire până când dvs vezi sigla OnePlus cu un banner minuscul „MOD DE RECUPERARE” în ​​colțul din stânga jos al ecranului.
  2. Apoi, ar trebui să vedeți ecranul de selecție a limbii. Nu este nevoie să mergem mai departe, deoarece putem iniția accesul ADB chiar de aici.
  3. Acum conectați telefonul la un PC (sau Mac) folosind cablul USB. În cazul în care utilizați Windows, puteți vedea o nouă interfață de depanare USB Android în Managerul de dispozitive. De asemenea, ar putea fi necesar să instalați un dispozitiv adecvat Driver USB Android înainte ca Windows să poată recunoaște noul dispozitiv. Utilizatorii Linux și macOS, pe de altă parte, pot folosi lsusb comandă pentru a detecta prezența noii interfețe hardware.
  4. Având în vedere că aveți deja cea mai recentă versiune a ADB și Fastboot utilitare instalate pe PC/Mac, porniți o instanță Command Prompt/PowerShell/Terminal și executați următoarea comandă:
    adb devices
    Ar trebui să listeze Nord 2 în modul de recuperare. Acest lucru este, de asemenea, deosebit de interesant, deoarece promptul standard de autorizare ADB nu este necesar aici. Este posibil să primiți o eroare „dispozitiv neautorizat”, dar ștergerea bazei de date de chei ADB RSA existentă a computerului gazdă și repornirea serverului ADB ar trebui să vă permită în cele din urmă să o autorizați.
  5. Acum instruiți adbd pentru a rula ca root:
    adb root
    Această comandă poate dura mult timp și probabil veți primi o eroare de timeout. Cu toate acestea, acum adbd ar trebui să ruleze ca root.
  6. În cele din urmă, verificați nivelul de privilegii al shell-ului utilizând următoarea comandă:
    adb shell whoami

Amploarea defectului

Potențialele abuzuri ale acestei vulnerabilități de securitate sunt înfricoșătoare. Cu un atac de succes asupra OnePlus Nord 2, un atacator poate arunca fiecare partiție a dispozitivului. Ca urmare, întreaga partiție de date - inclusiv fișierele stocate în directoarele de date private ale aplicațiilor, de obicei inaccesibile - este accesibilă atacatorului. În cazul în care partiția de date a ieșit ca fiind criptată (din cauza setării de către utilizator a unui PIN sau a unei parole), descărcarea poate fi totuși utilă pentru analiza criminalistică.

Nu numai atât, puteți împinge un executabil către /data/local/tmp și rulează-l de acolo. Acesta este un vector de atac clasic, care poate fi util pentru încărcarea în lanț a unui alt exploit. Mai mult, din moment ce acum poți apela la setprop utilitar ca rădăcină pentru a modifica diferite valori de prop, puteți deturna din punct de vedere tehnic unele dintre variabilele privilegiate specifice OEM. Nu în ultimul rând, chiar dacă nu aveți opțiuni pentru dezvoltatori deblocate, telefonul va solicita automat accesul la depanare USB după ce invocați ADB în recuperare și repornire în mediul Android obișnuit, ceea ce înseamnă că domeniul de aplicare al vulnerabilității nu se limitează doar la secțiunea de recuperare numai.

Rețineți că nu puteți instala fișiere APK folosind ADB în mediul de recuperare din cauza faptului că utilitarul Package Manager nu este accesibil acolo.

Cum să verificați dacă OnePlus Nord 2 este afectat? (Sugestie: este)

După cum am menționat mai devreme, puteți exploata această vulnerabilitate atât pe ediția obișnuită, cât și pe cea specială Pac-Man a OnePlus Nord 2. Pe scurt, dacă introduceți un shell rădăcină (veți ști când simbolul shell se schimbă de la $ la #), atunci veți ști că defectul este prezent.

Am obținut cu succes acces la shell rădăcină pe cel mai recent firmware public indian și european OxygenOS pentru dispozitiv, care înseamnă fiecare unitate OnePlus Nord 2 de acolo este vulnerabilă la momentul scrierii acestui articol.


Ce urmeaza?

Vom urmări această problemă pe măsură ce vor fi disponibile mai multe informații. OnePlus a oferit următoarea declarație cu privire la această problemă:

Tratăm confidențialitatea și securitatea foarte în serios. Noi acordăm prioritate acestei probleme și vom distribui o actualizare de îndată ce vom avea mai multe informații.

Deși toate acestea par înfricoșătoare, rețineți că un atacator va trebui totuși să acceseze fizic telefonul pentru a obține acces la shell rădăcină. Până când OnePlus lansează o actualizare care corectează vulnerabilitatea, încercați să țineți OnePlus Nord 2 departe de străini. Deși nu am întâlnit niciun caz de utilizare rău intenționată, nu se poate ignora o astfel de posibilitate, deoarece vulnerabilitatea este în sălbăticie de cel puțin 2 luni.