OnePlus omylem předinstaloval aplikaci, která funguje jako zadní vrátka ke kořenovému přístupu

OnePlus ponechalo na svém místě technickou testovací aplikaci Qualcomm, která funguje jako zadní vrátka pro udělení přístupu root na OnePlus 3, 3T a 5.

Aktualizace: OnePlus vydalo oficiální odpověď k věci. V nadcházející aktualizaci odstraní kořenovou funkci ADB z EngineerMode.

Je to něco málo přes měsíc, co se zjistilo, že OnePlus sbírá osobně identifikovatelné údaje pro analýzu. Společnost rychle obrátila kurz a v aktualizaci společnost slíbila, že bude transparentnější tím, že uživatelům jasně poskytne možnost odhlásit se z analýzy OxygenOS. I když se tento debakl od té doby vyřešil, další dnes večer zvedá svou ošklivou hlavu. Uživatel na Twitteru, který vystupuje pod jménem „Elliot Alderson“ (pojmenovaný po hlavní postavě populárního televizního seriálu Mr. Robot) zjistil, že OnePlus omylem zanechal na místě aplikaci pro diagnostické testování vyrobeno společností Qualcomm. Po dekompilaci této aplikace zjistil, že to může být využívány k udělení přístupu root – účinně fungující jako zadní vrátka.

Aplikace se nazývá "EngineerMode" a je to v podstatě systémová aplikace vytvořená společností Qualcomm a poskytuje se výrobcům OEM, jako je OnePlus, aby mohli výrobci OEM snadno otestovat všechny hardwarové komponenty přístroj. Aplikace je předinstalovaná na všech zařízeních OnePlus 3, OnePlus 3T a OnePlus 5 a lze k ní snadno přistupovat prostřednictvím jakéhokoli spouštěče aktivit, protože jsou exportovány všechny aktivity aplikace.

My vlastně pokrývala existenci této aplikace před několika měsíci, ale tehdy jsme vůbec netušili, k čemu by se to dalo využít. Uživatel Twitteru aplikaci dekompiloval (její zdroj byl zveřejněn online tady) a našel zajímavou aktivitu s názvem DiagEnabled. V rámci aktivity vynikla zejména jedna metoda: escalatedUp. Tato metoda přijímá booleovskou hodnotu (true/false) a řetězec. Řetězec je heslo, které je zkontrolováno metodou před nastavením vlastností systému persist.sys.adbroot a oem.selinux.reload_policy do 1.

První systémová vlastnost je obzvláště zajímavá, protože umožňuje uživateli spouštět ADB jako root. To okamžitě otevírá možnost získat úplný root přístup v telefonu – to vše bez odemykání bootloaderu. Jak tedy přesně přimějete aplikaci EngineerMode, aby nastavila tyto systémové vlastnosti na „1“?

@fs0c131y potřeboval najít správné heslo k odeslání záměru, aby mohl předat logiku výše uvedené metodě. Najít toto heslo však není jednoduchý úkol. Dekompiloval knihovnu odpovědnou za generování hesla (nazvanou libdoor.so) a zjistil, kde se nachází hash hesla: /data/backup/fpwd. Heslo je generováno z různých vlastností sestavení jako např ro.product.model a ro.product.brand a nebylo by snadné zpětně analyzovat.

Naštěstí s pomocí David Weinstein a Nyní Zabezpečeno na Twitteru objevil heslo, které EngineerMode potřebuje k eskalaci ADB na rootová práva.

Jediné, co musíte udělat, je poslat záměr v tomto formátu:

adb shell am start -n com.android.engineeringmode/.qualcomm.DiagEnabled --es "code""angela"

kde com.android.engineeringmode/.qualcomm. DiagEnabled je název komponenty DiagEnabled Activity, kterou využíváme, a „code“ je název řetězce a „angela“ je příslušná hodnota hesla.

@fs0c131y uvádí, že bude publikovat aplikaci brzy to odešle tento záměr povýšit ADB na práva uživatele root, opravit spouštěcí obraz, aby deaktivoval dm-verity, a nainstalovat binární soubory su. Sledujte XDA fóra, kdy bude tato kořenová aplikace zveřejněna.

Pro koncové uživatele to znamená, že můžete snadno rootujte svůj OnePlus 3, OnePlus 3T a OnePlus 5, aniž byste museli odemykat bootloader. Tento exploit však neumožňuje škodlivé aplikaci udělit si root přístup, takže pokud někdo nemá fyzický přístup k vašemu zařízení za účelem nastavení ADB, pak jste v bezpečí před zneužitím.

V případě, že se chcete chránit před tímto zneužitím bez ohledu na to, můžete odinstalovat aplikaci od aktuálního uživatele což zabrání odeslání záměru do aplikace EngineerMode. Stačí použít následující příkaz v ADB:

adbshellpmuninstall-k--user 0 com.android.engineermode

Samozřejmě je to stále považováno za exploit a doufáme, že OnePlus to brzy opraví. Vše, co by skutečně museli udělat, je odstranit tuto aplikaci z budoucích sestavení.


Aktualizace 1: Heslo je 'angela'

Uživatel @fs0c131y zveřejnil na své Twitter stránce aktualizaci s heslem, které potřebujete, abyste se dostali do rootovaného prostředí ADB. To heslo je...angela. Pro ty z vás, kteří nesledují pana Robota, je Angela jméno jedné z protagonistek. Myslím, že v Qualcommu musí být hodně fanoušků Mr. Robot.

Pokud v ADB zadáte příkaz, který jsem zveřejnil výše, všimnete si, že se ADB okamžitě odpojí a server se restartuje. Zadejte znovu ADB a všimnete si, že je to nyní rootovaný shell.


Aktualizace 2: Jak bylo heslo odvozeno

Bezpečnostní firma Now Secure zveřejnila blogový příspěvek s podrobnostmi o tom, jak odvodila heslo potřebné pro tento root exploit. Celý jejich příspěvek si můžete přečíst zde.


Aktualizace 3: Ovlivněno více zařízení

Tato nejnovější zpráva by neměla být překvapením, ale zdá se, že tímto exploitem je ovlivněno více zařízení. Je to proto, že aplikace EngineerMode je aplikace Qualcomm, takže je možné, že ji jiní výrobci OEM nechali na svých zařízeních předinstalovanou. Uživatelé zatím kontaktovali @fs0c131y na Twitteru, aby potvrdili, že je aplikace nainstalována některá zařízení Asus Zenfone a Xiaomi. Chcete-li snadno zkontrolovat, zda vaše zařízení tuto aplikaci obsahuje, přejděte do Nastavení a podívejte se, jaké aplikace jsou nainstalovány.


Aktualizace 4: Rootování vašeho zařízení

Pomocí několika příkazů prostřednictvím zakořeněného prostředí ADB je to nyní možné zatlačte su binární soubor do vašeho zařízení. Pomocí toho pak můžete nainstalovat aplikaci root manager, jako je SuperSU, a poté volně udělovat root přístup dalším aplikacím. To vše bez odemykání bootloaderu!


Aktualizace 5: OnePlus reaguje

OnePlus na situaci oficiálně zareagovalo. V blogový příspěvekSpolečnost opakuje, že tento exploit lze využít pouze v případě, že má útočník fyzický přístup k zařízení a povolil ladění USB. Aby bylo možné povolit ladění USB, útočník potřebuje také PIN/heslo vašeho zařízení. Kořenová zadní vrátka tedy není snadno zneužitelná žádnou aplikací nebo osobou, ale přesto OnePlus vyřeší obavy uživatelů odstraněním této funkce z aplikace EngineerMode.