mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/mobile-pentesting/android-app-pentesting/README.md', 's
This commit is contained in:
parent
0c1cb9c082
commit
7c7603c538
@ -337,6 +337,7 @@
|
|||||||
- [Manual DeObfuscation](mobile-pentesting/android-app-pentesting/manual-deobfuscation.md)
|
- [Manual DeObfuscation](mobile-pentesting/android-app-pentesting/manual-deobfuscation.md)
|
||||||
- [React Native Application](mobile-pentesting/android-app-pentesting/react-native-application.md)
|
- [React Native Application](mobile-pentesting/android-app-pentesting/react-native-application.md)
|
||||||
- [Reversing Native Libraries](mobile-pentesting/android-app-pentesting/reversing-native-libraries.md)
|
- [Reversing Native Libraries](mobile-pentesting/android-app-pentesting/reversing-native-libraries.md)
|
||||||
|
- [Shizuku Privileged Api](mobile-pentesting/android-app-pentesting/shizuku-privileged-api.md)
|
||||||
- [Smali - Decompiling, Modifying, Compiling](mobile-pentesting/android-app-pentesting/smali-changes.md)
|
- [Smali - Decompiling, Modifying, Compiling](mobile-pentesting/android-app-pentesting/smali-changes.md)
|
||||||
- [Spoofing your location in Play Store](mobile-pentesting/android-app-pentesting/spoofing-your-location-in-play-store.md)
|
- [Spoofing your location in Play Store](mobile-pentesting/android-app-pentesting/spoofing-your-location-in-play-store.md)
|
||||||
- [Tapjacking](mobile-pentesting/android-app-pentesting/tapjacking.md)
|
- [Tapjacking](mobile-pentesting/android-app-pentesting/tapjacking.md)
|
||||||
|
|||||||
@ -12,8 +12,8 @@ android-applications-basics.md
|
|||||||
|
|
||||||
## ADB (Android Debug Bridge)
|
## ADB (Android Debug Bridge)
|
||||||
|
|
||||||
Esta é a principal ferramenta que você precisa para se conectar a um dispositivo Android (emulado ou físico).\
|
Esta é a principal ferramenta que você precisa para se conectar a um dispositivo android (emulado ou físico).\
|
||||||
**ADB** permite controlar dispositivos tanto via **USB** quanto **Rede** a partir de um computador. Esta utilidade possibilita a **cópia** de arquivos em ambas as direções, **instalação** e **desinstalação** de aplicativos, **execução** de comandos de shell, **backup** de dados, **leitura** de logs, entre outras funções.
|
**ADB** permite controlar dispositivos tanto via **USB** quanto via **Rede** a partir de um computador. Esta utilidade possibilita a **cópia** de arquivos em ambas as direções, **instalação** e **desinstalação** de aplicativos, **execução** de comandos de shell, **backup** de dados, **leitura** de logs, entre outras funções.
|
||||||
|
|
||||||
Dê uma olhada na seguinte lista de [**Comandos ADB**](adb-commands.md) para aprender como usar o adb.
|
Dê uma olhada na seguinte lista de [**Comandos ADB**](adb-commands.md) para aprender como usar o adb.
|
||||||
|
|
||||||
@ -25,6 +25,7 @@ Dê uma olhada na seguinte lista de [**Comandos ADB**](adb-commands.md) para apr
|
|||||||
## Outros truques interessantes
|
## Outros truques interessantes
|
||||||
|
|
||||||
- [Falsificando sua localização na Play Store](spoofing-your-location-in-play-store.md)
|
- [Falsificando sua localização na Play Store](spoofing-your-location-in-play-store.md)
|
||||||
|
- [API Privilegiada Shizuku (acesso privilegiado não-root baseado em ADB)](shizuku-privileged-api.md)
|
||||||
- **Baixar APKs**: [https://apps.evozi.com/apk-downloader/](https://apps.evozi.com/apk-downloader/), [https://apkpure.com/es/](https://apkpure.com/es/), [https://www.apkmirror.com/](https://www.apkmirror.com), [https://apkcombo.com/es-es/apk-downloader/](https://apkcombo.com/es-es/apk-downloader/), [https://github.com/kiber-io/apkd](https://github.com/kiber-io/apkd)
|
- **Baixar APKs**: [https://apps.evozi.com/apk-downloader/](https://apps.evozi.com/apk-downloader/), [https://apkpure.com/es/](https://apkpure.com/es/), [https://www.apkmirror.com/](https://www.apkmirror.com), [https://apkcombo.com/es-es/apk-downloader/](https://apkcombo.com/es-es/apk-downloader/), [https://github.com/kiber-io/apkd](https://github.com/kiber-io/apkd)
|
||||||
- Extrair APK do dispositivo:
|
- Extrair APK do dispositivo:
|
||||||
```bash
|
```bash
|
||||||
@ -47,16 +48,16 @@ java -jar uber-apk-signer.jar -a merged.apk --allowResign -o merged_signed
|
|||||||
```
|
```
|
||||||
## Análise Estática
|
## Análise Estática
|
||||||
|
|
||||||
Primeiramente, para analisar um APK você deve **dar uma olhada no código Java** usando um decompilador.\
|
Primeiramente, para analisar um APK, você deve **dar uma olhada no código Java** usando um decompilador.\
|
||||||
Por favor, [**leia aqui para encontrar informações sobre diferentes decompiladores disponíveis**](apk-decompilers.md).
|
Por favor, [**leia aqui para encontrar informações sobre diferentes decompiladores disponíveis**](apk-decompilers.md).
|
||||||
|
|
||||||
### Procurando informações interessantes
|
### Procurando informações interessantes
|
||||||
|
|
||||||
Apenas dando uma olhada nas **strings** do APK, você pode procurar por **senhas**, **URLs** ([https://github.com/ndelphit/apkurlgrep](https://github.com/ndelphit/apkurlgrep)), **chaves** **api**, **criptografia**, **bluetooth uuids**, **tokens** e qualquer coisa interessante... procure até por **backdoors** de execução de código ou backdoors de autenticação (credenciais de admin hardcoded para o app).
|
Apenas olhando para as **strings** do APK, você pode procurar por **senhas**, **URLs** ([https://github.com/ndelphit/apkurlgrep](https://github.com/ndelphit/apkurlgrep)), **chaves** **api**, **criptografia**, **bluetooth uuids**, **tokens** e qualquer coisa interessante... procure até por **backdoors** de execução de código ou backdoors de autenticação (credenciais de admin hardcoded para o app).
|
||||||
|
|
||||||
**Firebase**
|
**Firebase**
|
||||||
|
|
||||||
Preste atenção especial às **URLs do firebase** e verifique se está mal configurado. [Mais informações sobre o que é o Firebase e como explorá-lo aqui.](../../network-services-pentesting/pentesting-web/buckets/firebase-database.md)
|
Preste atenção especial às **URLs do firebase** e verifique se estão mal configuradas. [Mais informações sobre o que é o Firebase e como explorá-lo aqui.](../../network-services-pentesting/pentesting-web/buckets/firebase-database.md)
|
||||||
|
|
||||||
### Compreensão básica da aplicação - Manifest.xml, strings.xml
|
### Compreensão básica da aplicação - Manifest.xml, strings.xml
|
||||||
|
|
||||||
@ -64,7 +65,7 @@ A **examinação dos arquivos _Manifest.xml_ e _strings.xml_ de uma aplicação
|
|||||||
|
|
||||||
As **vulnerabilidades** identificadas no **Manifest.xml** incluem:
|
As **vulnerabilidades** identificadas no **Manifest.xml** incluem:
|
||||||
|
|
||||||
- **Aplicações Debugáveis**: Aplicações configuradas como debuggable (`debuggable="true"`) no arquivo _Manifest.xml_ representam um risco, pois permitem conexões que podem levar à exploração. Para uma melhor compreensão sobre como explorar aplicações debuggable, consulte um tutorial sobre como encontrar e explorar aplicações debuggable em um dispositivo.
|
- **Aplicações Debugáveis**: Aplicações definidas como debuggable (`debuggable="true"`) no arquivo _Manifest.xml_ representam um risco, pois permitem conexões que podem levar à exploração. Para uma melhor compreensão sobre como explorar aplicações debuggables, consulte um tutorial sobre como encontrar e explorar aplicações debuggables em um dispositivo.
|
||||||
- **Configurações de Backup**: O atributo `android:allowBackup="false"` deve ser explicitamente definido para aplicações que lidam com informações sensíveis para evitar backups de dados não autorizados via adb, especialmente quando a depuração USB está habilitada.
|
- **Configurações de Backup**: O atributo `android:allowBackup="false"` deve ser explicitamente definido para aplicações que lidam com informações sensíveis para evitar backups de dados não autorizados via adb, especialmente quando a depuração USB está habilitada.
|
||||||
- **Segurança de Rede**: Configurações de segurança de rede personalizadas (`android:networkSecurityConfig="@xml/network_security_config"`) em _res/xml/_ podem especificar detalhes de segurança como pins de certificado e configurações de tráfego HTTP. Um exemplo é permitir tráfego HTTP para domínios específicos.
|
- **Segurança de Rede**: Configurações de segurança de rede personalizadas (`android:networkSecurityConfig="@xml/network_security_config"`) em _res/xml/_ podem especificar detalhes de segurança como pins de certificado e configurações de tráfego HTTP. Um exemplo é permitir tráfego HTTP para domínios específicos.
|
||||||
- **Atividades e Serviços Exportados**: Identificar atividades e serviços exportados no manifesto pode destacar componentes que podem ser mal utilizados. Uma análise mais aprofundada durante os testes dinâmicos pode revelar como explorar esses componentes.
|
- **Atividades e Serviços Exportados**: Identificar atividades e serviços exportados no manifesto pode destacar componentes que podem ser mal utilizados. Uma análise mais aprofundada durante os testes dinâmicos pode revelar como explorar esses componentes.
|
||||||
@ -99,12 +100,12 @@ android-task-hijacking.md
|
|||||||
|
|
||||||
**Armazenamento Interno**
|
**Armazenamento Interno**
|
||||||
|
|
||||||
No Android, arquivos **armazenados** no **armazenamento interno** são **projetados** para serem **acessíveis** exclusivamente pelo **app** que os **criou**. Essa medida de segurança é **imposta** pelo sistema operacional Android e geralmente é adequada para as necessidades de segurança da maioria das aplicações. No entanto, os desenvolvedores às vezes utilizam modos como `MODE_WORLD_READABLE` e `MODE_WORLD_WRITABLE` para **permitir** que arquivos sejam **compartilhados** entre diferentes aplicações. No entanto, esses modos **não restringem o acesso** a esses arquivos por outras aplicações, incluindo aquelas potencialmente maliciosas.
|
No Android, arquivos **armazenados** no **armazenamento interno** são **projetados** para serem **acessíveis** exclusivamente pela **aplicação** que **os criou**. Essa medida de segurança é **imposta** pelo sistema operacional Android e geralmente é adequada para as necessidades de segurança da maioria das aplicações. No entanto, os desenvolvedores às vezes utilizam modos como `MODE_WORLD_READABLE` e `MODE_WORLD_WRITABLE` para **permitir** que arquivos sejam **compartilhados** entre diferentes aplicações. No entanto, esses modos **não restringem o acesso** a esses arquivos por outras aplicações, incluindo aquelas potencialmente maliciosas.
|
||||||
|
|
||||||
1. **Análise Estática:**
|
1. **Análise Estática:**
|
||||||
- **Assegure-se** de que o uso de `MODE_WORLD_READABLE` e `MODE_WORLD_WRITABLE` seja **cuidadosamente analisado**. Esses modos **podem potencialmente expor** arquivos a **acessos não intencionais ou não autorizados**.
|
- **Assegure-se** de que o uso de `MODE_WORLD_READABLE` e `MODE_WORLD_WRITABLE` seja **cuidadosamente analisado**. Esses modos **podem potencialmente expor** arquivos a **acessos não intencionais ou não autorizados**.
|
||||||
2. **Análise Dinâmica:**
|
2. **Análise Dinâmica:**
|
||||||
- **Verifique** as **permissões** definidas em arquivos criados pelo app. Especificamente, **verifique** se algum arquivo está **definido para ser legível ou gravável globalmente**. Isso pode representar um risco significativo à segurança, pois permitiria que **qualquer aplicação** instalada no dispositivo, independentemente de sua origem ou intenção, **lesse ou modificasse** esses arquivos.
|
- **Verifique** as **permissões** definidas em arquivos criados pela aplicação. Especificamente, **verifique** se algum arquivo está **definido para ser legível ou gravável globalmente**. Isso pode representar um risco significativo à segurança, pois permitiria que **qualquer aplicação** instalada no dispositivo, independentemente de sua origem ou intenção, **lesse ou modificasse** esses arquivos.
|
||||||
|
|
||||||
**Armazenamento Externo**
|
**Armazenamento Externo**
|
||||||
|
|
||||||
@ -122,8 +123,8 @@ Ao lidar com arquivos no **armazenamento externo**, como cartões SD, certas pre
|
|||||||
|
|
||||||
O armazenamento externo pode ser **acessado** em `/storage/emulated/0`, `/sdcard`, `/mnt/sdcard`
|
O armazenamento externo pode ser **acessado** em `/storage/emulated/0`, `/sdcard`, `/mnt/sdcard`
|
||||||
|
|
||||||
> [!NOTE]
|
> [!TIP]
|
||||||
> A partir do Android 4.4 (**API 17**), o cartão SD possui uma estrutura de diretório que **limita o acesso de um app ao diretório que é especificamente para aquele app**. Isso impede que aplicações maliciosas obtenham acesso de leitura ou gravação aos arquivos de outro app.
|
> A partir do Android 4.4 (**API 17**), o cartão SD possui uma estrutura de diretórios que **limita o acesso de um app ao diretório que é especificamente para aquele app**. Isso impede que aplicações maliciosas ganhem acesso de leitura ou gravação aos arquivos de outro app.
|
||||||
|
|
||||||
**Dados sensíveis armazenados em texto claro**
|
**Dados sensíveis armazenados em texto claro**
|
||||||
|
|
||||||
@ -141,7 +142,7 @@ sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
|
|||||||
```
|
```
|
||||||
Uma boa maneira de testar isso é tentar capturar o tráfego usando algum proxy como Burp sem autorizar o Burp CA dentro do dispositivo. Além disso, você pode gerar com o Burp um certificado para um hostname diferente e usá-lo.
|
Uma boa maneira de testar isso é tentar capturar o tráfego usando algum proxy como Burp sem autorizar o Burp CA dentro do dispositivo. Além disso, você pode gerar com o Burp um certificado para um hostname diferente e usá-lo.
|
||||||
|
|
||||||
### Quebra de Criptografia
|
### Criptografia Quebrada
|
||||||
|
|
||||||
**Processos de Gerenciamento de Chaves Ruins**
|
**Processos de Gerenciamento de Chaves Ruins**
|
||||||
|
|
||||||
@ -149,7 +150,7 @@ Alguns desenvolvedores salvam dados sensíveis no armazenamento local e os cript
|
|||||||
|
|
||||||
**Uso de Algoritmos Inseguros e/ou Obsoletos**
|
**Uso de Algoritmos Inseguros e/ou Obsoletos**
|
||||||
|
|
||||||
Os desenvolvedores não devem usar **algoritmos obsoletos** para realizar **verificações de autorização**, **armazenar** ou **enviar** dados. Alguns desses algoritmos são: RC4, MD4, MD5, SHA1... Se **hashes** forem usados para armazenar senhas, por exemplo, devem ser usados hashes resistentes a **força bruta** com sal.
|
Os desenvolvedores não devem usar **algoritmos obsoletos** para realizar **verificações de autorização**, **armazenar** ou **enviar** dados. Alguns desses algoritmos são: RC4, MD4, MD5, SHA1... Se **hashes** forem usados para armazenar senhas, por exemplo, hashes resistentes a força bruta **devem** ser usados com sal.
|
||||||
|
|
||||||
### Outras verificações
|
### Outras verificações
|
||||||
|
|
||||||
@ -161,7 +162,7 @@ Os desenvolvedores não devem usar **algoritmos obsoletos** para realizar **veri
|
|||||||
|
|
||||||
### Aplicação React Native
|
### Aplicação React Native
|
||||||
|
|
||||||
Leia a seguinte página para aprender como acessar facilmente o código javascript de aplicações React:
|
Leia a página a seguir para aprender como acessar facilmente o código javascript de aplicações React:
|
||||||
|
|
||||||
{{#ref}}
|
{{#ref}}
|
||||||
react-native-application.md
|
react-native-application.md
|
||||||
@ -169,7 +170,7 @@ react-native-application.md
|
|||||||
|
|
||||||
### Aplicações Xamarin
|
### Aplicações Xamarin
|
||||||
|
|
||||||
Leia a seguinte página para aprender como acessar facilmente o código C# de aplicações xamarin:
|
Leia a página a seguir para aprender como acessar facilmente o código C# de aplicações xamarin:
|
||||||
|
|
||||||
{{#ref}}
|
{{#ref}}
|
||||||
../xamarin-apps.md
|
../xamarin-apps.md
|
||||||
@ -179,7 +180,7 @@ Leia a seguinte página para aprender como acessar facilmente o código C# de ap
|
|||||||
|
|
||||||
De acordo com este [**post de blog**](https://clearbluejar.github.io/posts/desuperpacking-meta-superpacked-apks-with-github-actions/), superpacked é um algoritmo Meta que comprime o conteúdo de uma aplicação em um único arquivo. O blog fala sobre a possibilidade de criar um aplicativo que descompacte esse tipo de aplicativo... e uma maneira mais rápida que envolve **executar a aplicação e coletar os arquivos descompactados do sistema de arquivos.**
|
De acordo com este [**post de blog**](https://clearbluejar.github.io/posts/desuperpacking-meta-superpacked-apks-with-github-actions/), superpacked é um algoritmo Meta que comprime o conteúdo de uma aplicação em um único arquivo. O blog fala sobre a possibilidade de criar um aplicativo que descompacte esse tipo de aplicativo... e uma maneira mais rápida que envolve **executar a aplicação e coletar os arquivos descompactados do sistema de arquivos.**
|
||||||
|
|
||||||
### Análise Estática Automatizada de Código
|
### Análise de Código Estática Automatizada
|
||||||
|
|
||||||
A ferramenta [**mariana-trench**](https://github.com/facebook/mariana-trench) é capaz de encontrar **vulnerabilidades** ao **escanear** o **código** da aplicação. Esta ferramenta contém uma série de **fontes conhecidas** (que indicam ao ferramenta os **lugares** onde a **entrada** é **controlada pelo usuário**), **sinks** (que indicam ao ferramenta **lugares perigosos** onde a entrada maliciosa do usuário pode causar danos) e **regras**. Essas regras indicam a **combinação** de **fontes-sinks** que indica uma vulnerabilidade.
|
A ferramenta [**mariana-trench**](https://github.com/facebook/mariana-trench) é capaz de encontrar **vulnerabilidades** ao **escanear** o **código** da aplicação. Esta ferramenta contém uma série de **fontes conhecidas** (que indicam ao ferramenta os **lugares** onde a **entrada** é **controlada pelo usuário**), **sinks** (que indicam ao ferramenta **lugares perigosos** onde a entrada maliciosa do usuário pode causar danos) e **regras**. Essas regras indicam a **combinação** de **fontes-sinks** que indica uma vulnerabilidade.
|
||||||
|
|
||||||
@ -216,9 +217,9 @@ content-protocol.md
|
|||||||
|
|
||||||
> Primeiro de tudo, você precisa de um ambiente onde possa instalar a aplicação e todo o ambiente (certificado Burp CA, Drozer e Frida principalmente). Portanto, um dispositivo rooteado (emulado ou não) é extremamente recomendado.
|
> Primeiro de tudo, você precisa de um ambiente onde possa instalar a aplicação e todo o ambiente (certificado Burp CA, Drozer e Frida principalmente). Portanto, um dispositivo rooteado (emulado ou não) é extremamente recomendado.
|
||||||
|
|
||||||
### Análise Dinâmica Online
|
### Análise dinâmica online
|
||||||
|
|
||||||
Você pode criar uma **conta gratuita** em: [https://appetize.io/](https://appetize.io). Esta plataforma permite que você **envie** e **execute** APKs, então é útil para ver como um apk está se comportando.
|
Você pode criar uma **conta gratuita** em: [https://appetize.io/](https://appetize.io). Esta plataforma permite que você **faça upload** e **execute** APKs, então é útil para ver como um apk está se comportando.
|
||||||
|
|
||||||
Você pode até **ver os logs da sua aplicação** na web e se conectar através do **adb**.
|
Você pode até **ver os logs da sua aplicação** na web e se conectar através do **adb**.
|
||||||
|
|
||||||
@ -226,7 +227,7 @@ Você pode até **ver os logs da sua aplicação** na web e se conectar através
|
|||||||
|
|
||||||
Graças à conexão ADB, você pode usar **Drozer** e **Frida** dentro dos emuladores.
|
Graças à conexão ADB, você pode usar **Drozer** e **Frida** dentro dos emuladores.
|
||||||
|
|
||||||
### Análise Dinâmica Local
|
### Análise dinâmica local
|
||||||
|
|
||||||
#### Usando um emulador
|
#### Usando um emulador
|
||||||
|
|
||||||
@ -237,10 +238,10 @@ Graças à conexão ADB, você pode usar **Drozer** e **Frida** dentro dos emula
|
|||||||
avd-android-virtual-device.md
|
avd-android-virtual-device.md
|
||||||
{{#endref}}
|
{{#endref}}
|
||||||
|
|
||||||
- [**Genymotion**](https://www.genymotion.com/fun-zone/) **(Versão gratuita:** Edição Pessoal, você precisa criar uma conta. _É recomendado **baixar** a versão **COM**_ _**VirtualBox** para evitar erros potenciais._)
|
- [**Genymotion**](https://www.genymotion.com/fun-zone/) **(Versão gratuita:** Edição Pessoal, você precisa criar uma conta. _É recomendável **baixar** a versão **COM**_ _**VirtualBox** para evitar erros potenciais._)
|
||||||
- [**Nox**](https://es.bignox.com) (Gratuito, mas não suporta Frida ou Drozer).
|
- [**Nox**](https://es.bignox.com) (Gratuito, mas não suporta Frida ou Drozer).
|
||||||
|
|
||||||
> [!NOTE]
|
> [!TIP]
|
||||||
> Ao criar um novo emulador em qualquer plataforma, lembre-se de que quanto maior a tela, mais lento o emulador funcionará. Portanto, selecione telas pequenas, se possível.
|
> Ao criar um novo emulador em qualquer plataforma, lembre-se de que quanto maior a tela, mais lento o emulador funcionará. Portanto, selecione telas pequenas, se possível.
|
||||||
|
|
||||||
Para **instalar os serviços do google** (como AppStore) no Genymotion, você precisa clicar no botão marcado em vermelho da imagem a seguir:
|
Para **instalar os serviços do google** (como AppStore) no Genymotion, você precisa clicar no botão marcado em vermelho da imagem a seguir:
|
||||||
@ -259,22 +260,22 @@ Você precisa ativar as opções de **depuração** e será legal se você puder
|
|||||||
4. Pressione **Número da versão** 7 vezes.
|
4. Pressione **Número da versão** 7 vezes.
|
||||||
5. Volte e você encontrará as **Opções de desenvolvedor**.
|
5. Volte e você encontrará as **Opções de desenvolvedor**.
|
||||||
|
|
||||||
> Uma vez que você tenha instalado a aplicação, a primeira coisa que deve fazer é testá-la e investigar o que ela faz, como funciona e se familiarizar com ela.\
|
> Uma vez que você tenha instalado a aplicação, a primeira coisa que você deve fazer é testá-la e investigar o que ela faz, como funciona e se familiarizar com ela.\
|
||||||
> Sugiro que **realize esta análise dinâmica inicial usando a análise dinâmica do MobSF + pidcat**, para que possamos **aprender como a aplicação funciona** enquanto o MobSF **captura** muitos **dados interessantes** que você pode revisar mais tarde.
|
> Sugiro que **realize esta análise dinâmica inicial usando a análise dinâmica do MobSF + pidcat**, para que possamos **aprender como a aplicação funciona** enquanto o MobSF **captura** muitos **dados interessantes** que você pode revisar mais tarde.
|
||||||
|
|
||||||
### Vazamento de Dados Não Intencionais
|
### Vazamento de Dados Não Intencionais
|
||||||
|
|
||||||
**Registro**
|
**Registro**
|
||||||
|
|
||||||
Os desenvolvedores devem ter cuidado ao expor **informações de depuração** publicamente, pois isso pode levar a vazamentos de dados sensíveis. As ferramentas [**pidcat**](https://github.com/JakeWharton/pidcat) e `adb logcat` são recomendadas para monitorar logs de aplicações para identificar e proteger informações sensíveis. **Pidcat** é preferido por sua facilidade de uso e legibilidade.
|
Os desenvolvedores devem ter cuidado ao expor **informações de depuração** publicamente, pois isso pode levar a vazamentos de dados sensíveis. As ferramentas [**pidcat**](https://github.com/JakeWharton/pidcat) e `adb logcat` são recomendadas para monitorar logs de aplicações para identificar e proteger informações sensíveis. **Pidcat** é favorecido por sua facilidade de uso e legibilidade.
|
||||||
|
|
||||||
> [!WARNING]
|
> [!WARNING]
|
||||||
> Note que a partir de **versões mais recentes que o Android 4.0**, **as aplicações só podem acessar seus próprios logs**. Portanto, as aplicações não podem acessar os logs de outros aplicativos.\
|
> Note que a partir de **versões mais recentes que Android 4.0**, **as aplicações só podem acessar seus próprios logs**. Portanto, as aplicações não podem acessar os logs de outros aplicativos.\
|
||||||
> De qualquer forma, ainda é recomendado **não registrar informações sensíveis**.
|
> De qualquer forma, ainda é recomendado **não registrar informações sensíveis**.
|
||||||
|
|
||||||
**Cache de Buffer de Copiar/Colar**
|
**Cache de Buffer de Copiar/Colar**
|
||||||
|
|
||||||
O framework **baseado em clipboard** do Android permite a funcionalidade de copiar e colar em aplicativos, mas apresenta um risco, pois **outros aplicativos** podem **acessar** o clipboard, potencialmente expondo dados sensíveis. É crucial **desativar funções de copiar/colar** para seções sensíveis de uma aplicação, como detalhes de cartão de crédito, para evitar vazamentos de dados.
|
O framework **baseado em clipboard** do Android permite a funcionalidade de copiar e colar em aplicativos, mas apresenta um risco, pois **outros aplicativos** podem **acessar** o clipboard, potencialmente expondo dados sensíveis. É crucial **desabilitar funções de copiar/colar** para seções sensíveis de uma aplicação, como detalhes de cartão de crédito, para evitar vazamentos de dados.
|
||||||
|
|
||||||
**Logs de Crash**
|
**Logs de Crash**
|
||||||
|
|
||||||
@ -291,7 +292,7 @@ As aplicações frequentemente integram serviços como Google Adsense, que podem
|
|||||||
A maioria das aplicações usará **bancos de dados SQLite internos** para salvar informações. Durante o pentest, dê uma **olhada** nos **bancos de dados** criados, os nomes das **tabelas** e **colunas** e todos os **dados** salvos, pois você pode encontrar **informações sensíveis** (o que seria uma vulnerabilidade).\
|
A maioria das aplicações usará **bancos de dados SQLite internos** para salvar informações. Durante o pentest, dê uma **olhada** nos **bancos de dados** criados, os nomes das **tabelas** e **colunas** e todos os **dados** salvos, pois você pode encontrar **informações sensíveis** (o que seria uma vulnerabilidade).\
|
||||||
Os bancos de dados devem estar localizados em `/data/data/the.package.name/databases` como `/data/data/com.mwr.example.sieve/databases`.
|
Os bancos de dados devem estar localizados em `/data/data/the.package.name/databases` como `/data/data/com.mwr.example.sieve/databases`.
|
||||||
|
|
||||||
Se o banco de dados estiver salvando informações confidenciais e estiver **criptografado**, mas você conseguir **encontrar** a **senha** dentro da aplicação, ainda é uma **vulnerabilidade**.
|
Se o banco de dados estiver salvando informações confidenciais e estiver **criptografado**, mas você pode **encontrar** a **senha** dentro da aplicação, ainda é uma **vulnerabilidade**.
|
||||||
|
|
||||||
Enumere as tabelas usando `.tables` e enumere as colunas das tabelas fazendo `.schema <table_name>`.
|
Enumere as tabelas usando `.tables` e enumere as colunas das tabelas fazendo `.schema <table_name>`.
|
||||||
|
|
||||||
@ -307,7 +308,7 @@ Além disso, lembre-se de que o código de uma atividade começa no método **`o
|
|||||||
|
|
||||||
**Bypass de Autorização**
|
**Bypass de Autorização**
|
||||||
|
|
||||||
Quando uma Atividade é exportada, você pode invocar sua tela de um aplicativo externo. Portanto, se uma atividade com **informações sensíveis** for **exportada**, você poderá **burlar** os mecanismos de **autenticação** **para acessá-la.**
|
Quando uma Atividade é exportada, você pode invocar sua tela de um aplicativo externo. Portanto, se uma atividade com **informações sensíveis** for **exportada**, você poderia **burlar** os mecanismos de **autenticação** **para acessá-la.**
|
||||||
|
|
||||||
[**Aprenda como explorar atividades exportadas com Drozer.**](drozer-tutorial/index.html#activities)
|
[**Aprenda como explorar atividades exportadas com Drozer.**](drozer-tutorial/index.html#activities)
|
||||||
|
|
||||||
@ -320,7 +321,7 @@ adb shell am start -n com.example.demo/com.example.test.MainActivity
|
|||||||
```
|
```
|
||||||
**NOTA**: O MobSF detectará como malicioso o uso de _**singleTask/singleInstance**_ como `android:launchMode` em uma atividade, mas devido a [isso](https://github.com/MobSF/Mobile-Security-Framework-MobSF/pull/750), aparentemente isso é perigoso apenas em versões antigas (versões da API < 21).
|
**NOTA**: O MobSF detectará como malicioso o uso de _**singleTask/singleInstance**_ como `android:launchMode` em uma atividade, mas devido a [isso](https://github.com/MobSF/Mobile-Security-Framework-MobSF/pull/750), aparentemente isso é perigoso apenas em versões antigas (versões da API < 21).
|
||||||
|
|
||||||
> [!NOTA]
|
> [!DICA]
|
||||||
> Note que uma bypass de autorização nem sempre é uma vulnerabilidade, isso dependerá de como o bypass funciona e quais informações são expostas.
|
> Note que uma bypass de autorização nem sempre é uma vulnerabilidade, isso dependerá de como o bypass funciona e quais informações são expostas.
|
||||||
|
|
||||||
**Vazamento de informações sensíveis**
|
**Vazamento de informações sensíveis**
|
||||||
@ -346,13 +347,13 @@ Lembre-se de que as ações de um Serviço começam no método `onStartCommand`.
|
|||||||
Um serviço é basicamente algo que **pode receber dados**, **processá-los** e **retornar** (ou não) uma resposta. Então, se um aplicativo estiver exportando alguns serviços, você deve **verificar** o **código** para entender o que ele está fazendo e **testá-lo** **dinamicamente** para extrair informações confidenciais, contornar medidas de autenticação...\
|
Um serviço é basicamente algo que **pode receber dados**, **processá-los** e **retornar** (ou não) uma resposta. Então, se um aplicativo estiver exportando alguns serviços, você deve **verificar** o **código** para entender o que ele está fazendo e **testá-lo** **dinamicamente** para extrair informações confidenciais, contornar medidas de autenticação...\
|
||||||
[**Aprenda como explorar Serviços com Drozer.**](drozer-tutorial/index.html#services)
|
[**Aprenda como explorar Serviços com Drozer.**](drozer-tutorial/index.html#services)
|
||||||
|
|
||||||
### **Explorando Broadcast Receivers**
|
### **Explorando Receptores de Broadcast**
|
||||||
|
|
||||||
[**Leia isso se você quiser relembrar o que é um Broadcast Receiver.**](android-applications-basics.md#broadcast-receivers)\
|
[**Leia isso se você quiser relembrar o que é um Receptor de Broadcast.**](android-applications-basics.md#broadcast-receivers)\
|
||||||
Lembre-se de que as ações de um Broadcast Receiver começam no método `onReceive`.
|
Lembre-se de que as ações de um Receptor de Broadcast começam no método `onReceive`.
|
||||||
|
|
||||||
Um broadcast receiver estará esperando por um tipo de mensagem. Dependendo de como o receptor lida com a mensagem, ele pode ser vulnerável.\
|
Um receptor de broadcast estará esperando por um tipo de mensagem. Dependendo de como o receptor lida com a mensagem, ele pode ser vulnerável.\
|
||||||
[**Aprenda como explorar Broadcast Receivers com Drozer.**](#exploiting-broadcast-receivers)
|
[**Aprenda como explorar Receptores de Broadcast com Drozer.**](#exploiting-broadcast-receivers)
|
||||||
|
|
||||||
### **Explorando Schemes / Deep links**
|
### **Explorando Schemes / Deep links**
|
||||||
|
|
||||||
@ -381,7 +382,7 @@ Toda vez que você encontrar um deep link, verifique se **não está recebendo d
|
|||||||
**Parâmetros no caminho**
|
**Parâmetros no caminho**
|
||||||
|
|
||||||
Você **também deve verificar se algum deep link está usando um parâmetro dentro do caminho** da URL como: `https://api.example.com/v1/users/{username}`, nesse caso você pode forçar uma travessia de caminho acessando algo como: `example://app/users?username=../../unwanted-endpoint%3fparam=value`.\
|
Você **também deve verificar se algum deep link está usando um parâmetro dentro do caminho** da URL como: `https://api.example.com/v1/users/{username}`, nesse caso você pode forçar uma travessia de caminho acessando algo como: `example://app/users?username=../../unwanted-endpoint%3fparam=value`.\
|
||||||
Note que se você encontrar os endpoints corretos dentro da aplicação, pode ser capaz de causar um **Open Redirect** (se parte do caminho for usada como nome de domínio), **assumir a conta** (se você puder modificar os detalhes dos usuários sem o token CSRF e o endpoint vulnerável usar o método correto) e qualquer outra vulnerabilidade. Mais [info sobre isso aqui](http://dphoeniixx.com/2020/12/13-2/).
|
Note que se você encontrar os endpoints corretos dentro da aplicação, pode ser capaz de causar um **Open Redirect** (se parte do caminho for usada como nome de domínio), **assumir a conta** (se você puder modificar os detalhes dos usuários sem token CSRF e o endpoint vulnerável usar o método correto) e qualquer outra vulnerabilidade. Mais [info sobre isso aqui](http://dphoeniixx.com/2020/12/13-2/).
|
||||||
|
|
||||||
**Mais exemplos**
|
**Mais exemplos**
|
||||||
|
|
||||||
@ -389,9 +390,9 @@ Um [relatório de bug bounty interessante](https://hackerone.com/reports/855618)
|
|||||||
|
|
||||||
### Inspeção e Falhas de Verificação da Camada de Transporte
|
### Inspeção e Falhas de Verificação da Camada de Transporte
|
||||||
|
|
||||||
- **Os certificados nem sempre são inspecionados corretamente** por aplicativos Android. É comum que esses aplicativos ignorem avisos e aceitem certificados autoassinados ou, em alguns casos, revertam para o uso de conexões HTTP.
|
- **Os certificados nem sempre são inspecionados corretamente** por aplicativos Android. É comum que esses aplicativos ignorem avisos e aceitem certificados autoassinados ou, em alguns casos, voltem a usar conexões HTTP.
|
||||||
- **As negociações durante o handshake SSL/TLS às vezes são fracas**, empregando suítes de cifra inseguras. Essa vulnerabilidade torna a conexão suscetível a ataques man-in-the-middle (MITM), permitindo que atacantes decifrem os dados.
|
- **As negociações durante o handshake SSL/TLS às vezes são fracas**, empregando suítes de cifra inseguras. Essa vulnerabilidade torna a conexão suscetível a ataques man-in-the-middle (MITM), permitindo que atacantes decriptografem os dados.
|
||||||
- **O vazamento de informações privadas** é um risco quando os aplicativos se autenticam usando canais seguros, mas depois se comunicam por canais não seguros para outras transações. Essa abordagem falha em proteger dados sensíveis, como cookies de sessão ou detalhes do usuário, de interceptação por entidades maliciosas.
|
- **Vazamento de informações privadas** é um risco quando aplicativos se autenticam usando canais seguros, mas depois se comunicam por canais não seguros para outras transações. Essa abordagem falha em proteger dados sensíveis, como cookies de sessão ou detalhes do usuário, de interceptação por entidades maliciosas.
|
||||||
|
|
||||||
#### Verificação de Certificado
|
#### Verificação de Certificado
|
||||||
|
|
||||||
@ -403,15 +404,17 @@ SSL Pinning é uma medida de segurança onde o aplicativo verifica o certificado
|
|||||||
|
|
||||||
#### Inspeção de Tráfego
|
#### Inspeção de Tráfego
|
||||||
|
|
||||||
Para inspecionar o tráfego HTTP, é necessário **instalar o certificado da ferramenta de proxy** (por exemplo, Burp). Sem instalar esse certificado, o tráfego criptografado pode não ser visível através do proxy. Para um guia sobre como instalar um certificado CA personalizado, [**clique aqui**](avd-android-virtual-device.md#install-burp-certificate-on-a-virtual-machine).
|
Para inspecionar o tráfego HTTP, é necessário **instalar o certificado da ferramenta proxy** (por exemplo, Burp). Sem instalar esse certificado, o tráfego criptografado pode não ser visível através do proxy. Para um guia sobre como instalar um certificado CA personalizado, [**clique aqui**](avd-android-virtual-device.md#install-burp-certificate-on-a-virtual-machine).
|
||||||
|
|
||||||
Aplicativos que visam **API Level 24 e acima** requerem modificações na Configuração de Segurança da Rede para aceitar o certificado CA do proxy. Este passo é crítico para inspecionar tráfego criptografado. Para instruções sobre como modificar a Configuração de Segurança da Rede, [**consulte este tutorial**](make-apk-accept-ca-certificate.md).
|
Aplicativos que visam **API Level 24 e acima** requerem modificações na Configuração de Segurança da Rede para aceitar o certificado CA do proxy. Essa etapa é crítica para inspecionar tráfego criptografado. Para instruções sobre como modificar a Configuração de Segurança da Rede, [**consulte este tutorial**](make-apk-accept-ca-certificate.md).
|
||||||
|
|
||||||
#### Bypass de SSL Pinning
|
Se **Flutter** estiver sendo usado, você precisa seguir as instruções nesta [**página**](flutter.md). Isso ocorre porque, apenas adicionar o certificado ao armazenamento não funcionará, pois o Flutter tem sua própria lista de CAs válidas.
|
||||||
|
|
||||||
|
#### Contornando o SSL Pinning
|
||||||
|
|
||||||
Quando o SSL Pinning é implementado, contorná-lo se torna necessário para inspecionar o tráfego HTTPS. Vários métodos estão disponíveis para esse propósito:
|
Quando o SSL Pinning é implementado, contorná-lo se torna necessário para inspecionar o tráfego HTTPS. Vários métodos estão disponíveis para esse propósito:
|
||||||
|
|
||||||
- Modifique automaticamente o **apk** para **contornar** o SSL Pinning com [**apk-mitm**](https://github.com/shroudedcode/apk-mitm). O melhor pró dessa opção é que você não precisará de root para contornar o SSL Pinning, mas precisará excluir o aplicativo e reinstalar o novo, e isso nem sempre funcionará.
|
- Modificar automaticamente o **apk** para **contornar** o SSL Pinning com [**apk-mitm**](https://github.com/shroudedcode/apk-mitm). A melhor vantagem dessa opção é que você não precisará de root para contornar o SSL Pinning, mas precisará excluir o aplicativo e reinstalar o novo, e isso nem sempre funcionará.
|
||||||
- Você pode usar **Frida** (discutido abaixo) para contornar essa proteção. Aqui está um guia para usar Burp+Frida+Genymotion: [https://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/](https://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/)
|
- Você pode usar **Frida** (discutido abaixo) para contornar essa proteção. Aqui está um guia para usar Burp+Frida+Genymotion: [https://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/](https://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/)
|
||||||
- Você também pode tentar **contornar automaticamente o SSL Pinning** usando [**objection**](frida-tutorial/objection-tutorial.md)**:** `objection --gadget com.package.app explore --startup-command "android sslpinning disable"`
|
- Você também pode tentar **contornar automaticamente o SSL Pinning** usando [**objection**](frida-tutorial/objection-tutorial.md)**:** `objection --gadget com.package.app explore --startup-command "android sslpinning disable"`
|
||||||
- Você também pode tentar **contornar automaticamente o SSL Pinning** usando **análise dinâmica do MobSF** (explicado abaixo)
|
- Você também pode tentar **contornar automaticamente o SSL Pinning** usando **análise dinâmica do MobSF** (explicado abaixo)
|
||||||
@ -419,7 +422,7 @@ Quando o SSL Pinning é implementado, contorná-lo se torna necessário para ins
|
|||||||
|
|
||||||
#### Procurando Vulnerabilidades Comuns na Web
|
#### Procurando Vulnerabilidades Comuns na Web
|
||||||
|
|
||||||
É importante também procurar vulnerabilidades comuns na web dentro da aplicação. Informações detalhadas sobre como identificar e mitigar essas vulnerabilidades estão além do escopo deste resumo, mas são amplamente cobertas em outros lugares.
|
É importante também procurar por vulnerabilidades comuns na web dentro da aplicação. Informações detalhadas sobre como identificar e mitigar essas vulnerabilidades estão além do escopo deste resumo, mas são amplamente cobertas em outros lugares.
|
||||||
|
|
||||||
### Frida
|
### Frida
|
||||||
|
|
||||||
@ -462,7 +465,7 @@ frida -U -f com.example.app -l frida-scripts/tracer-cipher.js
|
|||||||
```
|
```
|
||||||
### **Bypass de Impressão Digital/Biometria**
|
### **Bypass de Impressão Digital/Biometria**
|
||||||
|
|
||||||
Usando o seguinte script Frida, pode ser possível **bypassar a autenticação por impressão digital** que aplicativos Android podem estar realizando para **proteger certas áreas sensíveis:**
|
Usando o seguinte script Frida, pode ser possível **burlar a autenticação por impressão digital** que aplicativos Android podem estar realizando para **proteger certas áreas sensíveis:**
|
||||||
```bash
|
```bash
|
||||||
frida --codeshare krapgras/android-biometric-bypass-update-android-11 -U -f <app.package>
|
frida --codeshare krapgras/android-biometric-bypass-update-android-11 -U -f <app.package>
|
||||||
```
|
```
|
||||||
@ -474,7 +477,7 @@ No entanto, se esse instantâneo contiver **informações sensíveis**, alguém
|
|||||||
|
|
||||||
Os instantâneos geralmente são armazenados em: **`/data/system_ce/0/snapshots`**
|
Os instantâneos geralmente são armazenados em: **`/data/system_ce/0/snapshots`**
|
||||||
|
|
||||||
O Android fornece uma maneira de **prevenir a captura de tela definindo o parâmetro de layout FLAG_SECURE**. Ao usar essa flag, o conteúdo da janela é tratado como seguro, impedindo que apareça em capturas de tela ou seja visualizado em displays não seguros.
|
O Android fornece uma maneira de **prevenir a captura de tela definindo o parâmetro de layout FLAG_SECURE**. Ao usar essa flag, o conteúdo da janela é tratado como seguro, impedindo que apareça em capturas de tela ou que seja visualizado em displays não seguros.
|
||||||
```bash
|
```bash
|
||||||
getWindow().setFlags(LayoutParams.FLAG_SECURE, LayoutParams.FLAG_SECURE);
|
getWindow().setFlags(LayoutParams.FLAG_SECURE, LayoutParams.FLAG_SECURE);
|
||||||
```
|
```
|
||||||
@ -486,7 +489,7 @@ Esta ferramenta pode ajudar você a gerenciar diferentes ferramentas durante a a
|
|||||||
|
|
||||||
Os desenvolvedores frequentemente criam componentes proxy como atividades, serviços e receptores de broadcast que manipulam esses Intents e os passam para métodos como `startActivity(...)` ou `sendBroadcast(...)`, o que pode ser arriscado.
|
Os desenvolvedores frequentemente criam componentes proxy como atividades, serviços e receptores de broadcast que manipulam esses Intents e os passam para métodos como `startActivity(...)` ou `sendBroadcast(...)`, o que pode ser arriscado.
|
||||||
|
|
||||||
O perigo reside em permitir que atacantes acionem componentes de aplicativo não exportados ou acessem provedores de conteúdo sensíveis ao desviar esses Intents. Um exemplo notável é o componente `WebView` convertendo URLs em objetos `Intent` via `Intent.parseUri(...)` e, em seguida, executando-os, potencialmente levando a injeções de Intent maliciosas.
|
O perigo reside em permitir que atacantes acionem componentes de aplicativo não exportados ou acessem provedores de conteúdo sensíveis ao redirecionar esses Intents. Um exemplo notável é o componente `WebView` convertendo URLs em objetos `Intent` via `Intent.parseUri(...)` e, em seguida, executando-os, potencialmente levando a injeções de Intent maliciosas.
|
||||||
|
|
||||||
### Principais Conclusões
|
### Principais Conclusões
|
||||||
|
|
||||||
@ -515,7 +518,7 @@ Provavelmente você conhece esse tipo de vulnerabilidades da Web. Você deve ter
|
|||||||
|
|
||||||
.png>)
|
.png>)
|
||||||
|
|
||||||
**Avaliação de vulnerabilidades da aplicação** usando uma interface web agradável. Você também pode realizar análise dinâmica (mas precisa preparar o ambiente).
|
**Avaliação de vulnerabilidade da aplicação** usando uma interface web agradável. Você também pode realizar análise dinâmica (mas precisa preparar o ambiente).
|
||||||
```bash
|
```bash
|
||||||
docker pull opensecurity/mobile-security-framework-mobsf
|
docker pull opensecurity/mobile-security-framework-mobsf
|
||||||
docker run -it -p 8000:8000 opensecurity/mobile-security-framework-mobsf:latest
|
docker run -it -p 8000:8000 opensecurity/mobile-security-framework-mobsf:latest
|
||||||
@ -538,7 +541,7 @@ A partir das versões **Android > 5**, ele **iniciará automaticamente o Frida**
|
|||||||
|
|
||||||
**Frida**
|
**Frida**
|
||||||
|
|
||||||
Por padrão, ele também usará alguns Scripts Frida para **bypass SSL pinning**, **detecção de root** e **detecção de depurador** e para **monitorar APIs interessantes**.\
|
Por padrão, ele também usará alguns Scripts Frida para **bypassar SSL pinning**, **detecção de root** e **detecção de depurador** e para **monitorar APIs interessantes**.\
|
||||||
O MobSF também pode **invocar atividades exportadas**, capturar **capturas de tela** delas e **salvá-las** para o relatório.
|
O MobSF também pode **invocar atividades exportadas**, capturar **capturas de tela** delas e **salvá-las** para o relatório.
|
||||||
|
|
||||||
Para **iniciar** o teste dinâmico, pressione o botão verde: "**Start Instrumentation**". Pressione "**Frida Live Logs**" para ver os logs gerados pelos scripts Frida e "**Live API Monitor**" para ver todas as invocações para métodos hookados, argumentos passados e valores retornados (isso aparecerá após pressionar "Start Instrumentation").\
|
Para **iniciar** o teste dinâmico, pressione o botão verde: "**Start Instrumentation**". Pressione "**Frida Live Logs**" para ver os logs gerados pelos scripts Frida e "**Live API Monitor**" para ver todas as invocações para métodos hookados, argumentos passados e valores retornados (isso aparecerá após pressionar "Start Instrumentation").\
|
||||||
@ -553,13 +556,13 @@ Além disso, você tem algumas funcionalidades auxiliares do Frida:
|
|||||||
- **Capturar Comparações de Strings**: Pode ser muito útil. Ele **mostrará as 2 strings sendo comparadas** e se o resultado foi Verdadeiro ou Falso.
|
- **Capturar Comparações de Strings**: Pode ser muito útil. Ele **mostrará as 2 strings sendo comparadas** e se o resultado foi Verdadeiro ou Falso.
|
||||||
- **Enumerar Métodos de Classe**: Coloque o nome da classe (como "java.io.File") e ele imprimirá todos os métodos da classe.
|
- **Enumerar Métodos de Classe**: Coloque o nome da classe (como "java.io.File") e ele imprimirá todos os métodos da classe.
|
||||||
- **Pesquisar Padrão de Classe**: Pesquisar classes por padrão
|
- **Pesquisar Padrão de Classe**: Pesquisar classes por padrão
|
||||||
- **Rastrear Métodos de Classe**: **Rastrear** uma **classe inteira** (ver entradas e saídas de todos os métodos da classe). Lembre-se de que, por padrão, o MobSF rastreia vários métodos interessantes da API do Android.
|
- **Rastrear Métodos de Classe**: **Rastrear** uma **classe inteira** (ver entradas e saídas de todos os métodos da classe). Lembre-se de que, por padrão, o MobSF rastreia vários métodos interessantes da API Android.
|
||||||
|
|
||||||
Uma vez que você tenha selecionado o módulo auxiliar que deseja usar, você precisa pressionar "**Start Instrumentation**" e verá todas as saídas em "**Frida Live Logs**".
|
Uma vez que você tenha selecionado o módulo auxiliar que deseja usar, você precisa pressionar "**Start Intrumentation**" e verá todas as saídas em "**Frida Live Logs**".
|
||||||
|
|
||||||
**Shell**
|
**Shell**
|
||||||
|
|
||||||
O MobSF também traz um shell com alguns comandos **adb**, **comandos MobSF**, e comandos comuns de **shell** na parte inferior da página de análise dinâmica. Alguns comandos interessantes:
|
O MobSF também traz um shell com alguns comandos **adb**, comandos **MobSF**, e comandos comuns de **shell** na parte inferior da página de análise dinâmica. Alguns comandos interessantes:
|
||||||
```bash
|
```bash
|
||||||
help
|
help
|
||||||
shell ls
|
shell ls
|
||||||
@ -573,9 +576,9 @@ receivers
|
|||||||
Quando o tráfego http é capturado, você pode ver uma visão feia do tráfego capturado no "**Tráfego HTTP(S)**" na parte inferior ou uma visão mais agradável no botão verde "**Iniciar HTTPTools**". A partir da segunda opção, você pode **enviar** as **requisições capturadas** para **proxies** como Burp ou Owasp ZAP.\
|
Quando o tráfego http é capturado, você pode ver uma visão feia do tráfego capturado no "**Tráfego HTTP(S)**" na parte inferior ou uma visão mais agradável no botão verde "**Iniciar HTTPTools**". A partir da segunda opção, você pode **enviar** as **requisições capturadas** para **proxies** como Burp ou Owasp ZAP.\
|
||||||
Para fazer isso, _ligue o Burp -->_ _desative o Intercept --> no MobSB HTTPTools selecione a requisição_ --> pressione "**Enviar para Fuzzer**" --> _selecione o endereço do proxy_ ([http://127.0.0.1:8080\\](http://127.0.0.1:8080)).
|
Para fazer isso, _ligue o Burp -->_ _desative o Intercept --> no MobSB HTTPTools selecione a requisição_ --> pressione "**Enviar para Fuzzer**" --> _selecione o endereço do proxy_ ([http://127.0.0.1:8080\\](http://127.0.0.1:8080)).
|
||||||
|
|
||||||
Uma vez que você termine a análise dinâmica com MobSF, você pode pressionar em "**Iniciar Web API Fuzzer**" para **fuzz http requests** e procurar vulnerabilidades.
|
Uma vez que você termine a análise dinâmica com MobSF, você pode pressionar em "**Iniciar Web API Fuzzer**" para **fuzz http requests** e procurar por vulnerabilidades.
|
||||||
|
|
||||||
> [!NOTE]
|
> [!DICA]
|
||||||
> Após realizar uma análise dinâmica com MobSF, as configurações do proxy podem estar mal configuradas e você não conseguirá corrigi-las pela GUI. Você pode corrigir as configurações do proxy fazendo:
|
> Após realizar uma análise dinâmica com MobSF, as configurações do proxy podem estar mal configuradas e você não conseguirá corrigi-las pela GUI. Você pode corrigir as configurações do proxy fazendo:
|
||||||
>
|
>
|
||||||
> ```
|
> ```
|
||||||
@ -595,7 +598,7 @@ Esta é uma **ótima ferramenta para realizar análise estática com uma GUI**
|
|||||||
|
|
||||||
### [Qark](https://github.com/linkedin/qark)
|
### [Qark](https://github.com/linkedin/qark)
|
||||||
|
|
||||||
Esta ferramenta é projetada para procurar várias **vulnerabilidades relacionadas à segurança em aplicações Android**, seja no **código fonte** ou em **APKs empacotados**. A ferramenta também é **capaz de criar um "Proof-of-Concept" APK implantável** e **comandos ADB**, para explorar algumas das vulnerabilidades encontradas (Atividades expostas, intents, tapjacking...). Assim como com o Drozer, não há necessidade de rootear o dispositivo de teste.
|
Esta ferramenta é projetada para procurar várias **vulnerabilidades relacionadas à segurança em aplicações Android**, seja no **código fonte** ou em **APKs empacotados**. A ferramenta também é **capaz de criar um APK "Proof-of-Concept" implantável** e **comandos ADB**, para explorar algumas das vulnerabilidades encontradas (Atividades expostas, intents, tapjacking...). Assim como com o Drozer, não há necessidade de rootear o dispositivo de teste.
|
||||||
```bash
|
```bash
|
||||||
pip3 install --user qark # --user is only needed if not using a virtualenv
|
pip3 install --user qark # --user is only needed if not using a virtualenv
|
||||||
qark --apk path/to/my.apk
|
qark --apk path/to/my.apk
|
||||||
@ -629,7 +632,7 @@ super-analyzer {apk_file}
|
|||||||
|
|
||||||
StaCoAn é uma ferramenta **multiplataforma** que ajuda desenvolvedores, caçadores de bugs e hackers éticos a realizar [análise de código estático](https://en.wikipedia.org/wiki/Static_program_analysis) em aplicativos móveis.
|
StaCoAn é uma ferramenta **multiplataforma** que ajuda desenvolvedores, caçadores de bugs e hackers éticos a realizar [análise de código estático](https://en.wikipedia.org/wiki/Static_program_analysis) em aplicativos móveis.
|
||||||
|
|
||||||
O conceito é que você arraste e solte seu arquivo de aplicativo móvel (um arquivo .apk ou .ipa) na aplicação StaCoAn e ela gerará um relatório visual e portátil para você. Você pode ajustar as configurações e listas de palavras para obter uma experiência personalizada.
|
O conceito é que você arrasta e solta seu arquivo de aplicativo móvel (um arquivo .apk ou .ipa) na aplicação StaCoAn e ela gerará um relatório visual e portátil para você. Você pode ajustar as configurações e listas de palavras para obter uma experiência personalizada.
|
||||||
|
|
||||||
Baixe a [última versão](https://github.com/vincentcox/StaCoAn/releases):
|
Baixe a [última versão](https://github.com/vincentcox/StaCoAn/releases):
|
||||||
```
|
```
|
||||||
@ -637,7 +640,7 @@ Baixe a [última versão](https://github.com/vincentcox/StaCoAn/releases):
|
|||||||
```
|
```
|
||||||
### [AndroBugs](https://github.com/AndroBugs/AndroBugs_Framework)
|
### [AndroBugs](https://github.com/AndroBugs/AndroBugs_Framework)
|
||||||
|
|
||||||
AndroBugs Framework é um sistema de análise de vulnerabilidades para Android que ajuda desenvolvedores ou hackers a encontrar potenciais vulnerabilidades de segurança em aplicações Android.\
|
O AndroBugs Framework é um sistema de análise de vulnerabilidades do Android que ajuda desenvolvedores ou hackers a encontrar potenciais vulnerabilidades de segurança em aplicativos Android.\
|
||||||
[Windows releases](https://github.com/AndroBugs/AndroBugs_Framework/releases)
|
[Windows releases](https://github.com/AndroBugs/AndroBugs_Framework/releases)
|
||||||
```
|
```
|
||||||
python androbugs.py -f [APK file]
|
python androbugs.py -f [APK file]
|
||||||
@ -659,20 +662,20 @@ python androwarn.py -i my_application_to_be_analyzed.apk -r html -v 3
|
|||||||
|
|
||||||
**MARA** é um **M**obile **A**pplication **R**everse engineering e **A**nalysis Framework. É uma ferramenta que reúne ferramentas comumente usadas para engenharia reversa e análise de aplicativos móveis, para auxiliar na testagem de aplicativos móveis contra as ameaças de segurança móvel da OWASP. Seu objetivo é tornar essa tarefa mais fácil e amigável para desenvolvedores de aplicativos móveis e profissionais de segurança.
|
**MARA** é um **M**obile **A**pplication **R**everse engineering e **A**nalysis Framework. É uma ferramenta que reúne ferramentas comumente usadas para engenharia reversa e análise de aplicativos móveis, para auxiliar na testagem de aplicativos móveis contra as ameaças de segurança móvel da OWASP. Seu objetivo é tornar essa tarefa mais fácil e amigável para desenvolvedores de aplicativos móveis e profissionais de segurança.
|
||||||
|
|
||||||
Ele é capaz de:
|
É capaz de:
|
||||||
|
|
||||||
- Extrair código Java e Smali usando diferentes ferramentas
|
- Extrair código Java e Smali usando diferentes ferramentas
|
||||||
- Analisar APKs usando: [smalisca](https://github.com/dorneanu/smalisca), [ClassyShark](https://github.com/google/android-classyshark), [androbugs](https://github.com/AndroBugs/AndroBugs_Framework), [androwarn](https://github.com/maaaaz/androwarn), [APKiD](https://github.com/rednaga/APKiD)
|
- Analisar APKs usando: [smalisca](https://github.com/dorneanu/smalisca), [ClassyShark](https://github.com/google/android-classyshark), [androbugs](https://github.com/AndroBugs/AndroBugs_Framework), [androwarn](https://github.com/maaaaz/androwarn), [APKiD](https://github.com/rednaga/APKiD)
|
||||||
- Extrair informações privadas do APK usando regexps.
|
- Extrair informações privadas do APK usando regexps.
|
||||||
- Analisar o Manifest.
|
- Analisar o Manifest.
|
||||||
- Analisar domínios encontrados usando: [pyssltest](https://github.com/moheshmohan/pyssltest), [testssl](https://github.com/drwetter/testssl.sh) e [whatweb](https://github.com/urbanadventurer/WhatWeb)
|
- Analisar domínios encontrados usando: [pyssltest](https://github.com/moheshmohan/pyssltest), [testssl](https://github.com/drwetter/testssl.sh) e [whatweb](https://github.com/urbanadventurer/WhatWeb)
|
||||||
- Deofuscar APK via [apk-deguard.com](http://www.apk-deguard.com)
|
- Deobfuscar APK via [apk-deguard.com](http://www.apk-deguard.com)
|
||||||
|
|
||||||
### Koodous
|
### Koodous
|
||||||
|
|
||||||
Útil para detectar malware: [https://koodous.com/](https://koodous.com)
|
Útil para detectar malware: [https://koodous.com/](https://koodous.com)
|
||||||
|
|
||||||
## Ofuscando/Deofuscando código
|
## Obfuscating/Deobfuscating code
|
||||||
|
|
||||||
Observe que dependendo do serviço e configuração que você usa para ofuscar o código. Segredos podem ou não acabar ofuscados.
|
Observe que dependendo do serviço e configuração que você usa para ofuscar o código. Segredos podem ou não acabar ofuscados.
|
||||||
|
|
||||||
@ -680,11 +683,11 @@ Observe que dependendo do serviço e configuração que você usa para ofuscar o
|
|||||||
|
|
||||||
Do [Wikipedia](<https://en.wikipedia.org/wiki/ProGuard_(software)>): **ProGuard** é uma ferramenta de linha de comando de código aberto que reduz, otimiza e ofusca código Java. É capaz de otimizar bytecode, bem como detectar e remover instruções não utilizadas. ProGuard é software livre e é distribuído sob a Licença Pública Geral GNU, versão 2.
|
Do [Wikipedia](<https://en.wikipedia.org/wiki/ProGuard_(software)>): **ProGuard** é uma ferramenta de linha de comando de código aberto que reduz, otimiza e ofusca código Java. É capaz de otimizar bytecode, bem como detectar e remover instruções não utilizadas. ProGuard é software livre e é distribuído sob a Licença Pública Geral GNU, versão 2.
|
||||||
|
|
||||||
ProGuard é distribuído como parte do SDK do Android e é executado ao construir o aplicativo em modo de lançamento.
|
ProGuard é distribuído como parte do SDK do Android e é executado ao construir a aplicação em modo de lançamento.
|
||||||
|
|
||||||
### [DexGuard](https://www.guardsquare.com/dexguard)
|
### [DexGuard](https://www.guardsquare.com/dexguard)
|
||||||
|
|
||||||
Encontre um guia passo a passo para deofuscar o apk em [https://blog.lexfo.fr/dexguard.html](https://blog.lexfo.fr/dexguard.html)
|
Encontre um guia passo a passo para deobfuscar o apk em [https://blog.lexfo.fr/dexguard.html](https://blog.lexfo.fr/dexguard.html)
|
||||||
|
|
||||||
(Daquele guia) Na última vez que verificamos, o modo de operação do Dexguard era:
|
(Daquele guia) Na última vez que verificamos, o modo de operação do Dexguard era:
|
||||||
|
|
||||||
@ -700,13 +703,13 @@ Encontre um guia passo a passo para deofuscar o apk em [https://blog.lexfo.fr/de
|
|||||||
|
|
||||||
Você pode enviar um APK ofuscado para a plataforma deles.
|
Você pode enviar um APK ofuscado para a plataforma deles.
|
||||||
|
|
||||||
### [Deobfuscate android App](https://github.com/In3tinct/deobfuscate-android-app)
|
### [Deobfuscate android App]https://github.com/In3tinct/deobfuscate-android-app
|
||||||
|
|
||||||
Esta é uma ferramenta LLM para encontrar quaisquer vulnerabilidades de segurança potenciais em aplicativos android e deofuscar o código do aplicativo android. Usa a API pública Gemini do Google.
|
Esta é uma ferramenta LLM para encontrar quaisquer vulnerabilidades de segurança potenciais em aplicativos android e deobfuscar o código do aplicativo android. Usa a API pública Gemini do Google.
|
||||||
|
|
||||||
### [Simplify](https://github.com/CalebFenton/simplify)
|
### [Simplify](https://github.com/CalebFenton/simplify)
|
||||||
|
|
||||||
É um **deofuscador android genérico.** Simplify **executa virtualmente um aplicativo** para entender seu comportamento e então **tenta otimizar o código** para que se comporte de forma idêntica, mas seja mais fácil para um humano entender. Cada tipo de otimização é simples e genérico, então não importa qual o tipo específico de ofuscação utilizada.
|
É um **deobfuscador android genérico.** Simplify **executa virtualmente um aplicativo** para entender seu comportamento e então **tenta otimizar o código** para que se comporte de forma idêntica, mas seja mais fácil para um humano entender. Cada tipo de otimização é simples e genérico, então não importa qual o tipo específico de ofuscação utilizado.
|
||||||
|
|
||||||
### [APKiD](https://github.com/rednaga/APKiD)
|
### [APKiD](https://github.com/rednaga/APKiD)
|
||||||
|
|
||||||
@ -720,9 +723,9 @@ APKiD fornece informações sobre **como um APK foi feito**. Ele identifica muit
|
|||||||
|
|
||||||
### [Androl4b](https://github.com/sh4hin/Androl4b)
|
### [Androl4b](https://github.com/sh4hin/Androl4b)
|
||||||
|
|
||||||
AndroL4b é uma máquina virtual de segurança Android baseada em ubuntu-mate que inclui a coleção dos últimos frameworks, tutoriais e labs de diferentes especialistas e pesquisadores de segurança para engenharia reversa e análise de malware.
|
AndroL4b é uma máquina virtual de segurança Android baseada em ubuntu-mate que inclui a coleção dos últimos frameworks, tutoriais e laboratórios de diferentes especialistas e pesquisadores de segurança para engenharia reversa e análise de malware.
|
||||||
|
|
||||||
## Referências
|
## References
|
||||||
|
|
||||||
- [https://owasp.org/www-project-mobile-app-security/](https://owasp.org/www-project-mobile-app-security/)
|
- [https://owasp.org/www-project-mobile-app-security/](https://owasp.org/www-project-mobile-app-security/)
|
||||||
- [https://appsecwiki.com/#/](https://appsecwiki.com/#/) É uma ótima lista de recursos
|
- [https://appsecwiki.com/#/](https://appsecwiki.com/#/) É uma ótima lista de recursos
|
||||||
@ -731,7 +734,7 @@ AndroL4b é uma máquina virtual de segurança Android baseada em ubuntu-mate qu
|
|||||||
- [https://github.com/Ralireza/Android-Security-Teryaagh](https://github.com/Ralireza/Android-Security-Teryaagh)
|
- [https://github.com/Ralireza/Android-Security-Teryaagh](https://github.com/Ralireza/Android-Security-Teryaagh)
|
||||||
- [https://www.youtube.com/watch?v=PMKnPaGWxtg\&feature=youtu.be\&ab_channel=B3nacSec](https://www.youtube.com/watch?v=PMKnPaGWxtg&feature=youtu.be&ab_channel=B3nacSec)
|
- [https://www.youtube.com/watch?v=PMKnPaGWxtg\&feature=youtu.be\&ab_channel=B3nacSec](https://www.youtube.com/watch?v=PMKnPaGWxtg&feature=youtu.be&ab_channel=B3nacSec)
|
||||||
|
|
||||||
## Ainda a tentar
|
## Yet to try
|
||||||
|
|
||||||
- [https://www.vegabird.com/yaazhini/](https://www.vegabird.com/yaazhini/)
|
- [https://www.vegabird.com/yaazhini/](https://www.vegabird.com/yaazhini/)
|
||||||
- [https://github.com/abhi-r3v0/Adhrit](https://github.com/abhi-r3v0/Adhrit)
|
- [https://github.com/abhi-r3v0/Adhrit](https://github.com/abhi-r3v0/Adhrit)
|
||||||
|
|||||||
@ -0,0 +1,120 @@
|
|||||||
|
# Shizuku Privileged API
|
||||||
|
|
||||||
|
{{#include ../../banners/hacktricks-training.md}}
|
||||||
|
|
||||||
|
Shizuku é um serviço de código aberto que **cria um processo Java privilegiado usando `app_process`** e expõe APIs de **sistema Android selecionadas via Binder**. Como o processo é iniciado com as mesmas **capacidades de UID `shell` que o ADB usa**, qualquer aplicativo (ou terminal) que se conecta à interface AIDL exportada pode realizar muitas ações que normalmente requerem **`WRITE_SECURE_SETTINGS`, `INSTALL_PACKAGES`, operações de arquivo dentro de `/data`,** etc. – **sem precisar fazer root no dispositivo**.
|
||||||
|
|
||||||
|
Casos de uso típicos:
|
||||||
|
* Auditoria de segurança a partir de um dispositivo não enraizado
|
||||||
|
* Remoção de bloatware / debloating de aplicativos do sistema
|
||||||
|
* Coleta de logs, chaves de Wi-Fi, informações de processos e sockets para blue-team/DFIR
|
||||||
|
* Automação da configuração do dispositivo a partir de aplicativos personalizados ou scripts de shell
|
||||||
|
|
||||||
|
---
|
||||||
|
## 1. Iniciando o serviço privilegiado
|
||||||
|
|
||||||
|
`moe.shizuku.privileged.api` pode ser iniciado de três maneiras diferentes – o serviço Binder resultante se comporta da mesma forma em todas elas.
|
||||||
|
|
||||||
|
### 1.1 ADB sem fio (Android 11+)
|
||||||
|
1. Ative **Opções de Desenvolvedor ➜ Depuração sem fio** e emparelhe o dispositivo.
|
||||||
|
2. Dentro do aplicativo Shizuku, selecione **“Iniciar via depuração sem fio”** e copie o código de emparelhamento.
|
||||||
|
3. O serviço persiste até o próximo reinício (as sessões de depuração sem fio são limpas na inicialização).
|
||||||
|
|
||||||
|
### 1.2 USB / linha de comando ADB local
|
||||||
|
```bash
|
||||||
|
adb push start.sh \
|
||||||
|
/storage/emulated/0/Android/data/moe.shizuku.privileged.api/
|
||||||
|
|
||||||
|
# spawn the privileged process
|
||||||
|
adb shell sh /storage/emulated/0/Android/data/moe.shizuku.privileged.api/start.sh
|
||||||
|
```
|
||||||
|
O mesmo script pode ser executado sobre uma **conexão ADB de rede** (`adb connect <IP>:5555`).
|
||||||
|
|
||||||
|
### 1.3 Dispositivos com root
|
||||||
|
Se o dispositivo já estiver com root, execute:
|
||||||
|
```bash
|
||||||
|
su -c sh /data/adb/shizuku/start.sh
|
||||||
|
```
|
||||||
|
### 1.4 Verificando se está em execução
|
||||||
|
```bash
|
||||||
|
adb shell dumpsys activity service moe.shizuku.privileged.api | head
|
||||||
|
```
|
||||||
|
Um início bem-sucedido retorna `Running services (1)` junto com o PID do processo privilegiado.
|
||||||
|
|
||||||
|
---
|
||||||
|
## 2. Vinculação de um aplicativo
|
||||||
|
Aplicativos de terceiros precisam apenas do seguinte dentro de seu `AndroidManifest.xml`:
|
||||||
|
```xml
|
||||||
|
<uses-permission android:name="moe.shizuku.manager.permission.API"/>
|
||||||
|
```
|
||||||
|
Em tempo de execução, eles obtêm o binder:
|
||||||
|
```java
|
||||||
|
IBinder binder = ShizukuProvider.getBinder();
|
||||||
|
IPackageManager pm = IPackageManager.Stub.asInterface(binder);
|
||||||
|
```
|
||||||
|
A partir deste momento, o aplicativo pode invocar qualquer método que o **`shell` user** possa chamar – por exemplo:
|
||||||
|
```java
|
||||||
|
pm.installPackage(new Uri("file:///sdcard/app.apk"), null, 0, null);
|
||||||
|
Settings.Global.putInt(resolver, Settings.Global.ADB_ENABLED, 1);
|
||||||
|
```
|
||||||
|
Uma lista selecionada de mais de **170 aplicativos habilitados para Shizuku** é mantida em [awesome-shizuku](https://github.com/timschneeb/awesome-shizuku).
|
||||||
|
|
||||||
|
---
|
||||||
|
## 3. Rish – shell elevado dentro do Termux
|
||||||
|
A tela de configurações do Shizuku expõe **“Usar Shizuku em aplicativos de terminal”**. Habilitá-lo baixa *rish* (`/data/local/tmp/rish`).
|
||||||
|
```bash
|
||||||
|
pkg install wget
|
||||||
|
wget https://rikka.app/rish/latest -O rish && chmod +x rish
|
||||||
|
|
||||||
|
# start elevated shell (inherits the binder connection)
|
||||||
|
./rish
|
||||||
|
whoami # ➜ shell
|
||||||
|
id # uid=2000(shell) gid=2000(shell) groups=... context=u:r:shell:s0
|
||||||
|
```
|
||||||
|
### 3.1 Comandos úteis do shell rish
|
||||||
|
* Listar processos em execução de um pacote específico:
|
||||||
|
```bash
|
||||||
|
ps -A | grep com.facebook.katana
|
||||||
|
```
|
||||||
|
* Enumerar sockets de escuta e mapeá-los para pacotes (por exemplo, **CVE-2019-6447 ES File Explorer**):
|
||||||
|
```bash
|
||||||
|
netstat -tuln
|
||||||
|
for pid in $(lsof -nP -iTCP -sTCP:LISTEN -t); do
|
||||||
|
printf "%s -> %s\n" "$pid" "$(cat /proc/$pid/cmdline)";
|
||||||
|
done
|
||||||
|
```
|
||||||
|
* Despejar os logs de cada aplicativo:
|
||||||
|
```bash
|
||||||
|
logcat -d | grep -iE "(error|exception)"
|
||||||
|
```
|
||||||
|
* Ler credenciais de Wi-Fi armazenadas (Android 11 +):
|
||||||
|
```bash
|
||||||
|
cat /data/misc/wifi/WifiConfigStore.xml | grep -i "<ConfigKey>"
|
||||||
|
```
|
||||||
|
* Desinstalação em massa (exemplo):
|
||||||
|
```bash
|
||||||
|
pm uninstall --user 0 com.miui.weather2
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
## 4. Considerações de segurança / detecção
|
||||||
|
1. Shizuku precisa de privilégios de **depuração ADB**, portanto, _Opções do desenvolvedor → Depuração USB/Sem fio_ deve estar **ativado**. Organizações podem bloquear isso através de um MDM ou via `settings put global development_settings_enabled 0`.
|
||||||
|
2. O serviço se registra sob o nome `moe.shizuku.privileged.api`. Um simples `adb shell service list | grep shizuku` (ou regra de segurança de endpoint) detecta sua presença.
|
||||||
|
3. As capacidades são limitadas ao que o usuário `shell` já pode fazer – **não é root**. APIs sensíveis que requerem o usuário `system` ou `root` ainda são inacessíveis.
|
||||||
|
4. Sessões **não sobrevivem a uma reinicialização** a menos que o dispositivo esteja rooteado e Shizuku esteja configurado como um daemon de inicialização.
|
||||||
|
|
||||||
|
---
|
||||||
|
## 5. Mitigação
|
||||||
|
* Desativar a depuração USB/Sem fio em dispositivos de produção.
|
||||||
|
* Monitorar serviços Binder que expõem `moe.shizuku.privileged.api`.
|
||||||
|
* Usar políticas SELinux (Android enterprise) para bloquear a interface AIDL de aplicativos não gerenciados.
|
||||||
|
|
||||||
|
---
|
||||||
|
## Referências
|
||||||
|
|
||||||
|
- [Blog – Shizuku: Desbloqueando Capacidades Avançadas do Android Sem Root](https://www.mobile-hacker.com/2025/07/14/shizuku-unlocking-advanced-android-capabilities-without-root/)
|
||||||
|
- [Documentação Oficial do Shizuku](https://shizuku.rikka.app/)
|
||||||
|
- [awesome-shizuku – lista de aplicativos suportados](https://github.com/timschneeb/awesome-shizuku)
|
||||||
|
- [shell rish (shell reverso-adb privilegiado)](https://github.com/RikkaApps/Shizuku/blob/master/RISH.md)
|
||||||
|
|
||||||
|
{{#include ../../banners/hacktricks-training.md}}
|
||||||
Loading…
x
Reference in New Issue
Block a user