Android Enterprise Work Profile Required-App Replacement

Tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримайте HackTricks

Поверхня атаки

Android Enterprise Work Profiles реалізовані як secondary Android users (BYOD приклад: user 0 = персональний, user 1 = робочий). Кожен користувач має незалежні дерева /data/user/<id>, системні додатки, екземпляри Play Services та об’єкти політик, які підтримує MDM. Коли MDM, такий як Microsoft Intune, позначає додаток як required для Work Profile, Work-Profile Play Store (Finsky) періодично перевіряє наявність пакета та автоматично встановлює його, якщо він відсутній.

Навіть після патчу CVE-2023-21257, який блокує ADB sideloads коли встановлені DISALLOW_INSTALL_APPS або DISALLOW_DEBUGGING_FEATURES, наступний ланцюжок дозволяє нападникові замінити будь-який Intune-required Work Profile app довільним кодом:

  1. Зловживати шляхом Android Studio’s “Install for all users” щоб підготувати шкідливий APK, що виглядає як оновлення керованого пакета.
  2. Дочекатися, поки MDM помітить відсутність обов’язкового додатка. Intune запускає інстанс Work-Profile Finsky для його повторної інсталяції.
  3. Finsky порівнює версію підготовленого APK з версією в Play Store і непомітно встановлює найвищий versionCode, обходячи початкове обмеження.

Розвідка та попередні перевірки

  • Підтвердити мульти-користувацьке розташування та ідентифікатори користувачів:
adb shell pm list users
# Expect user 0 = Owner, user 1 = Work profile (or higher if multiple profiles exist)
  • Прямі інсталяції у робочого користувача не проходять через політику (очікувана помилка):
adb install --user 1 legit.apk
# java.lang.SecurityException: Shell does not have permission to access user 1
  • Ви повинні мати тимчасовий фізичний доступ до розблокованого BYOD, щоб увімкнути Developer Options + USB debugging.
  • Визначте package name додатку Work-Profile, позначеного як required (наприклад, com.workday.workdroidapp).

Експлуатація мульти-користувацького інсталятора Android Studio

Android Studio’s Run/Debug configuration can still push builds with the INSTALL_ALL_USERS flag. Перед запуском увімкніть Deploy as instant appInstall for all users.

Створіть шкідливий payload з тим самим package name що й керований додаток, та з набагато більшим versionCode, щоб PackageManager/Finsky сприйняв його як новіший реліз:

android {
namespace = "com.workday.workdroidapp"
defaultConfig {
applicationId = "com.workday.workdroidapp"
versionCode = 900000004
versionName = "9000000004.0"
}
}

Коли Android Studio розгортає:

  1. Особистий користувач (0) встановлює шкідливий пакет як зазвичай.
  2. Користувач Робочого профілю (1) отримує APK у тимчасовій зоні підготовки і намагається трактувати його як оновлення.
  3. Логіка CVE-2023-21257 виявляє, що користувач обмежений → встановлення відхилено, але справжній керований додаток позначається як видалений, а підготовлений APK залишається в кеші.

Обхід авто-встановлення Intune/Finsky

Протягом ~1–10 хвилин (інтервал оновлення політик):

  1. Intune/Company Portal виявляє, що обов’язковий пакет відсутній у Робочому профілі.
  2. Екземпляру Finsky у Робочому профілі надходить запит на повторну інсталяцію.
  3. Під час визначення версії Finsky порівнює:
  • Метадані Play Store для com.workday.workdroidapp.
  • Локально підготовлений APK з попередньої спроби встановлення.
  1. Оскільки локальна збірка має найвищий versionCode, Finsky вважає її за останній реліз і встановлює її у обмежений Робочий профіль без повторного застосування перевірок DISALLOW_INSTALL_APPS / DISALLOW_DEBUGGING_FEATURES.

Шкідливий бінарний файл тепер розташований у Робочому профілі під справжнім іменем пакету і вважається прийнятним для MDM.

Можливості післяексплуатації

  • Доступ до даних Робочого профілю – інші корпоративні додатки продовжують довіряти Intents/content providers, прив’язаним до заміненого пакета, що дозволяє крадіжку внутрішніх даних та приховану ексфільтрацію з Робочого профілю на інфраструктуру атакуючого.
  • Перехоплення per-app VPN – якщо замінений пакет прив’язаний до Intune per-app VPN (MS Tunnels + Defender), шкідлива збірка автоматично успадковує VPN-профіль, надаючи прямий доступ до внутрішніх хостів з процесу, контрольованого атакуючим.
  • Стійкість – оскільки MDM тепер вважає, що обов’язковий додаток встановлено, воно буде повторно встановлювати шкідливу збірку щоразу, коли користувач або захисник її видаляє, забезпечуючи довготривалу опорну точку на BYOD робочих профілях.

Посилання

Tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримайте HackTricks