OnePlus оставила приложение для инженерных испытаний Qualcomm, которое действует как бэкдор для предоставления root-доступа на OnePlus 3, 3T и 5.
Обновление: OnePlus выпустил официальный ответ к делу. В следующем обновлении они удалят корневую функцию ADB из EngineerMode.
Прошло чуть больше месяца с тех пор, как было обнаружено, что OnePlus собирает личная информация для аналитики. Компания быстро изменила курс и в обновлении пообещала быть более прозрачной, четко предоставив пользователям возможность отказаться от аналитики OxygenOS. Хотя эта проблема с тех пор разрешилась, сегодня вечером поднимает свою уродливую голову другая. Пользователь Твиттера под ником "Эллиот Алдерсон(назван в честь главного героя популярного телесериала «Мистер Робот») обнаружил, что OnePlus случайно оставил приложение для диагностического тестирования производства Qualcomm. После декомпиляции этого приложения он обнаружил, что его можно используется для предоставления root-доступа, эффективно действуя как бэкдор.
Приложение называется «EngineerMode» и по сути представляет собой системное приложение, созданное Qualcomm. и предоставляется OEM-производителям, таким как OnePlus, чтобы OEM-производители могли легко протестировать все аппаратные компоненты устройство. Приложение предварительно установлено на всех устройствах OnePlus 3, OnePlus 3T и OnePlus 5, и к нему можно легко получить доступ через любой модуль запуска действий, поскольку все действия приложения экспортируются.
Мы на самом деле сообщил о существовании этого приложения несколько месяцев назад, но в то время мы понятия не имели, для чего его можно использовать. Пользователь Twitter декомпилировал приложение (его исходный код выложен в сеть). здесь) и нашел интересное действие под названием DiagEnabled. В частности, в активности выделялся один метод: escalatedUp. Этот метод принимает логическое значение (истина/ложь) и строку. Строка представляет собой пароль, который проверяется методом перед установкой свойств системы. 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
и его будет нелегко перепроектировать.
К счастью, с помощью Дэвид Вайнштейн и Теперь безопасно в Твиттере он обнаружил пароль, необходимый 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, и установить дополнительные двоичные файлы. Следите за форумами XDA, чтобы узнать, когда будет опубликовано это корневое приложение.
Для конечных пользователей это означает, что вы можете легко рутируйте свои OnePlus 3, OnePlus 3T и OnePlus 5, даже не разблокируя загрузчик. Однако этот эксплойт не позволяет вредоносному приложению предоставить себе root-доступ, поэтому, если у кого-то нет физического доступа к вашему устройству для настройки ADB, вы в безопасности от эксплойта.
Если вы все равно хотите защитить себя от этого эксплойта, вы можете удалить приложение от текущего пользователя что предотвратит отправку намерения в приложение EngineerMode. Просто используйте следующую команду в ADB:
adbshellpmuninstall-k--user 0 com.android.engineermode
Конечно, это по-прежнему считается эксплойтом, и мы надеемся, что OnePlus скоро это исправит. Все, что им действительно нужно сделать, это удалить это приложение из будущих сборок.
Обновление 1: пароль — «Анжела».
Пользователь @fs0c131y опубликовал на своей странице в Твиттере обновление с паролем, который вам нужен для входа в корневую оболочку ADB. Этот пароль...Анжела. Для тех из вас, кто не смотрит «Мистера Робота», Анжела — это имя одного из главных героев. Я думаю, в Qualcomm должно быть много поклонников Мистера Робота.
Если вы введете команду, которую я разместил выше, в ADB, вы заметите, что ADB немедленно отключается и сервер перезагружается. Снова войдите в ADB, и вы заметите, что теперь это корневая оболочка.
Обновление 2: Как был получен пароль
Охранная фирма Now Secure опубликовала сообщение в блоге, в котором подробно описывается, как они получили пароль, необходимый для срабатывания этого корневого эксплойта. Вы можете прочитать их полный пост здесь.
Обновление 3: затронуто больше устройств
Эта последняя новость не должна стать неожиданностью, но, похоже, этому эксплойту подвержено больше устройств. Это связано с тем, что приложение EngineerMode является приложением Qualcomm, поэтому вполне возможно, что другие OEM-производители оставили его предустановленным на своих устройствах. На данный момент пользователи обратились к @fs0c131y в Твиттере, чтобы подтвердить, что приложение установлено на некоторые устройства Asus Zenfone и Xiaomi. Вы можете легко проверить, есть ли на вашем устройстве это приложение, зайдя в «Настройки» и просмотрев, какие приложения установлены.
Обновление 4: рутирование вашего устройства
Используя несколько команд через корневую оболочку ADB, теперь можно установите двоичный файл su на свое устройство. Используя это, вы можете затем установить приложение root-менеджера, такое как SuperSU, а затем свободно предоставить root-доступ другим приложениям. И все это без разблокировки загрузчика!
Обновление 5: ответы OnePlus
OnePlus официально отреагировал на ситуацию. В Сообщение блогаКомпания повторяет, что этот эксплойт можно использовать только в том случае, если злоумышленник имеет физический доступ к устройству и включил отладку по USB. Чтобы включить отладку по USB, злоумышленнику также потребуется PIN-код/пароль вашего устройства. Таким образом, корневой бэкдор нелегко использовать любому приложению или человеку, но, тем не менее, OnePlus решит проблемы пользователей, удалив эту функцию из приложения EngineerMode.