Pular para o conteúdo
Skillpedia
Diversos35 mil · #5746

exploiting-insecure-data-storage-in-mobile

Ajuda seu agente a encontrar e explorar vulnerabilidades de armazenamento de dados inseguro em aplicativos móveis.

O que ela faz

Esta ferramenta verifica se aplicativos de celular guardam informações sensíveis de forma insegura no seu dispositivo. Ela procura por senhas, dados pessoais ou chaves de acesso que podem estar expostos em arquivos ou bancos de dados.

Quando usar

  • ✓Quando você é um testador de segurança e quer ver se um app guarda dados de forma protegida.
  • ✓Ao testar se senhas ou tokens de acesso podem ser roubados de um aplicativo.
  • ✓Para verificar se informações pessoais (como CPF ou cartão de crédito) estão armazenadas sem criptografia.

Exemplo do que pedir para a IA

“Verifique se o aplicativo X guarda senhas de forma insegura no Android.”

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/exploiting-insecure-data-storage-in-mobile/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/exploiting-insecure-data-storage-in-mobile/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

A ferramenta procura por arquivos de configuração (como SharedPreferences no Android) e bancos de dados (como SQLite) onde o aplicativo armazena informações. Ela verifica se esses dados estão em texto simples, sem criptografia, o que os tornaria fáceis de serem lidos por alguém com acesso ao dispositivo.

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 exploiting-insecure-data-storage-in-mobile

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/exploiting-insecure-data-storage-in-mobile/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.

Explorando o Armazenamento Inseguro de Dados em Dispositivos Móveis

Quando Usar

Use esta habilidade quando:

  • Avaliar se aplicativos móveis armazenam dados sensíveis de forma segura no sistema de arquivos do dispositivo
  • Testar vazamento de credenciais através de SharedPreferences, bancos de dados SQLite ou plists
  • Avaliar a implementação de keychain/keystore para atributos de controle de acesso adequados
  • Realizar avaliação de segurança de dados em repouso durante testes de penetração em dispositivos móveis

Não use esta habilidade em dispositivos de usuários em produção sem autorização -- técnicas de extração de dados exigem acesso físico ou privilégios de root/jailbreak.

Pré-requisitos

  • Dispositivo Android com root ou emulador com acesso ADB
  • Dispositivo iOS com jailbreak e acesso SSH ou IPA com patch do Objection
  • ADB (Android Debug Bridge) para acesso ao sistema de arquivos Android
  • SQLite3 CLI para inspeção de banco de dados
  • Frida/Objection para extração de dados em tempo de execução
  • Aplicativo alvo instalado e em uso (logado, dados em cache)

Aviso Legal: Esta habilidade destina-se apenas a testes de segurança autorizados e fins educacionais. O uso não autorizado contra sistemas que você não possui ou para os quais não tem permissão escrita para testar é ilegal e pode violar leis de fraude computacional.

Fluxo de Trabalho

Passo 1: Mapear Locais de Armazenamento de Dados do Aplicativo

Caminhos de armazenamento Android:

# Internal storage (app-private, requires root)
/data/data/<package_name>/
├── shared_prefs/      # SharedPreferences XML files
├── databases/         # SQLite databases
├── files/             # General files
├── cache/             # Cached data
├── lib/               # Native libraries
└── app_webview/       # WebView data

# External storage (world-readable on older Android)
/sdcard/Android/data/<package_name>/

# Check for world-readable files
adb shell run-as <package_name> ls -la /data/data/<package_name>/

Caminhos de armazenamento iOS:

# App sandbox (accessible via SSH on jailbroken device)
/var/mobile/Containers/Data/Application/<UUID>/
├── Documents/         # User data, backed up by default
├── Library/
│   ├── Preferences/   # NSUserDefaults plists
│   ├── Caches/        # Cache data
│   └── Application Support/
└── tmp/               # Temporary files

Passo 2: Extrair e Analisar SharedPreferences (Android)

# Pull SharedPreferences files
adb shell run-as <package_name> cat shared_prefs/*.xml

# Or on rooted device
adb pull /data/data/<package_name>/shared_prefs/ ./shared_prefs/

# Search for sensitive data
grep -ri "password\|token\|secret\|key\|session\|auth\|cookie" shared_prefs/

Padrões comuns de armazenamento inseguro:

<!-- Plaintext credentials -->
<string name="user_password">mysecretpass123</string>
<string name="auth_token">eyJhbGciOiJIUzI1NiIs...</string>
<string name="api_key">sk-live-abc123def456</string>

<!-- Sensitive PII -->
<string name="user_ssn">123-45-6789</string>
<string name="credit_card">4111111111111111</string>

Passo 3: Analisar Bancos de Dados SQLite

# Pull databases
adb pull /data/data/<package_name>/databases/ ./databases/

# Open and inspect
sqlite3 databases/app.db
.tables
.schema users
SELECT * FROM users;
SELECT * FROM sessions;
SELECT * FROM tokens;

# Search all tables for sensitive columns
sqlite3 databases/app.db ".dump" | grep -i "password\|token\|secret\|credit"

Verificar bancos de dados SQLCipher sem criptografia:

# If database opens without password, it's unencrypted
sqlite3 databases/app.db "SELECT count(*) FROM sqlite_master;"
# Success = unencrypted (vulnerability)

Passo 4: Inspecionar Armazenamento do iOS Keychain

# Using Objection
objection --gadget com.target.app explore
ios keychain dump

# Check protection class attributes
# kSecAttrAccessibleWhenUnlocked - OK for most data
# kSecAttrAccessibleAlways - VULNERABLE: accessible even when locked
# kSecAttrAccessibleAfterFirstUnlock - acceptable for background apps

Passo 5: Avaliar Exposição de Armazenamento Externo e Backup

Android:

# Check if backup is enabled
aapt dump badging target.apk | grep -i "allowBackup"
# android:allowBackup="true" = vulnerability

# Extract backup data
adb backup -f backup.ab -apk <package_name>
java -jar abe.jar unpack backup.ab backup.tar
tar xvf backup.tar
# Inspect extracted data for sensitive information

# Check external storage
adb shell ls -la /sdcard/Android/data/<package_name>/

iOS:

# Verificar exclusão de backup
# Arquivos em Documents/ são incluídos no backup por padrão
# Verificar o atributo NSURLIsExcludedFromBackupKey
objection --gadget com.target.app explore

…
Perguntas frequentes

O que são SharedPreferences no Android?

São arquivos simples onde o Android guarda pequenas quantidades de dados, como configurações ou tokens. Se usados para guardar senhas sem criptografia, são um risco de segurança.

O que é Keychain no iOS?

É um local seguro no iPhone/iPad para guardar senhas e chaves de acesso. Se o aplicativo não usar as proteções corretas, essas informações podem ser acessadas indevidamente.

Preciso de acesso especial ao celular para usar esta ferramenta?

Sim, geralmente é necessário ter acesso de 'root' no Android ou 'jailbreak' no iOS, ou acesso físico ao dispositivo, para poder inspecionar os arquivos onde os dados estão guardados.

Detalhes

Descrição original do autor

Identifies and exploits insecure local data storage vulnerabilities in Android and iOS mobile applications including unencrypted databases, world-readable files, insecure SharedPreferences, plaintext credential storage, and improper keychain/keystore usage. Use when performing mobile penetration testing focused on OWASP M9 (Insecure Data Storage) or assessing compliance with MASVS-STORAGE requirem

repo: mukul975/Anthropic-Cybersecurity-Skills

Popularidade

Estrelas no GitHub
35 mil
Posição no ranking
#5746
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