У OnePlus Nord 2 є вразливість, яка дозволяє зловмиснику отримати необмежений доступ кореневої оболонки. Читайте далі, щоб дізнатися більше!
Багато з нас тут, у XDA-Developers, спочатку почали переглядати форуми вперше, коли шукали рутувати наші пристрої Android. У ті часи люди часто покладалися на методи «рутування одним клацанням миші»: програми або сценарії, що містять корисні навантаження, які націлені на відомі вразливості підвищення привілеїв наявної мікропрограми, щоб отримати root доступу. Завдяки вдосконаленням і змінам у шифруванні, дозволах і конфіденційності сучасні пристрої Android відносно захищені від таких векторів атак, але завжди залишатимуться можливості для подвиги і уразливості.
Можливо, OnePlus закріпив своє ім’я серед основних OEM-виробників Android, але його телефони є не чужий до недоліки безпеки. Цього разу компанія залишила досить цікаву (читай: тривожну) вразливість невиправленою на OnePlus Nord 2 з моменту його випуску. Хоча для використання лазівки потрібен фізичний доступ до пристрою, зловмисник може ефективно
отримати необмежену кореневу оболонку ще до того, як користувач зможе ввести свої облікові дані. Примітно, нещодавно випущений Видання Pac-Man Nord 2 також впливає.Фон
Сьогодні, коли ми говоримо про наявність root-доступу на смартфоні Android, люди зазвичай думають про виправлення стандартного завантажувального образу за допомогою Magisk спочатку, а потім перепрошивання виправленого образу на цільовий пристрій після розблокування завантажувача. Таким чином, кінцевий користувач може мати контрольований доступ до двійкового файлу "su" через програму менеджера. Пара інших експериментальні підходи існують, але вони рідко мають таке широке масове використання.
Однак, коли справа доходить до попереднього виробництва, сценарій зовсім інший. Під час підготовки прошивки пристрою інженерам необхідно ввімкнути різні параметри журналювання, включаючи root-доступ. Навіть на а userdebug будувати, Android Debug Bridge Daemon (adbd) працює як root, тому можна мати привілейований доступ до оболонки для цілей налагодження. Коли вбудоване програмне забезпечення буде готове до доставки, усі ці параметри налагодження потрібно вимкнути перед його розгортанням.
Але що станеться, якщо ви забудете це зробити? Ми побачимо, оскільки офіційні випуски OxygenOS для OnePlus Nord 2 мають такий недолік.
OnePlus Nord 2 — уразливість кореневої оболонки
Деякі OEM-виробники, як-от Samsung, пропонують можливість завантаження пакетів оновлень із сторони під час відновлення запасів на роздрібних пристроях. У такому випадку, adbd
Двійковий файл працює зі значно високими привілеями під час бокового завантаження, але закривається сам, щойно процес оновлення завершується. Окрім цього, у середовищі відновлення, наданому OEM, доступ до ADB не дозволено.
OnePlus більше не дозволяє користувачам спалахувати оновлений ZIP-пакет за допомогою стандартного відновлення через ADB sideload. Якщо припустити, що все інше налаштовано належним чином, середовище відновлення звичайного пристрою OnePlus має бути захищене від зловмисників, які доставляють будь-який вид корисного навантаження за допомогою ADB. На жаль, у випадку з OnePlus Nord 2 не все йде за планом.
Як виявляється, будь-хто може створити оболонку налагодження Android із правами root у середовищі відновлення OnePlus Nord 2. Одне з критичних налаштувань налагодження, очевидно, потрапило до робочих збірок, що призвело до цього збою.
Використання недоліку в OnePlus Nord 2
Все, що вам потрібно зробити, це перезавантажити OnePlus Nord 2 у режим відновлення. Зловмисник може взяти пристрій і використати просту комбінацію апаратних кнопок, щоб змусити його перейти в режим відновлення. Насправді немає необхідності переходити до фактичного меню відновлення, оскільки вразливий розділ знаходиться перед цим. Заслуга старшого члена XDA AndroPlus для вказуючи на те наявність цього збою ще в жовтні 2021 року.
- Коли телефон вимкнено, одночасно натискайте кнопки зменшення гучності та живлення, доки не з’явиться побачите логотип OnePlus із мініатюрним банером «RECOVERY MODE» у нижньому лівому куті екрана.
- Далі ви повинні побачити екран вибору мови. Не потрібно рухатися вперед, оскільки ми можемо ініціювати доступ до ADB прямо звідси.
- Тепер підключіть телефон до ПК (або Mac) за допомогою кабелю USB. Якщо ви використовуєте Windows, ви можете побачити новий інтерфейс налагодження Android USB, який з’являється в диспетчері пристроїв. Вам також може знадобитися встановити відповідний USB драйвер для Android перш ніж Windows зможе розпізнати новий пристрій. Користувачі Linux і macOS, з іншого боку, можуть використовувати
lsusb
команда для визначення наявності нового апаратного інтерфейсу. - Враховуючи, що у вас уже є остання версія ADB і Fastboot утиліти, встановлені на вашому ПК/Mac, запустіть екземпляр командного рядка/PowerShell/терміналу та виконайте таку команду:
Він повинен вказати Nord 2 у режимі відновлення. Це також особливо цікаво, оскільки стандартний запит авторизації ADB тут не потрібен. Ви можете отримати повідомлення про помилку «пристрій неавторизовано», але видалення існуючої бази даних ключів ADB RSA хост-комп’ютера та перезапуск сервера ADB має врешті-решт дозволити вам отримати його авторизацію.adb devices
- Тепер інструктуйте
adbd
для запуску від імені root:
Ця команда може зайняти багато часу, і ви, ймовірно, отримаєте помилку часу очікування. Тим не менш, заразadb root
adbd
має працювати як root. - Нарешті перевірте рівень привілеїв оболонки за допомогою такої команди:
adb shell whoami
Ступінь недоліку
Потенційні зловживання цією вразливістю безпеки лякають. При успішній атаці на OnePlus Nord 2 зловмисник може видалити кожен розділ пристрою. У результаті зловмисник отримує доступ до всього розділу даних, включаючи файли, що зберігаються в зазвичай недоступних каталогах приватних даних програм. Якщо розділ даних вийшов зашифрованим (через те, що користувач встановив PIN-код або пароль), дамп може бути корисним для криміналістичного аналізу.
Мало того, ви можете надсилати виконуваний файл /data/local/tmp
і запустіть його звідти. Це класичний вектор атаки, який може бути корисним для ланцюжкового завантаження іншого експлойту. Крім того, оскільки тепер ви можете дзвонити setprop
утиліти як root для зміни різних значень prop, ви можете технічно викрасти деякі з привілейованих змінних OEM. І останнє, але не менш важливе: навіть якщо у вас не розблоковано параметри розробника, телефон автоматично запропонує доступ для налагодження USB після виклику ADB у відновленні та перезавантажте звичайне середовище Android, що означає, що сфера дії вразливості не обмежується лише розділом відновлення тільки.
Зауважте, що ви не можете встановити APK-файли за допомогою ADB у середовищі відновлення через те, що утиліта Package Manager там недоступна.
Як перевірити, чи вражений ваш OnePlus Nord 2? (Підказка: це так)
Як згадувалося раніше, ви можете використовувати цю вразливість як у звичайній, так і в спеціальній версії Pac-Man OnePlus Nord 2. У двох словах, якщо ви введете кореневу оболонку (ви дізнаєтесь, коли символ оболонки зміниться на $
до #
), тоді ви дізнаєтесь, що недолік присутній.
Ми успішно отримали кореневий доступ до оболонки останню загальнодоступну індійську та європейську прошивку OxygenOS для пристрою, що означає кожен OnePlus Nord 2 є вразливим на момент написання цієї статті.
Що далі?
Ми будемо стежити за цією справою, коли буде доступна додаткова інформація. OnePlus надав таку заяву з цього питання:
Ми дуже серйозно ставимося до конфіденційності та безпеки. Ми приділяємо цьому питанню пріоритет і поділимося оновленнями, щойно отримаємо більше інформації.
Хоча все це здається страшним, майте на увазі, що зловмиснику все одно потрібно буде отримати фізичний доступ до телефону, щоб отримати доступ до кореневої оболонки. Поки OnePlus не випустить оновлення, яке виправляє вразливість, намагайтеся тримати свій OnePlus Nord 2 подалі від сторонніх людей. Хоча ми не зустрічали жодних випадків зловмисного використання, не можна скидати з рахунків таку можливість, оскільки вразливість існує принаймні 2 місяці.