Android Enterprise Work Profile: Ersetzen einer erforderlichen App

Tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks

Angriffsfläche

Android Enterprise Work Profiles werden als secondary Android users implementiert (BYOD Beispiel: user 0 = personal, user 1 = work). Jeder Benutzer hat eigene /data/user/<id>-Bäume, system apps, Play Services-Instanzen und policy objects, die vom MDM verwaltet werden. Wenn ein MDM wie Microsoft Intune eine App als required für das Work Profile markiert, überprüft der Work-Profile Play Store (Finsky) periodisch, ob das Paket vorhanden ist, und installiert es automatisch, falls es fehlt.

Selbst nach dem CVE-2023-21257-Patch, der ADB sideloads blockiert, wenn DISALLOW_INSTALL_APPS oder DISALLOW_DEBUGGING_FEATURES gesetzt sind, erlaubt die folgende Kette einem Angreifer, jede von Intune erforderliche Work Profile App durch beliebigen Code zu ersetzen:

  1. Missbrauche Android Studio’s “Install for all users”-Pfad, um ein bösartiges APK zu platzieren, das wie ein Update des managed package aussieht.
  2. Lass das MDM feststellen, dass die required app fehlt. Intune veranlasst die Work-Profile Finsky-Instanz, sie erneut zu installieren.
  3. Finsky vergleicht die gestagte APK-Version mit der Play Store-Version und installiert stillschweigend den höchsten versionCode, wodurch die ursprüngliche Einschränkung umgangen wird.

Recon und Voraussetzungen

  • Bestätige Multi-User-Layout und Benutzer-IDs:
adb shell pm list users
# Expect user 0 = Owner, user 1 = Work profile (or higher if multiple profiles exist)
  • Direkte Installationen für den Work-Benutzer werden von der Richtlinie blockiert (erwarteter Fehler):
adb install --user 1 legit.apk
# java.lang.SecurityException: Shell does not have permission to access user 1
  • Sie müssen vorübergehenden physischen Zugriff auf ein entsperrtes BYOD haben, um Developer Options + USB debugging zu aktivieren.
  • Identifizieren Sie den Paketnamen einer Work-Profile-App, die als required markiert ist (z. B. com.workday.workdroidapp).

Ausnutzen des Android Studio Multi-User-Installers

Die Run/Debug-Konfiguration von Android Studio kann weiterhin Builds mit dem INSTALL_ALL_USERS-Flag installieren. Aktivieren Sie vor dem Ausführen Deploy as instant appInstall for all users.

Erstellen Sie die bösartige Payload mit demselben Paketnamen wie die verwaltete App und einem deutlich höheren versionCode, damit PackageManager/Finsky sie als neuere Version behandelt:

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

When Android Studio deploys:

  1. Privater Benutzer (0) installiert das bösartige Package normal.
  2. Work Profile-Benutzer (1) erhält die APK in einem temporären Staging-Bereich und versucht, sie als Update zu behandeln.
  3. Die Logik von CVE-2023-21257 erkennt, dass der Benutzer eingeschränkt ist → Installation wird verweigert, aber die legitime verwaltete App wird als deinstalliert markiert und die gestagte APK bleibt im Cache.

Intune/Finsky auto-install bypass

Innerhalb von ~1–10 Minuten (Policy-Refresh-Intervall):

  1. Intune/Company Portal erkennt, dass das erforderliche Package im Work Profile fehlt.
  2. Die Work-Profile-Instanz von Finsky wird aufgefordert, es neu zu installieren.
  3. Bei der Versionsauflösung vergleicht Finsky:
  • Play Store-Metadaten für com.workday.workdroidapp.
  • Die lokal gestagte APK aus dem vorherigen Installationsversuch.
  1. Weil der lokale Build den höchsten versionCode hat, vertraut Finsky ihm als der aktuellsten Release und installiert ihn ins eingeschränkte Work Profile ohne die DISALLOW_INSTALL_APPS / DISALLOW_DEBUGGING_FEATURES-Prüfungen erneut anzuwenden.

Die bösartige Binary befindet sich nun unter dem echten Paketnamen im Work Profile und wird vom MDM als konform betrachtet.

Post-exploitation opportunities

  • Zugriff auf Work-Profile-Daten – andere Enterprise-Apps vertrauen weiterhin Intents/content providers, die an das ersetzte package gebunden sind, was internen Datendiebstahl und verdeckte Exfiltration aus dem Work Profile zur Angreifer-Infrastruktur ermöglicht.
  • Per-app VPN-Übernahme – wenn das ersetzte package einer Intune per-app VPN-Zuordnung (MS Tunnels + Defender) zugeordnet ist, erbt der bösartige Build automatisch das VPN-Profil und ermöglicht direkten Zugriff auf interne Hosts aus einem angreiferkontrollierten Prozess.
  • Persistenz – da das MDM nun glaubt, die erforderliche App sei installiert, wird es den bösartigen Build wieder installieren, sobald der Benutzer oder Verteidiger ihn entfernt, und so einen langfristigen Fuß in BYOD Work Profiles schaffen.

References

Tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks