mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/mobile-pentesting/ios-pentesting/ios-pentesting-without
This commit is contained in:
parent
64b15ff2a6
commit
c1c8f57dd3
@ -8,7 +8,7 @@ Aplicativos assinados com a **entitlement `get_task_allow`** permitem que aplica
|
|||||||
|
|
||||||
No entanto, não é tão fácil quanto apenas puxar o IPA, re-assiná-lo com a entitlement e reinstalá-lo no seu dispositivo. Isso se deve à proteção FairPlay. Quando a assinatura do aplicativo muda, a chave DRM (Digital Rights Management) é **invalidada e o aplicativo não funcionará**.
|
No entanto, não é tão fácil quanto apenas puxar o IPA, re-assiná-lo com a entitlement e reinstalá-lo no seu dispositivo. Isso se deve à proteção FairPlay. Quando a assinatura do aplicativo muda, a chave DRM (Digital Rights Management) é **invalidada e o aplicativo não funcionará**.
|
||||||
|
|
||||||
Com um dispositivo antigo com jailbreak, é possível instalar o IPA, **descriptografá-lo usando sua ferramenta favorita** (como Iridium ou frida-ios-dump) e retirá-lo do dispositivo. Embora, se possível, é recomendado pedir ao cliente o IPA descriptografado.
|
Com um dispositivo antigo com jailbreak, é possível instalar o IPA, **descriptografá-lo usando sua ferramenta favorita** (como Iridium ou frida-ios-dump) e retirá-lo do dispositivo. Embora, se possível, é recomendável pedir ao cliente o IPA descriptografado.
|
||||||
|
|
||||||
## Obter IPA descriptografado
|
## Obter IPA descriptografado
|
||||||
|
|
||||||
@ -16,7 +16,7 @@ Com um dispositivo antigo com jailbreak, é possível instalar o IPA, **descript
|
|||||||
|
|
||||||
1. Instale o aplicativo para pentest no iPhone
|
1. Instale o aplicativo para pentest no iPhone
|
||||||
2. Instale e inicie o [Apple Configurator](https://apps.apple.com/au/app/apple-configurator/id1037126344?mt=12) no seu macos
|
2. Instale e inicie o [Apple Configurator](https://apps.apple.com/au/app/apple-configurator/id1037126344?mt=12) no seu macos
|
||||||
3. Abra o `Terminal` no seu Mac e vá para `/Users/[username]/Library/Group\\ Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps`. O IPA aparecerá nesta pasta mais tarde.
|
3. Abra o `Terminal` no seu Mac e cd para `/Users/[username]/Library/Group\\ Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps`. O IPA aparecerá nesta pasta mais tarde.
|
||||||
4. Você deve ver seu dispositivo iOS. Clique duas vezes nele e, em seguida, clique em Adicionar + → Apps na barra de menu superior.
|
4. Você deve ver seu dispositivo iOS. Clique duas vezes nele e, em seguida, clique em Adicionar + → Apps na barra de menu superior.
|
||||||
5. Após clicar em Adicionar, o Configurator fará o download do IPA da Apple e tentará enviá-lo para o seu dispositivo. Se você seguiu minha recomendação anterior e já instalou o IPA, um aviso pedindo para reinstalar o aplicativo aparecerá.
|
5. Após clicar em Adicionar, o Configurator fará o download do IPA da Apple e tentará enviá-lo para o seu dispositivo. Se você seguiu minha recomendação anterior e já instalou o IPA, um aviso pedindo para reinstalar o aplicativo aparecerá.
|
||||||
6. O IPA deve ser baixado dentro de `/Users/[username]/Library/Group\\ Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps`, de onde você pode pegá-lo.
|
6. O IPA deve ser baixado dentro de `/Users/[username]/Library/Group\\ Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps`, de onde você pode pegá-lo.
|
||||||
@ -27,7 +27,7 @@ Verifique [https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed](htt
|
|||||||
|
|
||||||
Para descriptografar o IPA, vamos instalá-lo. No entanto, se você tiver um iPhone antigo com jailbreak, potencialmente sua versão não será suportada pelo aplicativo, pois geralmente os aplicativos só suportam as versões mais recentes.
|
Para descriptografar o IPA, vamos instalá-lo. No entanto, se você tiver um iPhone antigo com jailbreak, potencialmente sua versão não será suportada pelo aplicativo, pois geralmente os aplicativos só suportam as versões mais recentes.
|
||||||
|
|
||||||
Portanto, para instalá-lo, basta descompactar o IPA:
|
Então, para instalá-lo, basta descompactar o IPA:
|
||||||
```bash
|
```bash
|
||||||
unzip redacted.ipa -d unzipped
|
unzip redacted.ipa -d unzipped
|
||||||
```
|
```
|
||||||
@ -53,21 +53,66 @@ Para re-assinar o aplicativo com a permissão `get-task-allow`, existem várias
|
|||||||
|
|
||||||
Quanto ao certificado e perfis de assinatura, a Apple oferece **perfis de assinatura de desenvolvedor gratuitos** para todas as contas através do Xcode. Basta criar um aplicativo e configurar um. Em seguida, configure o **iPhone para confiar nos aplicativos do desenvolvedor** navegando até `Settings` → `Privacy & Security`, e clique em `Developer Mode`.
|
Quanto ao certificado e perfis de assinatura, a Apple oferece **perfis de assinatura de desenvolvedor gratuitos** para todas as contas através do Xcode. Basta criar um aplicativo e configurar um. Em seguida, configure o **iPhone para confiar nos aplicativos do desenvolvedor** navegando até `Settings` → `Privacy & Security`, e clique em `Developer Mode`.
|
||||||
|
|
||||||
|
|
||||||
Com o IPA re-assinado, é hora de instalá-lo no dispositivo para pentestá-lo:
|
Com o IPA re-assinado, é hora de instalá-lo no dispositivo para pentestá-lo:
|
||||||
```bash
|
```bash
|
||||||
ideviceinstaller -i resigned.ipa -w
|
ideviceinstaller -i resigned.ipa -w
|
||||||
```
|
```
|
||||||
### Hook
|
---
|
||||||
|
|
||||||
Você pode facilmente hook seu aplicativo usando ferramentas comuns como frida e objection:
|
### Ativar Modo de Desenvolvedor (iOS 16+)
|
||||||
|
|
||||||
|
Desde o iOS 16, a Apple introduziu o **Modo de Desenvolvedor**: qualquer binário que contenha `get_task_allow` *ou* que seja assinado com um certificado de desenvolvimento se recusará a iniciar até que o Modo de Desenvolvedor esteja ativado no dispositivo. Você também não poderá anexar Frida/LLDB a menos que essa opção esteja ativada.
|
||||||
|
|
||||||
|
1. Instale ou envie **qualquer** IPA assinada por desenvolvedor para o telefone.
|
||||||
|
2. Navegue até **Ajustes → Privacidade e Segurança → Modo de Desenvolvedor** e ative-o.
|
||||||
|
3. O dispositivo será reiniciado; após inserir o código de acesso, você será solicitado a **Ativar** o Modo de Desenvolvedor.
|
||||||
|
|
||||||
|
O Modo de Desenvolvedor permanece ativo até que você o desative ou limpe o telefone, então este passo precisa ser realizado apenas uma vez por dispositivo. A [documentação da Apple](https://developer.apple.com/documentation/xcode/enabling-developer-mode-on-a-device) explica as implicações de segurança.
|
||||||
|
|
||||||
|
### Opções modernas de sideloading
|
||||||
|
|
||||||
|
Agora existem várias maneiras maduras de sideload e manter IPAs re-assinadas atualizadas sem jailbreak:
|
||||||
|
|
||||||
|
| Ferramenta | Requisitos | Forças | Limitações |
|
||||||
|
|------------|------------|--------|------------|
|
||||||
|
| **AltStore 2 / SideStore** | Companheiro macOS/Windows/Linux que re-assina a IPA a cada 7 dias com um perfil de desenvolvedor gratuito | Recarga automática via Wi-Fi, funciona até iOS 17 | Necessita de computador na mesma rede, limite de 3 aplicativos imposto pela Apple |
|
||||||
|
| **TrollStore 1/2** | Dispositivo em iOS 14 – 15.4.1 vulnerável ao bug do CoreTrust | Assinatura *permanente* (sem limite de 7 dias); nenhum computador necessário uma vez instalado | Não suportado em iOS 15.5+ (bug corrigido) |
|
||||||
|
|
||||||
|
Para pentests rotineiros em versões atuais do iOS, Alt/Side-Store geralmente são a escolha mais prática.
|
||||||
|
|
||||||
|
### Hooking / instrumentação dinâmica
|
||||||
|
|
||||||
|
Você pode hook seu aplicativo exatamente como em um dispositivo com jailbreak uma vez que ele esteja assinado com `get_task_allow` **e** o Modo de Desenvolvedor esteja ativado:
|
||||||
```bash
|
```bash
|
||||||
objection -g [your app bundle ID] explore
|
# Spawn & attach with objection
|
||||||
|
objection -g "com.example.target" explore
|
||||||
|
|
||||||
|
# Or plain Frida
|
||||||
|
frida -U -f com.example.target -l my_script.js --no-pause
|
||||||
```
|
```
|
||||||
|
Recentes lançamentos do Frida (>=16) lidam automaticamente com a autenticação de ponteiros e outras mitig ações do iOS 17, então a maioria dos scripts existentes funciona imediatamente.
|
||||||
|
|
||||||
|
### Análise dinâmica automatizada com MobSF (sem jailbreak)
|
||||||
|
|
||||||
|
[MobSF](https://mobsf.github.io/Mobile-Security-Framework-MobSF/) pode instrumentar um IPA assinado por desenvolvedor em um dispositivo real usando a mesma técnica (`get_task_allow`) e fornece uma interface web com navegador de sistema de arquivos, captura de tráfego e console do Frida【turn6view0†L2-L3】. A maneira mais rápida é executar o MobSF no Docker e, em seguida, conectar seu iPhone via USB:
|
||||||
|
```bash
|
||||||
|
docker pull opensecurity/mobile-security-framework-mobsf:latest
|
||||||
|
docker run -p 8000:8000 --privileged \
|
||||||
|
-v /var/run/usbmuxd:/var/run/usbmuxd \
|
||||||
|
opensecurity/mobile-security-framework-mobsf:latest
|
||||||
|
# Browse to http://127.0.0.1:8000 and upload your resigned IPA
|
||||||
|
```
|
||||||
|
MobSF irá implantar automaticamente o binário, habilitar um servidor Frida dentro do sandbox do aplicativo e gerar um relatório interativo.
|
||||||
|
|
||||||
|
### iOS 17 & Considerações sobre o Modo de Bloqueio
|
||||||
|
|
||||||
|
* **Modo de Bloqueio** (Configurações → Privacidade e Segurança) bloqueia o vinculador dinâmico de carregar bibliotecas dinâmicas não assinadas ou assinadas externamente. Ao testar dispositivos que podem ter este modo habilitado, certifique-se de que está **desativado** ou suas sessões Frida/objection serão encerradas imediatamente.
|
||||||
|
* A Autenticação de Ponteiros (PAC) é aplicada em todo o sistema em dispositivos A12+. Frida ≥16 lida com a remoção de PAC de forma transparente — apenas mantenha tanto *frida-server* quanto a ferramenta Python/CLI atualizados quando uma nova versão principal do iOS for lançada.
|
||||||
|
|
||||||
## Referências
|
## Referências
|
||||||
|
|
||||||
- [https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed](https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed)
|
- [https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed](https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed)
|
||||||
|
- Documentação do desenvolvedor da Apple – Habilitando o Modo de Desenvolvedor em um dispositivo: <https://developer.apple.com/documentation/xcode/enabling-developer-mode-on-a-device>
|
||||||
|
- Mobile Security Framework (MobSF): <https://mobsf.github.io/Mobile-Security-Framework-MobSF/>
|
||||||
|
|
||||||
{{#include ../../banners/hacktricks-training.md}}
|
{{#include ../../banners/hacktricks-training.md}}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user