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
- Ελέγξτε τα σχέδια συνδρομής!
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
Επιφάνεια επίθεσης
Android Enterprise Work Profiles υλοποιούνται ως secondary Android users (BYOD παράδειγμα: user 0 = προσωπικός, user 1 = εργασίας). Κάθε χρήστης έχει ανεξάρτητες δενδροδομές /data/user/<id>, system apps, Play Services instances και policy objects που διατηρούνται από το MDM. Όταν ένα MDM όπως το Microsoft Intune χαρακτηρίζει μια εφαρμογή ως required για το Work Profile, το Work-Profile Play Store (Finsky) περιοδικά επιβεβαιώνει ότι το package υπάρχει και το εγκαθιστά αυτόματα αν λείπει.
Ακόμα και μετά το patch CVE-2023-21257 που μπλοκάρει ADB sideloads όταν έχουν οριστεί οι DISALLOW_INSTALL_APPS ή DISALLOW_DEBUGGING_FEATURES, η παρακάτω αλυσίδα επιτρέπει σε έναν επιτιθέμενο να αντικαταστήσει οποιαδήποτε Intune-required Work Profile app με αυθαίρετο κώδικα:
- Κατάχρηση της διαδρομής του Android Studio “Install for all users” για να σταδιοποιήσει ένα κακόβουλο APK που μοιάζει με update του managed package.
- Αφήστε το MDM να παρατηρήσει ότι η required εφαρμογή λείπει. Το Intune προκαλεί την Work-Profile Finsky instance να την επανεγκαταστήσει.
- Η Finsky συγκρίνει την staged APK έκδοση με την έκδοση του Play Store και εγκαθιστά σιωπηρά το υψηλότερο
versionCode, παρακάμπτοντας τον αρχικό περιορισμό.
Recon και προαπαιτούμενοι έλεγχοι
- Επιβεβαιώστε το multi-user layout και τα user IDs:
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 multi-user installer
Η Run/Debug configuration του Android Studio μπορεί ακόμα να προωθήσει builds με τη σημαία INSTALL_ALL_USERS. Πριν την εκτέλεση, ενεργοποιήστε Deploy as instant app → Install for all users.
Κατασκευάστε το malicious payload με το same package name της managed app και με πολύ μεγαλύτερο versionCode ώστε ο PackageManager/Finsky να το αντιμετωπίσει ως νεότερη έκδοση:
android {
namespace = "com.workday.workdroidapp"
defaultConfig {
applicationId = "com.workday.workdroidapp"
versionCode = 900000004
versionName = "9000000004.0"
}
}
When Android Studio deploys:
- Personal user (0) εγκαθιστά το κακόβουλο πακέτο κανονικά.
- Work Profile user (1) λαμβάνει το APK σε προσωρινή περιοχή staging και προσπαθεί να το χειριστεί ως ενημέρωση.
- Η λογική του CVE-2023-21257 διαπιστώνει ότι ο χρήστης είναι περιορισμένος → η εγκατάσταση απορρίπτεται, αλλά η νόμιμη managed εφαρμογή σημειώνεται ως ανεγκατεστημένη και το staged APK παραμένει στην cache.
Intune/Finsky auto-install bypass
Εντός ~1–10 λεπτών (διάστημα ανανέωσης πολιτικής):
- Το Intune/Company Portal ανιχνεύει ότι το απαιτούμενο πακέτο λείπει από το Work Profile.
- Η instance του Work-Profile Finsky καλείται να το επανεγκαταστήσει.
- Κατά την επίλυση έκδοσης, το Finsky συγκρίνει:
- Play Store metadata για
com.workday.workdroidapp. - Το τοπικά staged APK από την προηγούμενη προσπάθεια εγκατάστασης.
- Επειδή το τοπικό build έχει το υψηλότερο
versionCode, το Finsky το εμπιστεύεται ως την πιο πρόσφατη έκδοση και το εγκαθιστά στο περιορισμένο Work Profile χωρίς να επαναεφαρμόσει τους ελέγχουςDISALLOW_INSTALL_APPS/DISALLOW_DEBUGGING_FEATURES.
Το κακόβουλο binary πλέον βρίσκεται μέσα στο Work Profile υπό το γνήσιο package name και θεωρείται compliant από το MDM.
Post-exploitation opportunities
- Work-profile data access – άλλες enterprise εφαρμογές συνεχίζουν να εμπιστεύονται τα Intents/content providers που δεσμεύονται στο αντικαταστημένο πακέτο, επιτρέποντας κλοπή εσωτερικών δεδομένων και κρυφή εξαγωγή από το Work Profile προς την υποδομή του επιτιθέμενου.
- Per-app VPN hijack – αν το αντικαταστημένο πακέτο είναι αντιστοιχισμένο σε Intune per-app VPN (MS Tunnels + Defender), το κακόβουλο build κληρονομεί αυτόματα το VPN προφίλ, παρέχοντας άμεση πρόσβαση σε εσωτερικά hosts από μια διεργασία που ελέγχεται από τον επιτιθέμενο.
- Persistence – επειδή το MDM τώρα θεωρεί ότι η απαιτούμενη εφαρμογή είναι εγκατεστημένη, θα επαναεγκαθιστά το κακόβουλο build όποτε ο χρήστης ή ο defender το αφαιρεί, παρέχοντας μακροπρόθεσμο foothold σε BYOD Work Profiles.
References
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
- Ελέγξτε τα σχέδια συνδρομής!
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
HackTricks

