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
8e9ea31ed5
commit
8d7aa31fe5
@ -322,6 +322,7 @@
|
||||
|
||||
- [Android APK Checklist](mobile-pentesting/android-checklist.md)
|
||||
- [Android Applications Pentesting](mobile-pentesting/android-app-pentesting/README.md)
|
||||
- [Accessibility Services Abuse](mobile-pentesting/android-app-pentesting/accessibility-services-abuse.md)
|
||||
- [Android Applications Basics](mobile-pentesting/android-app-pentesting/android-applications-basics.md)
|
||||
- [Android Task Hijacking](mobile-pentesting/android-app-pentesting/android-task-hijacking.md)
|
||||
- [ADB Commands](mobile-pentesting/android-app-pentesting/adb-commands.md)
|
||||
|
@ -27,6 +27,7 @@ Dê uma olhada na seguinte lista de [**Comandos ADB**](adb-commands.md) para apr
|
||||
- [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)
|
||||
- [Explorando Mecanismos Inseguros de Atualização In-App](insecure-in-app-update-rce.md)
|
||||
- [Abusando de Serviços de Acessibilidade (Android RAT)](accessibility-services-abuse.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)
|
||||
- Extrair APK do dispositivo:
|
||||
```bash
|
||||
@ -60,27 +61,27 @@ Por favor, [**leia aqui para encontrar informações sobre diferentes decompilad
|
||||
|
||||
### 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 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).
|
||||
|
||||
**Firebase**
|
||||
|
||||
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)
|
||||
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)
|
||||
|
||||
### Compreensão Básica da Aplicação - Manifest.xml, strings.xml
|
||||
|
||||
A **examinação dos arquivos _Manifest.xml_ e **_strings.xml_** de uma aplicação pode revelar potenciais vulnerabilidades de segurança**. Esses arquivos podem ser acessados usando decompiladores ou renomeando a extensão do arquivo APK para .zip e, em seguida, descompactando-o.
|
||||
|
||||
**Vulnerabilidades** identificadas no **Manifest.xml** incluem:
|
||||
**Vulnerabilidades** identificadas a partir do **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 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.
|
||||
- **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 testes dinâmicos pode revelar como explorar esses componentes.
|
||||
- **Content Providers e FileProviders**: Content providers expostos podem permitir acesso ou modificação não autorizada de dados. A configuração de FileProviders também deve ser examinada.
|
||||
- **Atividades e Serviços Exportados**: Identificar atividades e serviços exportados no manifesto pode destacar componentes que podem ser mal utilizados. Uma análise adicional durante os testes dinâmicos pode revelar como explorar esses componentes.
|
||||
- **Content Providers e FileProviders**: Content providers expostos podem permitir acesso ou modificação não autorizada de dados. A configuração de FileProviders também deve ser analisada.
|
||||
- **Broadcast Receivers e Esquemas de URL**: Esses componentes podem ser aproveitados para exploração, com atenção especial a como os esquemas de URL são gerenciados para vulnerabilidades de entrada.
|
||||
- **Versões do SDK**: Os atributos `minSdkVersion`, `targetSDKVersion` e `maxSdkVersion` indicam as versões do Android suportadas, destacando a importância de não suportar versões do Android desatualizadas e vulneráveis por razões de segurança.
|
||||
|
||||
Do arquivo **strings.xml**, informações sensíveis como chaves de API, esquemas personalizados e outras notas de desenvolvedor podem ser descobertas, sublinhando a necessidade de uma revisão cuidadosa desses recursos.
|
||||
A partir do arquivo **strings.xml**, informações sensíveis como chaves de API, esquemas personalizados e outras notas de desenvolvedor podem ser descobertas, sublinhando a necessidade de uma revisão cuidadosa desses recursos.
|
||||
|
||||
### Tapjacking
|
||||
|
||||
@ -110,7 +111,7 @@ android-task-hijacking.md
|
||||
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:**
|
||||
- **Assegure-se** de que o uso de `MODE_WORLD_READABLE` e `MODE_WORLD_WRITABLE` seja **cuidadosamente examinado**. 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:**
|
||||
- **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.
|
||||
|
||||
@ -157,7 +158,7 @@ Alguns desenvolvedores salvam dados sensíveis no armazenamento local e os cript
|
||||
|
||||
**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, hashes resistentes a força bruta **devem** ser usados 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, devem ser usados hashes resistentes a força bruta com sal.
|
||||
|
||||
### Outras verificações
|
||||
|
||||
@ -187,9 +188,9 @@ Leia a página a seguir 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.**
|
||||
|
||||
### Análise de Código Estática Automatizada
|
||||
### Análise Estática de Código 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 indicam 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.
|
||||
|
||||
Com esse conhecimento, **mariana-trench revisará o código e encontrará possíveis vulnerabilidades nele**.
|
||||
|
||||
@ -267,7 +268,7 @@ Você precisa ativar as opções de **depuração** e será legal se você puder
|
||||
4. Pressione **Número da versão** 7 vezes.
|
||||
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.
|
||||
|
||||
### Vazamento de Dados Não Intencionais
|
||||
@ -303,10 +304,10 @@ Se o banco de dados estiver salvando informações confidenciais e estiver **cri
|
||||
|
||||
Enumere as tabelas usando `.tables` e enumere as colunas das tabelas fazendo `.schema <table_name>`.
|
||||
|
||||
### Drozer (Exploit Activities, Content Providers e Services)
|
||||
### Drozer (Explorar Atividades Exportadas, Provedores de Conteúdo e Serviços)
|
||||
|
||||
Do [Drozer Docs](https://labs.mwrinfosecurity.com/assets/BlogFiles/mwri-drozer-user-guide-2015-03-23.pdf): **Drozer** permite que você **assuma o papel de um aplicativo Android** e interaja com outros aplicativos. Ele pode fazer **qualquer coisa que um aplicativo instalado pode fazer**, como fazer uso do mecanismo de Comunicação Inter-Processo (IPC) do Android e interagir com o sistema operacional subjacente.\
|
||||
Drozer é uma ferramenta útil para **explorar atividades exportadas, serviços exportados e Content Providers**, como você aprenderá nas seções seguintes.
|
||||
Drozer é uma ferramenta útil para **explorar atividades exportadas, serviços exportados e Provedores de Conteúdo**, como você aprenderá nas seções seguintes.
|
||||
|
||||
### Explorando Atividades Exportadas
|
||||
|
||||
@ -315,7 +316,7 @@ Além disso, lembre-se de que o código de uma atividade começa no método **`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ê poderia **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ê poderá **burlar** os mecanismos de **autenticação** **para acessá-la.**
|
||||
|
||||
[**Aprenda como explorar atividades exportadas com Drozer.**](drozer-tutorial/index.html#activities)
|
||||
|
||||
@ -421,7 +422,7 @@ Se **Flutter** estiver sendo usado, você precisa seguir as instruções nesta [
|
||||
|
||||
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 você tem 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 **análise dinâmica do MobSF** (explicado abaixo)
|
||||
@ -429,13 +430,13 @@ Quando o SSL Pinning é implementado, contorná-lo se torna necessário para ins
|
||||
|
||||
#### Procurando Vulnerabilidades Comuns na Web
|
||||
|
||||
É 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.
|
||||
É 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.
|
||||
|
||||
### Frida
|
||||
|
||||
[Frida](https://www.frida.re) é uma ferramenta de instrumentação dinâmica para desenvolvedores, engenheiros reversos e pesquisadores de segurança.\
|
||||
**Você pode acessar aplicativos em execução e conectar métodos em tempo de execução para mudar o comportamento, alterar valores, extrair valores, executar códigos diferentes...**\
|
||||
Se você quiser fazer pentesting em aplicativos Android, precisa saber como usar o Frida.
|
||||
Se você deseja fazer pentesting em aplicativos Android, precisa saber como usar o Frida.
|
||||
|
||||
- Aprenda a usar o Frida: [**Tutorial Frida**](frida-tutorial/index.html)
|
||||
- Algumas "GUI" para ações com Frida: [**https://github.com/m0bilesecurity/RMS-Runtime-Mobile-Security**](https://github.com/m0bilesecurity/RMS-Runtime-Mobile-Security)
|
||||
@ -470,7 +471,7 @@ Para acessar os dados dentro do keystore, você pode usar este script Frida: [ht
|
||||
```bash
|
||||
frida -U -f com.example.app -l frida-scripts/tracer-cipher.js
|
||||
```
|
||||
### **Bypass de Impressão Digital/Biométricos**
|
||||
### **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:**
|
||||
```bash
|
||||
@ -496,7 +497,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.
|
||||
|
||||
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
|
||||
|
||||
@ -533,43 +534,43 @@ docker run -it -p 8000:8000 opensecurity/mobile-security-framework-mobsf:latest
|
||||
Observe que o MobSF pode analisar **Android**(apk)**, IOS**(ipa) **e Windows**(apx) aplicações (_As aplicações do Windows devem ser analisadas a partir de um MobSF instalado em um host Windows_).\
|
||||
Além disso, se você criar um arquivo **ZIP** com o código-fonte de um aplicativo **Android** ou **IOS** (vá para a pasta raiz do aplicativo, selecione tudo e crie um arquivo ZIP), ele também poderá analisá-lo.
|
||||
|
||||
O MobSF também permite que você faça uma análise **diff/Compare** e integre o **VirusTotal** (você precisará definir sua chave de API em _MobSF/settings.py_ e habilitá-la: `VT_ENABLED = TRUE` `VT_API_KEY = <Sua chave de API>` `VT_UPLOAD = TRUE`). Você também pode definir `VT_UPLOAD` como `False`, então o **hash** será **enviado** em vez do arquivo.
|
||||
O MobSF também permite que você **diff/Compare** análises e integre **VirusTotal** (você precisará definir sua chave de API em _MobSF/settings.py_ e habilitá-la: `VT_ENABLED = TRUE` `VT_API_KEY = <Sua chave de API>` `VT_UPLOAD = TRUE`). Você também pode definir `VT_UPLOAD` como `False`, então o **hash** será **upload** em vez do arquivo.
|
||||
|
||||
### Análise Dinâmica Assistida com MobSF
|
||||
|
||||
**MobSF** também pode ser muito útil para **análise dinâmica** em **Android**, mas nesse caso você precisará instalar o MobSF e **genymotion** em seu host (uma VM ou Docker não funcionará). _Nota: Você precisa **iniciar primeiro uma VM no genymotion** e **depois o MobSF.**_\
|
||||
O **analisador dinâmico do MobSF** pode:
|
||||
|
||||
- **Dump de dados da aplicação** (URLs, logs, área de transferência, capturas de tela feitas por você, capturas de tela feitas por "**Exported Activity Tester**", e-mails, bancos de dados SQLite, arquivos XML e outros arquivos criados). Tudo isso é feito automaticamente, exceto pelas capturas de tela, você precisa pressionar quando quiser uma captura de tela ou precisa pressionar "**Exported Activity Tester**" para obter capturas de tela de todas as atividades exportadas.
|
||||
- **Dump application data** (URLs, logs, área de transferência, capturas de tela feitas por você, capturas de tela feitas por "**Exported Activity Tester**", e-mails, bancos de dados SQLite, arquivos XML e outros arquivos criados). Tudo isso é feito automaticamente, exceto pelas capturas de tela, você precisa pressionar quando quiser uma captura de tela ou precisa pressionar "**Exported Activity Tester**" para obter capturas de tela de todas as atividades exportadas.
|
||||
- Capturar **tráfego HTTPS**
|
||||
- Usar **Frida** para obter **informações em tempo de execução**
|
||||
|
||||
A partir das versões **Android > 5**, ele **iniciará automaticamente o Frida** e definirá configurações de **proxy** globais para **capturar** o tráfego. Ele capturará apenas o tráfego do aplicativo testado.
|
||||
A partir das versões **Android > 5**, ele **iniciará automaticamente o Frida** e definirá configurações de **proxy** globais para **capturar** tráfego. Ele capturará apenas o tráfego do aplicativo testado.
|
||||
|
||||
**Frida**
|
||||
|
||||
Por padrão, ele também usará alguns Scripts Frida para **burlar 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 **bypass 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.
|
||||
|
||||
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").\
|
||||
O MobSF também permite que você carregue seus próprios **scripts Frida** (para enviar os resultados dos seus scripts Frida para o MobSF, use a função `send()`). Ele também possui **vários scripts pré-escritos** que você pode carregar (você pode adicionar mais em `MobSF/DynamicAnalyzer/tools/frida_scripts/others/`), basta **selecioná-los**, pressionar "**Load**" e pressionar "**Start Instrumentation**" (você poderá ver os logs desses scripts dentro de "**Frida Live Logs**").
|
||||
O MobSF também permite que você carregue seus próprios **scripts Frida** (para enviar os resultados de seus scripts Frida para o MobSF, use a função `send()`). Ele também possui **vários scripts pré-escritos** que você pode carregar (você pode adicionar mais em `MobSF/DynamicAnalyzer/tools/frida_scripts/others/`), basta **selecioná-los**, pressionar "**Load**" e pressionar "**Start Instrumentation**" (você poderá ver os logs desses scripts dentro de "**Frida Live Logs**").
|
||||
|
||||
.png>)
|
||||
|
||||
Além disso, você tem algumas funcionalidades auxiliares do Frida:
|
||||
|
||||
- **Enumerar Classes Carregadas**: Ele imprimirá todas as classes carregadas
|
||||
- **Capturar Strings**: Ele imprimirá todas as strings capturadas enquanto usa o aplicativo (muito barulhento)
|
||||
- **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.
|
||||
- **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 Android.
|
||||
- **Enumerate Loaded Classes**: Ele imprimirá todas as classes carregadas
|
||||
- **Capture Strings**: Ele imprimirá todas as strings capturadas enquanto usa o aplicativo (muito barulhento)
|
||||
- **Capture String Comparisons**: Pode ser muito útil. Ele **mostrará as 2 strings sendo comparadas** e se o resultado foi Verdadeiro ou Falso.
|
||||
- **Enumerate Class Methods**: Coloque o nome da classe (como "java.io.File") e ele imprimirá todos os métodos da classe.
|
||||
- **Search Class Pattern**: Pesquisar classes por padrão
|
||||
- **Trace Class Methods**: **Trace** uma **classe inteira** (veja entradas e saídas de todos os métodos da classe). Lembre-se de que, por padrão, o MobSF traça vários métodos interessantes da API do 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**
|
||||
|
||||
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 oferece 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
|
||||
help
|
||||
shell ls
|
||||
@ -580,12 +581,12 @@ receivers
|
||||
```
|
||||
**Ferramentas HTTP**
|
||||
|
||||
Quando o tráfego http é capturado, você pode ver uma visão feia do tráfego capturado no "**HTTP(S) Traffic**" na parte inferior ou uma visão mais agradável no botão verde "**Start 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 "**Send to Fuzzer**" --> _selecione o endereço do proxy_ ([http://127.0.0.1:8080\\](http://127.0.0.1:8080)).
|
||||
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)).
|
||||
|
||||
Uma vez que você termine a análise dinâmica com MobSF, você pode pressionar "**Start 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.
|
||||
|
||||
> [!TIP]
|
||||
> [!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:
|
||||
>
|
||||
> ```
|
||||
@ -605,7 +606,7 @@ Esta é uma **ótima ferramenta para realizar análise estática com uma GUI**
|
||||
|
||||
### [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
|
||||
pip3 install --user qark # --user is only needed if not using a virtualenv
|
||||
qark --apk path/to/my.apk
|
||||
@ -647,7 +648,7 @@ Baixe a [última versão](https://github.com/vincentcox/StaCoAn/releases):
|
||||
```
|
||||
### [AndroBugs](https://github.com/AndroBugs/AndroBugs_Framework)
|
||||
|
||||
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.\
|
||||
AndroBugs Framework é um sistema de análise de vulnerabilidades Android que ajuda desenvolvedores ou hackers a encontrar potenciais vulnerabilidades de segurança em aplicações Android.\
|
||||
[Windows releases](https://github.com/AndroBugs/AndroBugs_Framework/releases)
|
||||
```
|
||||
python androbugs.py -f [APK file]
|
||||
@ -676,13 +677,13 @@ Ele é capaz de:
|
||||
- Extrair informações privadas do APK usando regexps.
|
||||
- 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)
|
||||
- Deofuscar APK via [apk-deguard.com](http://www.apk-deguard.com)
|
||||
- Deobfuscar APK via [apk-deguard.com](http://www.apk-deguard.com)
|
||||
|
||||
### Koodous
|
||||
|
||||
Ú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.
|
||||
|
||||
@ -690,11 +691,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.
|
||||
|
||||
ProGuard é distribuído como parte do SDK do Android e é executado ao construir a aplicação em modo de lançamento.
|
||||
ProGuard é distribuído como parte do SDK do Android e é executado ao construir o aplicativo em modo de lançamento.
|
||||
|
||||
### [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:
|
||||
|
||||
@ -706,17 +707,17 @@ Encontre um guia passo a passo para deofuscar o apk em [https://blog.lexfo.fr/de
|
||||
|
||||
### [DeGuard](http://apk-deguard.com)
|
||||
|
||||
**DeGuard reverte o processo de ofuscação realizado por ferramentas de ofuscação do Android. Isso permite inúmeras análises de segurança, incluindo inspeção de código e previsão de bibliotecas.**
|
||||
**DeGuard reverte o processo de ofuscação realizado por ferramentas de ofuscação do Android. Isso possibilita inúmeras análises de segurança, incluindo inspeção de código e previsão de bibliotecas.**
|
||||
|
||||
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)
|
||||
|
||||
É 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)
|
||||
|
||||
@ -730,9 +731,9 @@ APKiD fornece informações sobre **como um APK foi feito**. Ele identifica muit
|
||||
|
||||
### [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 em segurança e pesquisadores 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://appsecwiki.com/#/](https://appsecwiki.com/#/) É uma ótima lista de recursos
|
||||
@ -741,7 +742,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://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://github.com/abhi-r3v0/Adhrit](https://github.com/abhi-r3v0/Adhrit)
|
||||
|
@ -0,0 +1,145 @@
|
||||
# Abuso do Serviço de Acessibilidade do Android
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
## Visão Geral
|
||||
|
||||
`AccessibilityService` foi criado para ajudar usuários com deficiência a interagir com dispositivos Android. Infelizmente, as mesmas **APIs de automação poderosas** (navegação global, entrada de texto, despacho de gestos, janelas sobrepostas…) podem ser armadas por malware para obter **controle remoto completo** do dispositivo _sem privilégios de root_.
|
||||
|
||||
Trojans bancários modernos do Android e Trojans de Acesso Remoto (RATs) como **PlayPraetor, SpyNote, BrasDex, SOVA, ToxicPanda** e muitos outros seguem a mesma receita:
|
||||
|
||||
1. Enganar a vítima para habilitar um serviço de acessibilidade malicioso (a permissão *BIND_ACCESSIBILITY_SERVICE* é considerada "de alto risco" e requer uma ação explícita do usuário).
|
||||
2. Aproveitar o serviço para
|
||||
* capturar todos os eventos de UI e texto que aparecem na tela,
|
||||
* injetar gestos sintéticos (`dispatchGesture`) e ações globais (`performGlobalAction`) para automatizar qualquer tarefa que o operador desejar,
|
||||
* desenhar sobreposições em tela cheia sobre aplicativos legítimos usando o tipo de janela **TYPE_ACCESSIBILITY_OVERLAY** (sem prompt de `SYSTEM_ALERT_WINDOW`!),
|
||||
* conceder silenciosamente permissões adicionais em tempo de execução clicando nas caixas de diálogo do sistema em nome da vítima.
|
||||
3. Exfiltrar dados ou realizar **Fraude no Dispositivo (ODF)** em tempo real enquanto o usuário está olhando para uma tela perfeitamente normal.
|
||||
|
||||
---
|
||||
|
||||
## Solicitando a permissão
|
||||
```xml
|
||||
<!-- AndroidManifest.xml -->
|
||||
<service
|
||||
android:name="com.evil.rat.EvilService"
|
||||
android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE"
|
||||
android:exported="false">
|
||||
|
||||
<intent-filter>
|
||||
<action android:name="android.accessibilityservice.AccessibilityService" />
|
||||
</intent-filter>
|
||||
|
||||
<meta-data android:name="android.accessibilityservice"
|
||||
android:resource="@xml/evil_accessibility_config"/>
|
||||
</service>
|
||||
```
|
||||
O XML acompanhante define como o diálogo falso será exibido:
|
||||
```xml
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<accessibility-service xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:description="@string/service_description"
|
||||
android:accessibilityEventTypes="typeAllMask"
|
||||
android:accessibilityFeedbackType="feedbackGeneric"
|
||||
android:notificationTimeout="200"
|
||||
android:canPerformGestures="true"
|
||||
android:canRetrieveWindowContent="true"/>
|
||||
```
|
||||
---
|
||||
|
||||
## Primitivas de automação de UI remota
|
||||
```java
|
||||
public class EvilService extends AccessibilityService {
|
||||
@Override
|
||||
public void onAccessibilityEvent(AccessibilityEvent event) {
|
||||
// harvest text or detect foreground app change
|
||||
}
|
||||
|
||||
// Simulate HOME / BACK / RECENTS …
|
||||
private void navHome() { performGlobalAction(GLOBAL_ACTION_HOME); }
|
||||
private void navBack() { performGlobalAction(GLOBAL_ACTION_BACK); }
|
||||
private void openRecents() { performGlobalAction(GLOBAL_ACTION_RECENTS); }
|
||||
|
||||
// Generic tap / swipe
|
||||
public void tap(float x, float y) {
|
||||
Path p = new Path(); p.moveTo(x, y);
|
||||
GestureDescription.StrokeDescription s = new GestureDescription.StrokeDescription(p, 0, 50);
|
||||
dispatchGesture(new GestureDescription.Builder().addStroke(s).build(), null, null);
|
||||
}
|
||||
}
|
||||
```
|
||||
Com apenas essas duas APIs, um atacante pode:
|
||||
* Desbloquear a tela, abrir o aplicativo bancário, navegar na árvore da interface do usuário e enviar um formulário de transferência.
|
||||
* Aceitar todos os diálogos de permissão que aparecem.
|
||||
* Instalar/atualizar APKs extras via a intenção da Play Store.
|
||||
|
||||
---
|
||||
|
||||
## Padrões de abuso
|
||||
|
||||
### 1. Phishing por sobreposição (Coleta de credenciais)
|
||||
Um `WebView` transparente ou opaco é adicionado ao gerenciador de janelas:
|
||||
```java
|
||||
WindowManager.LayoutParams lp = new WindowManager.LayoutParams(
|
||||
MATCH_PARENT, MATCH_PARENT,
|
||||
TYPE_ACCESSIBILITY_OVERLAY, // ⬅ bypasses SYSTEM_ALERT_WINDOW
|
||||
FLAG_NOT_FOCUSABLE | FLAG_NOT_TOUCH_MODAL, // touches still reach the real app
|
||||
PixelFormat.TRANSLUCENT);
|
||||
wm.addView(phishingView, lp);
|
||||
```
|
||||
A vítima digita credenciais no formulário falso enquanto o aplicativo em segundo plano recebe os mesmos gestos – nenhum prompt suspeito de "desenhar sobre outros aplicativos" é exibido.
|
||||
|
||||
> Exemplo detalhado: a seção *Phishing de Sobreposição de Acessibilidade* na página de Tapjacking.
|
||||
|
||||
### 2. Automação de Fraude no Dispositivo
|
||||
Famílias de malware como **PlayPraetor** mantêm um canal WebSocket persistente onde o operador pode emitir comandos de alto nível (`init`, `update`, `alert_arr`, `report_list`, …). O serviço traduz esses comandos em gestos de baixo nível, alcançando transações não autorizadas em tempo real que facilmente contornam a autenticação multifatorial vinculada a esse dispositivo.
|
||||
|
||||
### 3. Streaming e Monitoramento de Tela
|
||||
Ao combinar a **MediaProjection API** com uma biblioteca cliente RTMP, o RAT pode transmitir o framebuffer ao vivo para `rtmp://<c2>:1935/live/<device_id>`, dando ao adversário perfeita consciência situacional enquanto o mecanismo de Acessibilidade controla a interface.
|
||||
|
||||
---
|
||||
|
||||
## PlayPraetor – fluxo de comando e controle
|
||||
|
||||
1. **Heartbeat HTTP(S)** – iterar sobre uma lista codificada até que um domínio responda `POST /app/searchPackageName` com o C2 ativo.
|
||||
2. **WebSocket (porta 8282)** – comandos JSON bidirecionais:
|
||||
* `update` – enviar novas conf/APKs
|
||||
* `alert_arr` – configurar modelos de sobreposição
|
||||
* `report_list` – enviar lista de nomes de pacotes alvo
|
||||
* `heartbeat_web` – manter ativo
|
||||
3. **RTMP (porta 1935)** – streaming de tela/vídeo ao vivo.
|
||||
4. **Exfiltração REST** –
|
||||
* `/app/saveDevice` (impressão digital)
|
||||
* `/app/saveContacts` | `/app/saveSms` | `/app/uploadImageBase64`
|
||||
* `/app/saveCardPwd` (credenciais bancárias)
|
||||
|
||||
O **AccessibilityService** é o mecanismo local que transforma esses comandos em nuvem em interações físicas.
|
||||
|
||||
---
|
||||
|
||||
## Detectando serviços de acessibilidade maliciosos
|
||||
|
||||
* `adb shell settings get secure enabled_accessibility_services`
|
||||
* Configurações → Acessibilidade → *Serviços baixados* – procure por aplicativos que **não** são do Google Play.
|
||||
* Soluções MDM / EMM podem impor `ACCESSIBILITY_ENFORCEMENT_DEFAULT_DENY` (Android 13+) para bloquear serviços instalados manualmente.
|
||||
* Analise os serviços em execução:
|
||||
```bash
|
||||
adb shell dumpsys accessibility | grep "Accessibility Service"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Recomendações de fortalecimento para desenvolvedores de aplicativos
|
||||
|
||||
* Marque visualizações sensíveis com `android:accessibilityDataSensitive="accessibilityDataPrivateYes"` (API 34+).
|
||||
* Combine `setFilterTouchesWhenObscured(true)` com `FLAG_SECURE` para evitar sequestro de toque/sobreposição.
|
||||
* Detecte sobreposições verificando `WindowManager.getDefaultDisplay().getFlags()` ou a API `ViewRootImpl`.
|
||||
* Recuse operar quando `Settings.canDrawOverlays()` **ou** um serviço de Acessibilidade não confiável estiver ativo.
|
||||
|
||||
---
|
||||
|
||||
## Referências
|
||||
* [A ameaça em evolução do PlayPraetor: Como atores de língua chinesa escalam globalmente um RAT Android](https://www.cleafy.com/cleafy-labs/playpraetors-evolving-threat-how-chinese-speaking-actors-globally-scale-an-android-rat)
|
||||
* [Documentação de acessibilidade do Android – Automatizando a interação da UI](https://developer.android.com/guide/topics/ui/accessibility/service)
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
@ -9,7 +9,7 @@ Na prática, isso **cega o usuário para que ele não saiba que está realmente
|
||||
|
||||
### Detecção
|
||||
|
||||
Para detectar aplicativos vulneráveis a este ataque, você deve procurar por **atividades exportadas** no manifesto do android (note que uma atividade com um intent-filter é automaticamente exportada por padrão). Uma vez que você tenha encontrado as atividades exportadas, **verifique se elas requerem alguma permissão**. Isso porque o **aplicativo malicioso também precisará dessa permissão**.
|
||||
Para detectar aplicativos vulneráveis a este ataque, você deve procurar por **atividades exportadas** no manifesto do android (note que uma atividade com um intent-filter é automaticamente exportada por padrão). Uma vez que você tenha encontrado as atividades exportadas, **verifique se elas requerem alguma permissão**. Isso ocorre porque o **aplicativo malicioso também precisará dessa permissão**.
|
||||
|
||||
Você também pode verificar a versão mínima do SDK do aplicativo, checando o valor de **`android:minSdkVersion`** no arquivo **`AndroidManifest.xml`**. Se o valor for **menor que 30**, o aplicativo é vulnerável ao Tapjacking.
|
||||
|
||||
@ -25,7 +25,7 @@ Se **`android:filterTouchesWhenObscured`** estiver definido como **`true`**, a `
|
||||
|
||||
#### **`setFilterTouchesWhenObscured`**
|
||||
|
||||
O atributo **`setFilterTouchesWhenObscured`** definido como true também pode prevenir a exploração dessa vulnerabilidade se a versão do Android for inferior.\
|
||||
O atributo **`setFilterTouchesWhenObscured`** definido como verdadeiro também pode prevenir a exploração dessa vulnerabilidade se a versão do Android for inferior.\
|
||||
Se definido como **`true`**, por exemplo, um botão pode ser automaticamente **desativado se estiver obscurecido**:
|
||||
```xml
|
||||
<Button android:text="Button"
|
||||
@ -94,13 +94,19 @@ wm.addView(phishingView, lp);
|
||||
### Detecção e Mitigação
|
||||
* Auditar a lista de aplicativos instalados com `adb shell pm list packages -3 -e BIND_ACCESSIBILITY_SERVICE`.
|
||||
* Do lado do aplicativo (banco / carteira):
|
||||
- Ativar **`android:accessibilityDataSensitive="accessibilityDataPrivateYes"`** (Android 14+) em visualizações sensíveis para bloquear serviços não da Play Store.
|
||||
- Habilitar **`android:accessibilityDataSensitive="accessibilityDataPrivateYes"`** (Android 14+) em visualizações sensíveis para bloquear serviços não da Play Store.
|
||||
- Combinar com `setFilterTouchesWhenObscured(true)` e `FLAG_SECURE`.
|
||||
* Dureza do sistema:
|
||||
- Desativar *Instalar de Fontes Desconhecidas* e *Acessibilidade para aplicativos não confiáveis*.
|
||||
- Aplicar PlayProtect e dispositivos atualizados.
|
||||
|
||||
Para detalhes adicionais sobre como aproveitar os Serviços de Acessibilidade para controle total remoto do dispositivo (por exemplo, PlayPraetor, SpyNote, etc.), veja:
|
||||
|
||||
{{#ref}}
|
||||
accessibility-services-abuse.md
|
||||
{{#endref}}
|
||||
|
||||
## Referências
|
||||
* [Bitsight – ToxicPanda Android Banking Malware 2025 Study](https://www.bitsight.com/blog/toxicpanda-android-banking-malware-2025-study)
|
||||
* [Bitsight – Estudo sobre Malware Bancário ToxicPanda Android 2025](https://www.bitsight.com/blog/toxicpanda-android-banking-malware-2025-study)
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
Loading…
x
Reference in New Issue
Block a user