OnePlus Nord 2 má zranitelnost, která umožňuje útočníkovi získat neomezený přístup k root shellu. Čtěte dále a dozvíte se více!
Mnoho z nás zde v XDA-Developers původně začalo poprvé procházet fóra, když jsme chtěli rootovat naše zařízení Android. V té době se lidé často spoléhali na metody „kořenového adresáře jedním kliknutím“: obsahující aplikace nebo skripty datové části, které se zaměřují na známé zranitelnosti existujícího firmwaru eskalace oprávnění za účelem získání root přístup. Díky vylepšením a změnám v šifrování, oprávněních a manipulaci související s ochranou osobních údajů jsou moderní zařízení Android před takovými vektory útoků relativně bezpečná, ale vždy zde zůstane prostor pro vykořisťuje a zranitelnosti.
OnePlus možná upevnil své jméno mezi hlavními výrobci Android OEM, ale jeho telefony ano žádný cizinec na bezpečnostní chyby. Tentokrát společnost ponechala na webu poměrně zajímavou (čti: znepokojivou) zranitelnost OnePlus Nord 2 od jeho vydání. Ačkoli zneužití mezery vyžaduje fyzický přístup k zařízení, útočník může efektivně
získat neomezený root shell dříve, než uživatel vůbec může zadat své přihlašovací údaje. Zejména nově vydané Pac-Man edice Nord 2 je ovlivněna také.Pozadí
V dnešní době, když mluvíme o přístupu root na smartphonu Android, lidé obvykle přemýšlejí o tom záplatování základního spouštěcího obrazu pomocí Magisk nejprve a poté flashování opraveného obrazu na cílové zařízení po odemknutí bootloaderu. Tímto způsobem může koncový uživatel mít pod dohledem přístup k binárnímu souboru „su“ prostřednictvím aplikace pro správce. Pár dalších experimentální přístupy existují, ale jen zřídka shromažďují tolik běžného použití.
Pokud jde o předprodukci, scénář je však úplně jiný. Při přípravě firmwaru zařízení musí mít inženýři zapnuté různé parametry protokolování, včetně přístupu root. Dokonce i na a uživatelské ladění stavět, Android Debug Bridge Daemon (adbd) běží jako root, takže člověk může mít privilegovaný přístup k shellu pro účely ladění. Když je firmware připraven k odeslání, musí být všechny tyto parametry ladění vypnuty před jeho zavedením.
Ale co se stane, když na to zapomenete? Uvidíme, protože oficiální verze OxygenOS pro OnePlus Nord 2 přicházejí s takovou chybou.
OnePlus Nord 2 -- Zranitelnost root Shell
Někteří výrobci OEM, jako je Samsung, nabízejí možnost bočního načítání aktualizačních balíčků při obnově zásob na maloobchodních zařízeních. V tom případě, adbd
binární běží s výrazně vysokým oprávněním při bočním načítání, ale sám se ukončí, jakmile proces aktualizace skončí. Kromě toho není v prostředí obnovení poskytovaném výrobcem OEM povolen žádný přístup ADB.
OnePlus již uživatelům neumožňuje flashovat aktualizační balíček ZIP prostřednictvím obnovy zásob prostřednictvím ADB sideload. Za předpokladu, že je vše ostatní nakonfigurováno tak, jak má, by mělo být prostředí pro obnovu běžného zařízení OnePlus v bezpečí před útočníky, kteří doručují jakýkoli druh užitečného zatížení pomocí ADB. Bohužel ne vše jde v případě OnePlus Nord 2 podle plánu.
Jak se ukazuje, kdokoli může v prostředí obnovy OnePlus Nord 2 vytvořit ladicí shell Android s oprávněním root. Jedno z kritických nastavení ladění se zjevně dostalo do produkčních sestavení, což vede k této závadě.
Využití chyby na OnePlus Nord 2
Vše, co musíte udělat, je restartovat OnePlus Nord 2 do režimu obnovení. Útočník může vzít zařízení a pomocí jednoduché kombinace hardwarových tlačítek jej přinutit přejít do režimu obnovy. Ve skutečnosti není třeba se dostat do aktuální nabídky obnovy, protože zranitelná část je před tím. Kredit jde do XDA Senior Member AndroPlus pro poukazuje existence této závady již v říjnu 2021.
- Když je telefon vypnutý, stiskněte současně tlačítka pro snížení hlasitosti a tlačítka napájení, dokud nebudete viz logo OnePlus s nepatrným bannerem „REŽIM OBNOVENÍ“ v levém dolním rohu obrazovky.
- Dále byste měli vidět obrazovku pro výběr jazyka. Není třeba se posouvat vpřed, protože můžeme zahájit ADB přístup přímo odtud.
- Nyní připojte telefon k počítači PC (nebo Mac) pomocí kabelu USB. V případě, že používáte Windows, můžete vidět, že se ve Správci zařízení objeví nové rozhraní pro ladění Android USB. Možná budete také muset nainstalovat vhodný Ovladač USB pro Android než Windows rozpozná nové zařízení. Na druhou stranu uživatelé Linuxu a macOS mohou používat
lsusb
příkaz k detekci přítomnosti nového hardwarového rozhraní. - Vzhledem k tomu, že již máte nejnovější verzi ADB a Fastboot nástroje nainstalované na vašem PC/Mac, spusťte instanci příkazového řádku/PowerShell/Terminálu a spusťte následující příkaz:
Měl by uvést Nord 2 v režimu obnovy. To je také obzvláště zajímavé, protože zde není potřeba standardní výzva k autorizaci ADB. Může se zobrazit chyba „neautorizované zařízení“, ale vymazání stávající databáze klíčů ADB RSA hostitelského počítače a restartování serveru ADB by vám nakonec mělo umožnit jeho autorizaci.adb devices
- Nyní dejte pokyn
adbd
spustit jako root:
Tento příkaz může trvat dlouho a pravděpodobně se zobrazí chyba časového limitu. Nicméně teďadb root
adbd
by měl běžet jako root. - Nakonec ověřte úroveň oprávnění shellu pomocí následujícího příkazu:
adb shell whoami
Rozsah vady
Potenciální zneužití této bezpečnostní chyby je děsivé. S úspěšným útokem na OnePlus Nord 2 může útočník vyhodit každý oddíl zařízení. V důsledku toho je útočníkovi přístupný celý datový oddíl – včetně souborů uložených v typicky nepřístupných soukromých datových adresářích aplikací. V případě, že datový oddíl vyšel jako zašifrovaný (kvůli uživatelskému nastavení PIN nebo hesla), výpis může být stále užitečný pro forenzní analýzu.
Nejen to, můžete spustit spustitelný soubor /data/local/tmp
a spustit to odtud. Jedná se o klasický útočný vektor, který může být užitečný pro řetězení dalšího exploitu. Navíc, protože nyní můžete volat na setprop
jako root pro úpravu různých hodnot prop, můžete technicky unést některé z privilegovaných proměnných specifických pro OEM. V neposlední řadě, i když nemáte odemčené možnosti pro vývojáře, telefon po vyvolání automaticky vyzve k přístupu k ladění USB ADB při obnově a restartu do běžného prostředí Android, což znamená, že rozsah zranitelnosti není omezen pouze na sekci obnovy pouze.
Všimněte si, že v prostředí pro obnovu nemůžete instalovat soubory APK pomocí ADB, protože tam není dostupný nástroj Správce balíčků.
Jak zkontrolovat, zda je ovlivněn váš OnePlus Nord 2? (Nápověda: Je)
Jak již bylo zmíněno dříve, tuto zranitelnost můžete využít na běžné i speciální edici Pac-Man OnePlus Nord 2. Stručně řečeno, pokud zadáte kořenovou skořápku (budete vědět, kdy se symbol skořápky změní z $
na #
), pak budete vědět, že chyba existuje.
Úspěšně jsme získali přístup root shell na nejnovější veřejný indický a evropský firmware OxygenOS pro zařízení, což znamená každá jednotlivá jednotka OnePlus Nord 2 je zranitelná v době psaní tohoto článku.
Co bude dál?
Jakmile budou k dispozici další informace, budeme se touto záležitostí dále zabývat. OnePlus k problému poskytl následující prohlášení:
Soukromí a bezpečnost bereme velmi vážně. Tuto záležitost upřednostňujeme a jakmile budeme mít další informace, sdělíme vám aktualizaci.
I když se to všechno zdá děsivé, mějte na paměti, že útočník bude stále muset fyzicky přistupovat k telefonu, aby získal přístup k root shellu. Dokud OnePlus nevydá aktualizaci, která tuto chybu zabezpečení opraví, snažte se svůj OnePlus Nord 2 držet dál od cizích lidí. I když jsme nenarazili na žádné případy škodlivého použití, nelze takovou možnost vyloučit, protože zranitelnost je ve volné přírodě již nejméně 2 měsíce.