Android Enterprise Work Profile Required-App Replacement

Tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks का समर्थन करें

Attack surface

Android Enterprise Work Profiles को secondary Android users के रूप में लागू किया जाता है (BYOD उदाहरण: user 0 = personal, user 1 = work)। प्रत्येक user के पास स्वतंत्र /data/user/<id> ट्रीज़, system apps, Play Services इंस्टेंस और MDM द्वारा बनाए गए policy objects होते हैं। जब किसी MDM जैसे Microsoft Intune द्वारा किसी app को Work Profile के लिए required के रूप में चिह्नित किया जाता है, तो Work-Profile Play Store (Finsky) समय-समय पर पुष्टि करता है कि पैकेज मौजूद है और यदि गायब हो तो इसे auto-installs कर देता है।

भले ही CVE-2023-21257 पैच जो ADB sideloads को ब्लॉक करता है जब DISALLOW_INSTALL_APPS या DISALLOW_DEBUGGING_FEATURES सेट होते हैं, नीचे दिया गया क्रम एक हमलावर को किसी भी Intune-required Work Profile app को arbitrary code से बदलने की अनुमति देता है:

  1. Android Studio के “Install for all users” पाथ का दुरुपयोग करके एक malicious APK स्टेज करें जो managed package के अपडेट जैसा दिखे।
  2. MDM को required app गायब होने का नोटिस होने दें। Intune Work-Profile Finsky instance को इसे reinstall करने के लिए ट्रिगर करता है।
  3. Finsky स्टेज किए गए APK के version की तुलना Play Store version से करता है और चुपचाप सबसे उच्च versionCode को install कर देता है, जिससे मूल restriction बायपास हो जाता है।

Recon and prerequisite checks

  • मल्टी-यूजर लेआउट और 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 सक्षम कर सकें।
  • पहचानें उस Work-Profile ऐप का package name जो required के रूप में चिह्नित है (e.g. com.workday.workdroidapp).

Android Studio multi-user installer का दुरुपयोग

Android Studio की Run/Debug configuration अभी भी बिल्ड्स को INSTALL_ALL_USERS flag के साथ पुश कर सकती है। रन करने से पहले, Deploy as instant appInstall for all users सक्षम करें।

उस managed app के लिए उसी same package name के साथ हानिकारक payload बनाएं और बहुत बड़ा versionCode सेट करें ताकि PackageManager/Finsky इसे नए रिलीज़ के रूप में माने:

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

जब Android Studio तैनात करता है:

  1. Personal user (0) सामान्य रूप से malicious package इंस्टॉल करता है।
  2. Work Profile user (1) APK को एक अस्थायी staging area में प्राप्त करता है और इसे एक अपडेट के रूप में मानने की कोशिश करता है।
  3. CVE-2023-21257 की लॉजिक देखती है कि user restricted है → install is denied, लेकिन वैध managed app को uninstalled के रूप में चिह्नित कर दिया जाता है और staged APK कैश में बनी रहती है।

Intune/Finsky auto-install bypass

Within ~1–10 minutes (policy refresh interval):

  1. Intune/Company Portal पहचानता है कि Work Profile से required package गायब है।
  2. Work-Profile Finsky instance से इसे पुनः इंस्टॉल करने के लिए कहा जाता है।
  3. During version resolution Finsky की तुलना करता है:
  • Play Store metadata for com.workday.workdroidapp.
  • The locally staged APK from the previous install attempt.
  1. क्योंकि local build के पास highest versionCode है, Finsky इसे नवीनतम release के रूप में भरोसेमंद मानता है और restricted Work Profile में इसे इंस्टॉल कर देता है without re-applying DISALLOW_INSTALL_APPS / DISALLOW_DEBUGGING_FEATURES checks

मैलिशियस बाइनरी अब वास्तविक package नाम के अंतर्गत Work Profile के अंदर मौजूद है और MDM द्वारा compliant माना जाता है।

Post-exploitation opportunities

  • Work-profile data access – अन्य enterprise apps अभी भी उन Intents/content providers पर भरोसा करते हैं जो बदले हुए package से बंधे होते हैं, जिससे Work Profile से अंदरूनी डेटा चोरी और covert exfiltration attacker infrastructure की ओर संभव हो पाती है।
  • Per-app VPN hijack – यदि बदला गया package Intune per-app VPN (MS Tunnels + Defender) से मैप है, तो malicious build स्वतः ही उस VPN प्रोफ़ाइल को inherit कर लेता है, जिससे attacker-controlled process से internal hosts तक direct access मिल जाता है।
  • Persistence – क्योंकि MDM अब मानता है कि required app इंस्टॉल है, यह reinstall the malicious build तब भी करेगा जब भी user या defender इसे हटाएगा, जिससे BYOD Work Profiles पर long-term foothold मिल जाता है।

References

Tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks का समर्थन करें