OnePlus Nord 2 ima ranjivost koja omogućuje pristup root shell-u unutar nekoliko minuta na zaključanom bootloaderu, bez brisanja podataka

click fraud protection

OnePlus Nord 2 ima ranjivost koja napadaču omogućuje neograničeni pristup root shell-u. Čitajte dalje da biste saznali više!

Mnogi od nas ovdje u XDA-Developersu počeli su prvi put pregledavati forume kada smo htjeli rootati naše Android uređaje. U to vrijeme ljudi su se često oslanjali na metode "root jednim klikom": aplikacije ili skripte koje sadrže korisna opterećenja koja ciljaju poznate ranjivosti eskalacije privilegija postojećeg firmvera za dobivanje roota pristup. S poboljšanjima i promjenama enkripcije, dopuštenja i rukovanja povezanim s privatnošću, moderni Android uređaji relativno su sigurni od takvih vektora napada, no uvijek će ostati prostora za iskorištava i ranjivosti.

OnePlus je možda učvrstio svoje ime među glavnim proizvođačima originalne opreme za Android, ali njegovi telefoni jesu nema stranca do sigurnosni nedostaci. Ovaj put, tvrtka je ostavila prilično zanimljivu (čitaj: zabrinjavajuću) ranjivost nezakrpanu na OnePlus Nord 2 od svog izdanja. Iako iskorištavanje rupe u zakonu zahtijeva fizički pristup uređaju, napadač može učinkovito

dobiti neograničenu korijensku ljusku prije nego što korisnik uopće može unijeti svoje vjerodajnice. Naime, novoobjavljeni Pac-Man izdanje Nord 2 također utječe.

Pozadina

U današnje vrijeme, kada govorimo o root pristupu na Android pametnom telefonu, ljudi obično razmišljaju o krpanje zališke boot slike s Magiskom prvo, a zatim bljeskanjem zakrpane slike na ciljni uređaj nakon otključavanja bootloadera. Na taj način krajnji korisnik može imati nadzirani pristup "su" binarnom obliku putem upraviteljske aplikacije. Par drugih eksperimentalni pristupi postoje, ali rijetko imaju toliko široku upotrebu.

Međutim, kada je riječ o pretprodukciji, scenarij je potpuno drugačiji. Tijekom pripreme firmware-a uređaja, inženjeri trebaju imati uključene različite parametre bilježenja, uključujući root pristup. Čak i na a ispravljanje pogrešaka korisnika izgraditi, Android Debug Bridge Daemon (adbd) radi kao root, tako da se može imati privilegirani pristup ljusci za potrebe ispravljanja pogrešaka. Kada je firmver spreman za isporuku, svi ti parametri za otklanjanje pogrešaka moraju biti isključeni prije nego što se pokrene.

Ali što se događa ako to zaboravite učiniti? Vidjet ćemo, budući da službena izdanja OxygenOS-a za OnePlus Nord 2 dolaze s takvim nedostatkom.

OnePlus Nord 2 -- Ranjivost korijenske ljuske

Neki proizvođači originalne opreme poput Samsunga nude mogućnost bočnog učitavanja paketa ažuriranja u obnovi zaliha na maloprodajnim uređajima. U tom slučaju, adbd binarni radi sa značajno visokim privilegijama tijekom bočnog učitavanja, ali se sam zatvara čim završi proces ažuriranja. Osim toga, pristup ADB-u nije dopušten u OEM okruženju za oporavak.

OnePlus više ne dopušta korisnicima flash ažuriranja ZIP paketa putem oporavka zaliha putem ADB sideloada. Pod pretpostavkom da je sve ostalo konfigurirano kako treba, uobičajeno okruženje za oporavak OnePlus uređaja trebalo bi biti sigurno od napadača koji isporučuju bilo kakvu vrstu korisnog opterećenja pomoću ADB-a. Nažalost, u slučaju OnePlus Nord 2 ne ide sve po planu.

Kako se ispostavilo, svatko može stvoriti Androidovu ljusku za otklanjanje pogrešaka s root privilegijom unutar okruženja za oporavak OnePlus Nord 2. Jedna od kritičnih postavki za otklanjanje pogrešaka očito je došla do proizvodnih verzija, što je dovelo do ovog kvara.

Iskorištavanje greške na OnePlus Nord 2

Sve što trebate učiniti je ponovno pokrenuti OnePlus Nord 2 na način oporavka. Napadač može uzeti uređaj i upotrijebiti jednostavnu kombinaciju hardverskih gumba kako bi ga prisilio da prijeđe u način rada za oporavak. Zapravo, nema potrebe doći do stvarnog izbornika za oporavak, budući da se ranjivi odjeljak nalazi prije toga. Zasluge idu starijem članu XDA AndroPlus za ističući postojanje ovog kvara u listopadu 2021.

  1. Dok je telefon isključen, istovremeno pritisnite tipku za smanjivanje glasnoće i tipku za napajanje dok ne pogledajte logotip OnePlus s minijaturnim natpisom "RECOVERY MODE" u donjem lijevom kutu zaslona.
  2. Zatim biste trebali vidjeti zaslon za odabir jezika. Nema potrebe da se krećete naprijed, jer možemo pokrenuti ADB pristup upravo odavde.
  3. Sada spojite telefon na PC (ili Mac) pomoću USB kabela. U slučaju da koristite Windows, u Upravitelju uređaja možete vidjeti novo Android USB sučelje za otklanjanje pogrešaka. Možda ćete također morati instalirati odgovarajući Android USB drajver prije nego što Windows prepozna novi uređaj. Korisnici Linuxa i macOS-a, s druge strane, mogu koristiti lsusb naredba za otkrivanje prisutnosti novog hardverskog sučelja.
  4. S obzirom da već imate najnoviju verziju ADB i Fastboot pomoćne programe instalirane na vašem PC/Mac računalu, pokrenite instancu Command Prompt/PowerShell/Terminal i izvršite sljedeću naredbu:
    adb devices
    Trebao bi navesti Nord 2 u načinu oporavka. Ovo je također posebno zanimljivo, jer standardni ADB upit za autorizaciju ovdje nije potreban. Možda ćete dobiti pogrešku "uređaj neovlašten", ali brisanje postojeće baze podataka ADB RSA ključeva glavnog računala i ponovno pokretanje ADB poslužitelja trebalo bi vam omogućiti da ga autorizirate.
  5. Sada uputite adbd pokrenuti kao root:
    adb root
    Ova naredba može potrajati dugo i vjerojatno ćete dobiti pogrešku isteka vremena. Ipak, sada adbd trebao bi se izvoditi kao root.
  6. Na kraju, provjerite razinu privilegija ljuske pomoću sljedeće naredbe:
    adb shell whoami

Opseg mane

Moguće zlouporabe ove sigurnosne ranjivosti su zastrašujuće. S uspješnim napadom na OnePlus Nord 2, napadač može izbaciti svaku particiju uređaja. Kao rezultat toga, cijela podatkovna particija - uključujući datoteke pohranjene u tipično nedostupnim privatnim podatkovnim direktorijima aplikacija - dostupna je napadaču. U slučaju da je particija s podacima izašla kao šifrirana (zbog toga što je korisnik postavio PIN ili lozinku), dump bi i dalje mogao biti koristan za forenzičku analizu.

I ne samo to, možete gurnuti izvršnu datoteku na /data/local/tmp i pokrenite ga od tamo. Ovo je klasični vektor napada, koji može biti koristan za učitavanje drugog exploita. Štoviše, budući da sada možete nazvati setprop uslužni program kao root za izmjenu različitih vrijednosti prop, možete tehnički preoteti neke od povlaštenih varijabli specifičnih za OEM. Posljednje, ali ne i najmanje važno, čak i ako nemate otključane opcije za razvojne programere, telefon će automatski zatražiti pristup USB otklanjanju pogrešaka nakon što pozovete ADB u oporavku i ponovno pokretanje u uobičajenom Android okruženju, što znači da opseg ranjivosti nije ograničen samo na odjeljak za oporavak samo.

Imajte na umu da ne možete instalirati APK datoteke pomoću ADB-a u okruženju za oporavak zbog činjenice da uslužni program Package Manager tamo nije dostupan.

Kako provjeriti je li zahvaćen vaš OnePlus Nord 2? (Savjet: jeste)

Kao što je ranije spomenuto, ovu ranjivost možete iskoristiti i na redovnom i na posebnom Pac-Man izdanju OnePlus Nord 2. Ukratko, ako unesete korijensku ljusku (znat ćete kada se simbol ljuske promijeni iz $ do #), tada ćete znati da je nedostatak prisutan.

Uspješno smo dobili root shell pristup na najnoviji javni indijski i europski OxygenOS firmware za uređaj, što znači svaka jedinica OnePlus Nord 2 vani je ranjiva u trenutku pisanja ovog članka.


Što je sljedeće?

Pratit ćemo ovaj slučaj čim bude dostupno više informacija. OnePlus je dao sljedeću izjavu o tom problemu:

Privatnost i sigurnost tretiramo vrlo ozbiljno. Dajemo prednost ovoj stvari i podijelit ćemo ažuriranje čim budemo imali više informacija.

Iako sve ovo djeluje zastrašujuće, imajte na umu da će napadač ipak morati fizički pristupiti telefonu kako bi dobio pristup root shell-u. Dok OnePlus ne objavi ažuriranje koje će zakrpati ranjivost, pokušajte svoj OnePlus Nord 2 držati podalje od stranaca. Iako nismo naišli na primjere zlonamjerne upotrebe, ne možemo odbaciti takvu mogućnost jer je ranjivost prisutna već najmanje 2 mjeseca.