Android Enterprise Work Profile Required-App Replacement
Tip
Aprenda e pratique Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporte o HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.
Superfície de ataque
Android Enterprise Work Profiles são implementados como usuários Android secundários (exemplo BYOD: usuário 0 = pessoal, usuário 1 = trabalho). Cada usuário tem árvores independentes /data/user/<id>, system apps, instâncias do Play Services e objetos de policy mantidos pelo MDM. Quando um MDM como Microsoft Intune marca um app como required para o Work Profile, o Work-Profile Play Store (Finsky) periodicamente confirma que o pacote está presente e o instala automaticamente se estiver ausente.
Mesmo após o patch CVE-2023-21257 que bloqueia ADB sideloads quando DISALLOW_INSTALL_APPS ou DISALLOW_DEBUGGING_FEATURES estão definidos, a cadeia a seguir permite que um atacante substitua qualquer app do Work Profile exigido pelo Intune por código arbitrário:
- Abuse do caminho do Android Studio “Install for all users” para preparar um APK malicioso que pareça uma atualização do pacote gerenciado.
- Deixe o MDM perceber que o app required está ausente. Intune dispara a instância Finsky do Work-Profile para reinstalá-lo.
- Finsky compara a versão do APK preparado com a versão do Play Store e instala silenciosamente o maior
versionCode, contornando a restrição original.
Reconhecimento e verificações pré-requisitos
- Confirme o layout multiusuário e os IDs de usuário:
adb shell pm list users
# Expect user 0 = Owner, user 1 = Work profile (or higher if multiple profiles exist)
- Instalações diretas no usuário de trabalho falham devido à política (erro esperado):
adb install --user 1 legit.apk
# java.lang.SecurityException: Shell does not have permission to access user 1
- Você deve ter acesso físico temporário a um BYOD desbloqueado para ativar Opções do desenvolvedor + depuração USB.
- Identifique o nome do pacote de um app Work-Profile marcado como required (ex.:
com.workday.workdroidapp).
Weaponizando o instalador multiusuário do Android Studio
A configuração Run/Debug do Android Studio ainda pode enviar builds com a flag INSTALL_ALL_USERS. Antes de executar, habilite Deploy as instant app → Install for all users.
Construa o payload malicioso com o mesmo nome do pacote do app gerenciado e um versionCode muito maior para que o PackageManager/Finsky o trate como um lançamento mais novo:
android {
namespace = "com.workday.workdroidapp"
defaultConfig {
applicationId = "com.workday.workdroidapp"
versionCode = 900000004
versionName = "9000000004.0"
}
}
When Android Studio deploys:
- Usuário pessoal (0) instala o pacote malicioso normalmente.
- Usuário do Work Profile (1) recebe o APK em uma área de staging temporária e tenta tratá-lo como uma atualização.
- A lógica do CVE-2023-21257 detecta que o usuário é restrito → a instalação é negada, mas o app gerenciado legítimo é marcado como desinstalado e o APK em staging permanece em cache.
Intune/Finsky auto-install bypass
Em ~1–10 minutos (intervalo de atualização de políticas):
- Intune/Company Portal detecta que o pacote obrigatório está ausente do Work Profile.
- A instância do Work-Profile Finsky é solicitada a reinstalá-lo.
- Durante a resolução de versão o Finsky compara:
- Play Store metadata para
com.workday.workdroidapp. - O APK local em staging da tentativa de instalação anterior.
- Porque o build local tem o maior
versionCode, o Finsky confia nele como a release mais recente e o instala no Work Profile restrito sem re-aplicar as checagensDISALLOW_INSTALL_APPS/DISALLOW_DEBUGGING_FEATURES.
O binário malicioso agora reside dentro do Work Profile sob o nome de pacote genuíno e é considerado compatível pelo MDM.
Oportunidades pós-exploração
- Acesso a dados do Work Profile – outros apps corporativos continuam a confiar em Intents/content providers vinculados ao pacote substituído, permitindo roubo de dados internos e exfiltração encoberta do Work Profile para a infraestrutura do atacante.
- Sequestro de per-app VPN – se o pacote substituído estiver mapeado para uma per-app VPN do Intune (MS Tunnels + Defender), o build malicioso herda automaticamente o perfil de VPN, dando acesso direto a hosts internos a partir de um processo controlado pelo atacante.
- Persistência – porque o MDM agora acredita que o app requerido está instalado, ele irá reinstalar o build malicioso sempre que o usuário ou o defensor o remover, proporcionando uma base de presença de longo prazo em Work Profiles BYOD.
References
Tip
Aprenda e pratique Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporte o HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.
HackTricks

