OnePlus omylom predinštaloval aplikáciu, ktorá funguje ako zadné vrátka ku koreňovému prístupu

OnePlus ponechal na mieste inžiniersku testovaciu aplikáciu Qualcomm, ktorá funguje ako zadné vrátka na udelenie prístupu root na OnePlus 3, 3T a 5.

Aktualizácia: OnePlus vydalo oficiálna odpoveď k veci. V nadchádzajúcej aktualizácii odstránia koreňovú funkciu ADB z EngineerMode.

Prešlo niečo vyše mesiaca, čo sa zistilo, že OnePlus zbiera osobne identifikovateľné informácie pre analýzu. Spoločnosť rýchlo obrátila kurz av aktualizácii spoločnosť sľúbila, že bude transparentnejšia tým, že používateľom jasne poskytne možnosť odhlásiť sa z analýzy OxygenOS. Hoci sa tento debakel medzičasom vyriešil, ďalší dnes večer dvíha svoju škaredú hlavu. Používateľ na Twitteri, ktorý vystupuje pod menom „Elliot Alderson“ (pomenovaný podľa hlavnej postavy populárneho televízneho seriálu Mr. Robot) objavil OnePlus náhodne nechal na mieste diagnostickú testovaciu aplikáciu vyrobené spoločnosťou Qualcomm. Po dekompilácii tejto aplikácie zistil, že to môže byť využívané na udelenie prístupu root – efektívne fungujúce ako zadné vrátka.

Aplikácia sa nazýva „EngineerMode“ a je to v podstate systémová aplikácia od spoločnosti Qualcomm a poskytuje sa výrobcom OEM, ako je OnePlus, aby mohli výrobcovia OEM jednoducho otestovať všetky hardvérové ​​komponenty zariadenie. Aplikácia je predinštalovaná na všetkých zariadeniach OnePlus 3, OnePlus 3T a OnePlus 5 a môže byť ľahko prístupná prostredníctvom akéhokoľvek spúšťača aktivity, pretože všetky aktivity aplikácie sa exportujú.

My vlastne pokryl existenciu tejto aplikácie pred niekoľkými mesiacmi, no vtedy sme ešte netušili, na čo by sa dal využiť. Používateľ Twitteru dekompiloval aplikáciu (jej zdroj bol zverejnený online tu) a našli zaujímavú aktivitu s názvom DiagEnabled. V rámci aktivity vynikla najmä jedna metóda: escalatedUp. Táto metóda akceptuje boolovskú hodnotu (true/false) a reťazec. Reťazec je heslo, ktoré je skontrolované metódou pred nastavením systémových vlastností persist.sys.adbroot a oem.selinux.reload_policy do 1.

Prvá vlastnosť systému je obzvlášť zaujímavá, pretože umožňuje používateľovi spustiť ADB ako root. To okamžite otvára možnosť získať úplný root prístup v telefóne – všetko bez odomknutia bootloadera. Ako teda presne dosiahnete, aby aplikácia EngineerMode nastavila tieto systémové vlastnosti na „1“?

@fs0c131y potreboval nájsť správne heslo na odoslanie zámeru, aby mohol odovzdať logiku vyššie uvedenej metóde. Nájsť toto heslo však nie je jednoduchá úloha. Dekompiloval knižnicu zodpovednú za generovanie hesla (nazývanú libdoor.so) a zistil, kde sa nachádza hash hesla: /data/backup/fpwd. Heslo sa generuje z rôznych vlastností zostavy ako napr ro.product.model a ro.product.brand a nebolo by ľahké spätne analyzovať.

Našťastie s pomocou David Weinstein a Teraz zabezpečte na Twitteri objavil heslo, ktoré potrebuje EngineerMode na eskaláciu ADB na rootovské oprávnenia.

Jediné, čo musíte urobiť, je poslať zámer v tomto formáte:

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

kde com.android.engineeringmode/.qualcomm. DiagEnabled je názov komponentu aktivity DiagEnabled, ktorú využívame, a „code“ je názov reťazca a „angela“ je príslušná hodnota hesla.

@fs0c131y uvádza, že bude zverejniť aplikáciu čoskoro to odošle tento zámer povýšiť ADB na oprávnenia root, opraviť zavádzací obraz na deaktiváciu dm-verity a nainštalovať binárne súbory su. Sledujte XDA fóra, kedy bude táto koreňová aplikácia zverejnená.

Pre koncových používateľov to znamená, že môžete jednoducho rootujte svoje OnePlus 3, OnePlus 3T a OnePlus 5 bez toho, aby ste museli odomknúť bootloader. Tento exploit však neumožňuje škodlivej aplikácii udeliť si root prístup, takže pokiaľ niekto nemá fyzický prístup k vášmu zariadeniu na nastavenie ADB, ste v bezpečí pred zneužitím.

V prípade, že sa chcete chrániť pred týmto zneužitím bez ohľadu na to, môžete odinštalovať aplikáciu od aktuálneho používateľa čo zabráni odoslaniu zámeru do aplikácie EngineerMode. Stačí použiť nasledujúci príkaz v ADB:

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

Samozrejme, stále sa to považuje za exploit a dúfame, že OnePlus to čoskoro opraví. Všetko, čo by skutočne potrebovali urobiť, je odstrániť túto aplikáciu z budúcich verzií.


Aktualizácia 1: Heslo je 'angela'

Používateľ @fs0c131y zverejnil na svojej stránke Twitter aktualizáciu s heslom, ktoré potrebujete, aby ste sa dostali do zakoreneného prostredia ADB. To heslo je...angela. Pre tých z vás, ktorí pána Robota nepozerajú, Angela je meno jednej z protagonistiek. Myslím, že v Qualcomme musí byť veľa fanúšikov Mr. Robot.

Ak zadáte príkaz, ktorý som uverejnil vyššie v ADB, všimnete si, že ADB sa okamžite odpojí a server sa reštartuje. Zadajte znova ADB a všimnete si, že je to teraz zakorenený shell.


Aktualizácia 2: Ako bolo heslo odvodené

Bezpečnostná firma Now Secure zverejnila blogový príspevok s podrobnosťami o tom, ako odvodili heslo potrebné na to, aby sa tento root exploit objavil. Celý ich príspevok si môžete prečítať tu.


Aktualizácia 3: Ovplyvnené ďalšie zariadenia

Táto najnovšia správa by nemala byť prekvapením, ale zdá sa, že týmto exploitom je ovplyvnených viac zariadení. Je to preto, že aplikácia EngineerMode je aplikácia Qualcomm, takže je možné, že iní výrobcovia OEM ju nechali predinštalovanú na svojich zariadeniach. Používatelia zatiaľ kontaktovali @fs0c131y na Twitteri, aby potvrdili, že je aplikácia nainštalovaná niektoré zariadenia Asus Zenfone a Xiaomi. Ak chcete zistiť, či má vaše zariadenie túto aplikáciu, môžete jednoducho skontrolovať tak, že prejdete do Nastavenia a uvidíte, aké aplikácie sú nainštalované.


Aktualizácia 4: Rootovanie vášho zariadenia

Pomocou niekoľkých príkazov cez zakorenený ADB shell je to teraz možné zatlačte binárne číslo su do svojho zariadenia. Pomocou toho môžete nainštalovať aplikáciu root manager, ako je SuperSU, a potom voľne udeliť root prístup iným aplikáciám. Všetko bez odomknutia bootloadera!


Aktualizácia 5: OnePlus reaguje

OnePlus na situáciu oficiálne zareagoval. V príspevok v bloguSpoločnosť opakuje, že tento exploit je možné použiť iba vtedy, ak má útočník fyzický prístup k zariadeniu a má povolené ladenie USB. Aby bolo možné povoliť ladenie USB, útočník potrebuje aj kód PIN/heslo vášho zariadenia. Koreňové zadné vrátka teda nie je možné ľahko zneužiť žiadnou aplikáciou alebo osobou, ale napriek tomu OnePlus vyrieši obavy používateľov odstránením tejto funkcie z aplikácie EngineerMode.