OnePlus Nord 2 má zraniteľnosť, ktorá umožňuje útočníkovi získať neobmedzený prístup k root shellu. Čítajte ďalej a dozviete sa viac!
Mnohí z nás tu v XDA-Developers pôvodne prvýkrát začali prehliadať fóra, keď sme hľadali root naše Android zariadenia. V tých dňoch sa ľudia často spoliehali na metódy „koreňového adresára jedným kliknutím“: aplikácie alebo skripty obsahujúce užitočné zaťaženia, ktoré sa zameriavajú na známe zraniteľné miesta pri eskalácii privilégií existujúceho firmvéru s cieľom získať root prístup. Vďaka vylepšeniam a zmenám v šifrovaní, povoleniach a zaobchádzaní so súkromím sú moderné zariadenia so systémom Android relatívne bezpečné pred takýmito vektormi útokov, ale vždy tu zostane priestor na zneužíva a zraniteľnosti.
OnePlus možno upevnil svoje meno medzi hlavnými výrobcami Android OEM, ale jeho telefóny sú žiadny cudzinec do bezpečnostné chyby. Tentoraz spoločnosť nechala na serveri nezaplatenú pomerne zaujímavú (čítaj: znepokojujúcu) zraniteľnosť OnePlus Nord 2 od jeho vydania. Hoci využitie medzery vyžaduje fyzický prístup k zariadeniu, útočník môže efektívne
získajte neobmedzený koreňový shell skôr, ako môže používateľ zadať svoje prihlasovacie údaje. Najmä novo vydané Pac-Man edícia Nord 2 je ovplyvnená tiež.Pozadie
V súčasnosti, keď hovoríme o root prístupe na smartfóne s Androidom, ľudia zvyčajne premýšľajú oprava bootovacieho obrazu pomocou Magisku najprv a potom flashovanie opraveného obrazu na cieľové zariadenie po odomknutí zavádzača. Týmto spôsobom môže mať koncový používateľ kontrolovaný prístup k binárnemu súboru „su“ prostredníctvom aplikácie správcu. Pár ďalších experimentálne prístupy existujú, ale len zriedka získajú toľko mainstreamových použití.
Pokiaľ ide o predprodukciu, scenár je úplne odlišný. Pri príprave firmvéru zariadenia musia mať inžinieri zapnuté rôzne parametre protokolovania vrátane prístupu root. Dokonca aj na a userdebug stavať, Android Debug Bridge Daemon (adbd) beží ako root, takže človek môže mať privilegovaný shell prístup na účely ladenia. Keď je firmvér pripravený na odoslanie, všetky tieto parametre ladenia musia byť pred jeho uvedením na trh vypnuté.
Čo sa však stane, ak na to zabudnete? Uvidíme, keďže oficiálne vydania OxygenOS pre OnePlus Nord 2 prichádzajú s takouto chybou.
OnePlus Nord 2 – Zraniteľnosť root Shell
Niektorí výrobcovia OEM, ako napríklad Samsung, ponúkajú možnosť bočného načítania aktualizačných balíkov pri obnove zásob na maloobchodných zariadeniach. V takom prípade, adbd
binárny beží s výrazne vysokým privilégiom pri bočnom načítaní, ale sám sa vypne hneď po dokončení procesu aktualizácie. Okrem toho nie je v prostredí obnovy poskytovanom výrobcom OEM povolený žiadny prístup ADB.
OnePlus už používateľom neumožňuje flashovať aktualizačný balík ZIP prostredníctvom obnovy zásob cez ADB sideload. Za predpokladu, že všetko ostatné je nakonfigurované tak, ako má, prostredie na obnovenie bežného zariadenia OnePlus by malo byť bezpečné pred útočníkmi, ktorí doručujú akýkoľvek druh užitočného zaťaženia pomocou ADB. Bohužiaľ, nie všetko ide v prípade OnePlus Nord 2 podľa plánu.
Ukázalo sa, že, ktokoľvek môže v prostredí obnovy OnePlus Nord 2 vytvoriť shell na ladenie Androidu s oprávnením root. Jedno z kritických nastavení ladenia sa zrejme dostalo do produkčných verzií, čo vedie k tejto chybe.
Využitie chyby na OnePlus Nord 2
Všetko, čo musíte urobiť, je reštartovať OnePlus Nord 2 do režimu obnovenia. Útočník môže vziať zariadenie a pomocou jednoduchej kombinácie hardvérových tlačidiel ho prinútiť prejsť do režimu obnovenia. V skutočnosti nie je potrebné dostať sa do skutočnej ponuky obnovy, pretože zraniteľná časť je pred ňou. Kredit patrí senior členovi XDA AndroPlus pre poukazuje existenciu tejto závady ešte v októbri 2021.
- Keď je telefón vypnutý, súčasne stlačte tlačidlo zníženia hlasitosti a tlačidlo napájania, kým sa nestlačíte pozrite si logo OnePlus s nepatrným bannerom „REŽIM OBNOVENIA“ v ľavom dolnom rohu obrazovky.
- Ďalej by ste mali vidieť obrazovku výberu jazyka. Nie je potrebné sa pohnúť vpred, pretože môžeme iniciovať ADB prístup priamo odtiaľto.
- Teraz pripojte telefón k počítaču PC (alebo Mac) pomocou kábla USB. Ak používate systém Windows, v Správcovi zariadení sa zobrazí nové rozhranie na ladenie USB systému Android. Možno budete musieť nainštalovať aj vhodný Ovládač USB pre Android skôr, ako systém Windows dokáže rozpoznať nové zariadenie. Na druhej strane používatelia systémov Linux a MacOS môžu používať
lsusb
príkaz na zistenie prítomnosti nového hardvérového rozhrania. - Vzhľadom na to, že už máte najnovšiu verziu ADB a Fastboot pomôcky nainštalované na vašom PC/Mac, spustite inštanciu príkazového riadka/PowerShell/Terminálu a vykonajte nasledujúci príkaz:
Mal by uviesť Nord 2 v režime obnovenia. To je tiež obzvlášť zaujímavé, pretože tu nie je potrebná štandardná výzva na autorizáciu ADB. Môžete dostať chybu „neautorizované zariadenie“, ale vymazanie existujúcej databázy kľúčov ADB RSA hostiteľského počítača a reštartovanie servera ADB by vám nakoniec malo umožniť autorizáciu.adb devices
- Teraz poučte
adbd
spustiť ako root:
Tento príkaz môže trvať dlho a pravdepodobne sa vám zobrazí chyba časového limitu. Napriek tomu terazadb root
adbd
by mal bežať ako root. - Nakoniec overte úroveň privilégií shellu pomocou nasledujúceho príkazu:
adb shell whoami
Rozsah chyby
Potenciálne zneužitie tejto bezpečnostnej zraniteľnosti je desivé. Po úspešnom útoku na OnePlus Nord 2 môže útočník vyhodiť každý oddiel zariadenia. Výsledkom je, že celý dátový oddiel – vrátane súborov uložených v typicky nedostupných súkromných dátových adresároch aplikácií – je prístupný útočníkovi. V prípade, že dátový oddiel vyšiel ako zašifrovaný (pretože používateľ nastavil PIN alebo heslo), výpis môže byť stále užitočný pre forenznú analýzu.
Nielen to, môžete tlačiť spustiteľný súbor /data/local/tmp
a spustiť to odtiaľ. Toto je klasický vektor útoku, ktorý môže byť užitočný na reťazové zaťaženie iného exploitu. Navyše, keďže teraz môžete zavolať na setprop
ako root na úpravu rôznych hodnôt prop, môžete technicky uniesť niektoré z privilegovaných premenných špecifických pre OEM. V neposlednom rade, aj keď nemáte odomknuté možnosti pre vývojárov, telefón po vyvolaní automaticky vyzve na prístup na ladenie USB ADB pri obnove a reštarte do bežného prostredia Android, čo znamená, že rozsah zraniteľnosti nie je obmedzený len na časť obnovy iba.
Všimnite si, že v prostredí obnovy nemôžete inštalovať súbory APK pomocou ADB, pretože tam nie je dostupná pomôcka Správca balíkov.
Ako skontrolovať, či je ovplyvnený váš OnePlus Nord 2? (Tip: Je)
Ako už bolo spomenuté, túto zraniteľnosť môžete využiť na bežnej aj špeciálnej edícii Pac-Man OnePlus Nord 2. Stručne povedané, ak zadáte koreňovú škrupinu (budete vedieť, kedy sa symbol škrupiny zmení z $
do #
), potom budete vedieť, že chyba je prítomná.
Úspešne sme získali prístup root shell na najnovší verejný indický a európsky firmvér OxygenOS pre zariadenie, čo znamená každá jedna jednotka OnePlus Nord 2 je zraniteľná v čase písania tohto článku.
Čo bude ďalej?
Keď budú k dispozícii ďalšie informácie, budeme túto záležitosť sledovať. OnePlus k problému poskytol nasledujúce vyhlásenie:
Súkromie a bezpečnosť berieme veľmi vážne. Túto záležitosť považujeme za prioritu a hneď, ako budeme mať viac informácií, sa podelíme o aktualizáciu.
Aj keď to všetko vyzerá strašidelne, majte na pamäti, že útočník bude stále musieť fyzicky pristupovať k telefónu, aby získal prístup k root shellu. Kým OnePlus nevydá aktualizáciu, ktorá opraví túto zraniteľnosť, snažte sa držať svoj OnePlus Nord 2 mimo dosahu cudzincov. Aj keď sme sa nestretli so žiadnymi prípadmi škodlivého použitia, nemožno túto možnosť vylúčiť, pretože zraniteľnosť je vo voľnej prírode už najmenej 2 mesiace.