OnePlus остави на място приложение за инженерни тестове на Qualcomm, което действа като задна врата за предоставяне на root достъп на OnePlus 3, 3T и 5.
Актуализация: OnePlus издаде официален отговор към въпроса. Те ще премахнат основната функция на ADB от EngineerMode в предстояща актуализация.
Измина малко повече от месец, откакто беше установено, че OnePlus събира лична информация за анализи. Компанията бързо обърна курса и в актуализация компанията обеща да бъде по-прозрачна, като ясно даде на потребителите опция за отказ от OxygenOS анализи. Въпреки че този провал вече е разрешен, друг надига грозната си глава тази вечер. Потребител в Twitter, който носи името "Елиът Алдерсън“ (на името на главния герой от популярния телевизионен сериал Mr. Robot) откри, че OnePlus случайно оставил на място приложение за диагностично тестване направено от Qualcomm. След като декомпилира това приложение, той откри, че може да бъде използван за предоставяне на root достъп - ефективно действащ като задна врата.
Приложението се нарича "EngineerMode" и по същество е системно приложение, направено от Qualcomm и се предоставя на OEM производители като OnePlus, за да могат OEM лесно да тестват всички хардуерни компоненти на устройство. Приложението е предварително инсталирано на всички устройства OnePlus 3, OnePlus 3T и OnePlus 5 и може да бъде лесно достъпно чрез всяка програма за стартиране на дейности, тъй като всички дейности на приложението се експортират.
Ние всъщност обхвана съществуването на това приложение преди няколко месеца, но тогава нямахме представа за какво може да се използва. Потребителят на Twitter декомпилира приложението (източникът му е публикуван онлайн тук) и намери интересна дейност, наречена DiagEnabled. По-специално, един метод се открои в рамките на дейността: escalatedUp. Този метод приема булева стойност (true/false) и низ. Низът е парола, която се проверява от метода, преди да зададе системните свойства persist.sys.adbroot
и oem.selinux.reload_policy
до 1.
Първото свойство на системата е особено интересно, тъй като позволява на потребителя да стартира ADB като root. Това незабавно отваря възможността за придобиване на пълен root достъп на телефона - всичко това без отключване на буутлоудъра. И така, как точно да накарате приложението EngineerMode да зададе тези системни свойства на „1“?
@fs0c131y трябваше да намери правилната парола, която да изпрати в намерението, за да предаде логиката в метода, публикуван по-горе. Намирането на тази парола обаче не е лесна задача. Той декомпилира библиотеката, отговорна за генерирането на паролата (наречена libdoor.so) и откри къде се намира хешът на паролата: /data/backup/fpwd
. Паролата се генерира от различни свойства на компилация, като напр ro.product.model
и ro.product.brand
и няма да е лесно за обратно инженерство.
За щастие с помощта Дейвид Вайнщайн и Сега защитено в Twitter той откри паролата, необходима на EngineerMode, за да ескалира ADB до root привилегии.
Всичко, което трябва да направите, е да изпратите намерение в този формат:
adb shell am start -n com.android.engineeringmode/.qualcomm.DiagEnabled --es "code""angela"
където com.android.engineeringmode/.qualcomm. DiagEnabled е името на компонента на дейността DiagEnabled, която експлоатираме, а „code“ е името на низа, а „angela“ е съответната стойност на паролата.
@fs0c131y заявява, че ще го направи публикувайте приложение скоро това ще изпрати това намерение да издигне ADB в root привилегии, да коригира изображението за зареждане, за да деактивира dm-verity, и да инсталира двоичните файлове su. Следете форумите на XDA кога това основно приложение бъде публикувано.
За крайните потребители това означава, че можете лесно руутнете вашите OnePlus 3, OnePlus 3T и OnePlus 5, без изобщо да отключвате вашия буутлоудър. Този експлойт обаче не позволява на злонамерено приложение да си предостави root достъп, така че освен ако някой няма физически достъп до вашето устройство, за да настрои ADB, тогава сте в безопасност от експлоатация.
В случай, че искате да се предпазите от този експлойт, можете деинсталирайте приложението от текущия потребител което ще предотврати изпращането на намерението до приложението EngineerMode. Просто използвайте следната команда в ADB:
adbshellpmuninstall-k--user 0 com.android.engineermode
Разбира се, това все още се счита за експлойт и се надяваме OnePlus да коригира това скоро. Всичко, което наистина трябва да направят, е да премахнат това приложение от бъдещи версии.
Актуализация 1: Паролата е 'angela'
Потребителят @fs0c131y публикува актуализация на своята страница в Twitter с паролата, която ви е необходима, за да влезете в вкоренена обвивка на ADB. Тази парола е...анджела. За тези от вас, които не гледат Mr. Robot, Анджела е името на един от главните герои. Предполагам, че трябва да има много фенове на Mr. Robot в Qualcomm.
Ако въведете командата, която публикувах по-горе в ADB, ще забележите, че ADB незабавно прекъсва връзката и сървърът се рестартира. Въведете отново ADB и ще забележите, че вече е руутна обвивка.
Актуализация 2: Как е извлечена паролата
Фирмата за сигурност Now Secure публикува публикация в блог, в която подробно се описва как са извели паролата, необходима за възникването на този root експлойт. Можете да прочетете пълния им пост тук.
Актуализация 3: Повече засегнати устройства
Последните новини не трябва да са изненада, но изглежда повече устройства са засегнати от този експлойт. Това е така, защото приложението EngineerMode е приложение на Qualcomm, така че е възможно други OEM производители да са го оставили предварително инсталирано на своите устройства. Досега потребителите са се свързали с @fs0c131y в Twitter, за да потвърдят, че приложението е инсталирано някои устройства Asus Zenfone и Xiaomi. Можете лесно да проверите дали вашето устройство има това приложение, като влезете в Настройки и видите какви приложения са инсталирани.
Актуализация 4: Руутване на вашето устройство
С помощта на няколко команди чрез вкоренената обвивка на ADB вече е възможно да натиснете su двоичния файл на вашето устройство. Използвайки това, след това можете да инсталирате приложение за root мениджър като SuperSU и след това свободно да предоставите root достъп на други приложения. Всичко това без да отключвате вашия буутлоудър!
Актуализация 5: OnePlus отговаря
OnePlus официално отговори на ситуацията. В блог пост, компанията повтаря, че този експлойт може да се използва само ако нападателят има физически достъп до устройството и е активирал USB отстраняване на грешки. За да активира USB отстраняване на грешки, нападателят се нуждае също от ПИН/парола на вашето устройство. По този начин root backdoor не може лесно да се експлоатира от което и да е приложение или лице, но въпреки това OnePlus ще отговори на притесненията на потребителите, като премахне тази функционалност от приложението EngineerMode.