Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
frida-interception-and-unpinning — Scripts Frida para reescrever aplicações móveis em tempo de execução e fazer MitM diretamente em todo o tráfego HTTPS. | Kitploit
Ferramentas/GitHubGitHub/httptoolkit/frida-interception-and-unpinning
Segurança AndroidSegurança iOSProxies Web e InterceptaçãoPentesting de Apps MóveisEngenharia ReversaTestes de PenetraçãoSegurança Móvel
GitHubhttptoolkit/frida-interception-and-unpinning

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

frida-interception-and-unpinning

Scripts Frida para reescrever aplicações móveis em tempo de execução e fazer MitM diretamente em todo o tráfego HTTPS.

Ver RepositórioSite
2.3k292há 2 diasRevisado pelo Kitploit

Scripts Frida de Interceptação Móvel Funded by NLnet - NGI Zero Entrust

Parte do HTTP Toolkit: ferramentas poderosas para criar, testar e depurar HTTP(S)

Este repositório contém scripts Frida projetados para fazer tudo o que é necessário para a interceptação HTTPS MitM totalmente automatizada em dispositivos móveis.

Este conjunto de scripts pode ser usado em conjunto, para lidar com a interceptação, gerenciar a confiança de certificados e desativar verificações de certificate pinning e transparência, para interceptação MitM de tráfego HTTP(S) no Android e iOS, ou podem ser usados e ajustados de forma independente para fazer hook apenas em recursos específicos.

Os scripts podem lidar automaticamente com:

  • Redirecionamento de tráfego para um proxy HTTP(S) - modificando as configurações do sistema e redirecionando diretamente todas as conexões de socket.
  • Injeção de um certificado CA específico nos trust stores do sistema para que sejam confiáveis nas conexões por padrão.
  • Aplicação de patches em muitas (todas?) ferramentas conhecidas de certificate pinning e transparência de certificados, para permitir a interceptação pelo seu certificado CA mesmo quando isso está ativamente bloqueado.
  • No Android, como fallback: detecção automática de falhas restantes de pinning, para tentar aplicar patches automáticos em certificate pinning ofuscado (em apps totalmente ofuscados, a primeira solicitação pode falhar, mas isso acionará patches adicionais para que todas as solicitações subsequentes funcionem corretamente).
  • Desativação de muitas detecções comuns de root e jailbreak.
  • Bloqueio da maioria das conexões HTTP/3 (todo UDP para a porta 443), cuja interceptação pode ser inconveniente, garantindo que os apps usem HTTP/2 ou HTTP/1 como fallback.

Guia de Introdução ao Android

  1. Inicie seu proxy MitM (ex.: HTTP Toolkit) e configure seu dispositivo Android com root ou emulador, conectado ao ADB.
  2. Encontre a porta do seu proxy MitM (ex.: 8000) e o certificado CA dele em formato PEM
    • O certificado CA deve começar com -----BEGIN CERTIFICATE-----. Você pode abri-lo com um editor de texto para ver e extrair esse conteúdo.
    • No HTTP Toolkit, ambos os detalhes podem ser encontrados na opção 'Anything' na página Intercept.
  3. Abra o config.js e adicione esses detalhes:
    • CERT_PEM: seu certificado CA em formato PEM.
    • PROXY_PORT: a porta do proxy
    • PROXY_HOST: o endereço do seu proxy, na perspectiva do seu dispositivo (ou use adb reverse tcp:$PORT tcp:$PORT para encaminhar a porta via ADB e use 127.0.0.1 como host)
  4. Instale e inicie o Frida no seu dispositivo
    • Os passos aqui podem depender do seu dispositivo e configuração específicos.
    • Por exemplo: baixe o frida-server relevante do github.com/frida/frida, extraia-o, faça adb push para o seu dispositivo e então execute-o com os seguintes 4 comandos: , , , .

Guia de Introdução ao iOS

  1. Inicie seu proxy MitM (ex.: HTTP Toolkit) e configure seu dispositivo iOS com jailbreak, conectado ao seu computador.
  2. Encontre a porta do seu proxy MitM (ex.: 8000) e o certificado CA dele em formato PEM
    • O certificado CA deve começar com -----BEGIN CERTIFICATE-----. Você pode abri-lo com um editor de texto para ver e extrair esse conteúdo.
    • No HTTP Toolkit, ambos os detalhes podem ser encontrados na opção 'Anything' na página Intercept.
  3. Abra o config.js e adicione esses detalhes:
    • CERT_PEM: seu certificado CA em formato PEM.
    • PROXY_PORT: a porta do proxy
    • PROXY_HOST: o endereço do seu proxy, na perspectiva do seu dispositivo
  4. Instale e inicie o Frida no seu dispositivo
    • Os passos aqui podem depender do seu dispositivo e configuração específicos, mas geralmente isso está disponível via Cydia/Sileo etc. usando https://build.frida.re como fonte de pacotes.
    • Certifique-se de que consegue executar frida-ps -Uai no seu computador para confirmar que está funcionando corretamente.
  5. Encontre o id do app de seu interesse via frida-ps -Uai (para um teste rápido, tente usar github.com/httptoolkit/ios-ssl-pinning-demo - o id é )

Os Scripts

Os comandos acima usam todos os scripts relevantes, mas você geralmente pode usar qualquer subconjunto que preferir, embora em quase todos os casos você vá querer incluir config.js como o primeiro script (ele define algumas variáveis que são usadas por outros scripts).

Por exemplo, para fazer unpinning sozinho no Android, quando a configuração de proxy e certificados é tratada em outro lugar e sem fallbacks de ofuscação, você poderia simplesmente executar:

root@kitploit:~
frida -U \
    -l ./config.js \
    -l ./android/android-certificate-unpinning.js
    -f $PACKAGE_ID

Cada script inclui documentação detalhada sobre o que faz e como funciona em uma grande seção de comentários no topo. Os scripts são:

  • config.js

    Ele define as variáveis usadas por outros scripts:

    • CERT_PEM - o certificado CA extra para confiar, em formato PEM
    • PROXY_HOST - o endereço IP (IPv4) do servidor proxy a ser usado (não é necessário se você estiver apenas fazendo unpinning)
    • PROXY_PORT - a porta do servidor proxy a ser usada (não é necessária se você estiver apenas fazendo unpinning)
    • DEBUG_MODE - o padrão é false, mas mudar isso para true habilitará muita saída extra que pode ser útil para depurar e fazer engenharia reversa de qualquer problema.
    • BLOCK_HTTP3 - o padrão é true, o que bloqueia HTTP/3 descartando todas as conexões UDP para a porta 443.

    Ele deve ser listado na linha de comando antes de qualquer outro script.

  • native-connect-hook.js

    Captura todo o tráfego de rede diretamente, roteando todas as conexões para o host e a porta do proxy configurados.

    Este é um hook de baixo nível que se aplica a todas as conexões de rede. Isso garante que todas as conexões sejam redirecionadas à força para o servidor proxy de destino, até mesmo aquelas que ignoram as configurações de proxy ou fazem outras conexões de socket brutas, e também bloqueia conexões HTTP/3 se estiver habilitado.

Estes scripts fazem parte de um projeto mais amplo do HTTP Toolkit, financiado pelo Fundo NGI Zero Entrust, estabelecido pela NLnet com apoio financeiro do programa Next Generation Internet da Comissão Europeia. Saiba mais na página do projeto da NLnet.

Logotipo da fundação NLnet Logotipo NGI Zero Entrust

Baixar ferramenta
adb shell
su
chmod +x /.../frida-server
/.../frida-server
  • Se tiver problemas, lembre-se de verificar se o dispositivo está ligado e conectado (usando adb devices) antes de executar comandos. Observe que o Frida só será executado no dispositivo como root, que é o que o su fornece no exemplo acima, quando executado em um dispositivo com root. Para verificar se você é root após executar su ou similar, verifique se whoami no shell imprime root.
  • Encontre o package id do app de seu interesse (para um teste rápido, tente usar github.com/httptoolkit/android-ssl-pinning-demo - o package id é tech.httptoolkit.pinning_demo)
  • Use o Frida para iniciar o app de seu interesse com os scripts injetados (começando com config.js). Quais scripts usar depende de você, mas para Android um bom comando para começar é:
    root@kitploit:~
    frida -U \
        -l ./config.js \
        -l ./native-connect-hook.js \
        -l ./native-tls-hook.js \
        -l ./android/android-proxy-override.js \
        -l ./android/android-system-certificate-injection.js \
        -l ./android/android-certificate-unpinning.js \
        -l ./android/android-certificate-unpinning-fallback.js \
        -l ./android/android-disable-root-detection.js \
        -f $PACKAGE_ID
    
  • Explore, examine e modifique todo o tráfego de seu interesse! Se tiver algum problema, por favor abra uma issue e ajude a tornar esses scripts ainda melhores.
  • com.httptoolkit.ios-pinning-demo
  • Use o Frida para iniciar o app de seu interesse com os scripts injetados (começando com config.js). Quais scripts usar depende de você, mas para iOS um bom comando para começar é:
    root@kitploit:~
    frida -U \
        -l ./config.js \
        -l ./ios/ios-connect-hook.js \
        -l ./ios/ios-disable-detection.js \
        -l ./native-tls-hook.js \
        -l ./native-connect-hook.js \
        -f $APP_ID
    
  • Explore, examine e modifique todo o tráfego de seu interesse! Se tiver algum problema, por favor abra uma issue e ajude a tornar esses scripts ainda melhores.
  • Este hook se aplica à libc e funciona para Android, Linux, iOS e muitos outros ambientes relacionados.

  • native-tls-hook.js

    Modifica toda a validação TLS para bibliotecas baseadas em BoringSSL para confiar no seu certificado CA configurado.

    Notavelmente, ele faz hook nas APIs BoringSSL integradas do iOS, que é a forma normal como o iOS lida com a validação de certificados TLS (portanto, isso é suficiente para quase toda a interceptação HTTPS no iOS), mas também é usado em alguns outros casos tanto no iOS quanto no Android.

    Isso efetivamente faz com que sua CA seja confiável para todos os certificados e desativa todo certificate pinning, transparência de certificados e outras restrições para a sua CA. Observe que, ao contrário de muitos outros hooks do Frida em outros lugares, isso não desativa completamente a validação TLS (o que é muito inseguro). Em vez disso, ele substitui a validação para garantir que todas as conexões que usam seu certificado CA específico sejam confiáveis, sem afrouxar a validação para permitir a interceptação por terceiros.

  • android/

    • android-proxy-override.js

      Substitui as configurações de proxy do Android para o app de destino, garantindo que todo o tráfego bem-comportado seja redirecionado via servidor proxy e interceptado.

    • android-system-certificate-injection.js

      Modifica as APIs nativas do Android para garantir que todos os trust stores confiem no seu certificado CA extra por padrão, permitindo que o tráfego TLS criptografado seja capturado.

    • android-certificate-unpinning.js

      Modifica ou desativa muitas técnicas comuns conhecidas para restrições adicionais de certificados, incluindo certificate pinning (aceitar apenas um pequeno conjunto de certificados reconhecidos, em vez de todos os certificados confiáveis no sistema) e transparência de certificados (validar que todos os certificados usados foram registrados em logs públicos de certificados).

    • android-certificate-unpinning-fallback.js

      Detecta falhas de validação de certificados não tratadas e tenta lidar com casos desconhecidos e não reconhecidos com patches de fallback gerados automaticamente. Isso é mais experimental e pode ser ligeiramente imprevisível, mas é muito útil para casos ofuscados e, em geral, corrigirá problemas de pinning (após uma falha inicial) ou pelo menos destacará código para engenharia reversa adicional na saída do log do Frida. Este script compartilha alguma lógica com android-certificate-unpinning.js e não pode ser usado de forma independente - se você quiser usar este script, precisará incluir também o script de unpinning sem fallback.

    • android-disable-root-detection.js

      Desativa verificações comuns de detecção de root nas camadas nativa e Java para impedir a detecção de dispositivos Android com root.

      Este script intercepta acesso ao sistema de arquivos, comandos de shell e consultas de pacotes por indicadores conhecidos de root (como su, Magisk e apps relacionados) e falsifica propriedades importantes do sistema (ro.secure, ro.debuggable, etc.) para simular um ambiente de produção.

      Ele bloqueia comportamentos suspeitos, como verificações de existência de arquivos e execução de comandos de shell, ajudando a evitar a detecção em apps que usam verificações de root padrão e avançadas.

    • android-disable-flutter-certificate-pinning.js

      Garante que aplicativos baseados em Flutter (que geralmente ignoram a configuração de certificados do sistema) confiem no seu certificado CA, mesmo na maioria dos casos de certificate pinning explícito. Este script permanece experimental por enquanto.

  • ios/

    • ios-connect-hook.js

      Captura todo o tráfego de rede do iOS diretamente, roteando todas as conexões para o host e a porta do proxy configurados.

      Este é um hook de baixo nível que se aplica a todas as conexões de rede. Isso garante que todas as conexões sejam redirecionadas à força para o servidor proxy de destino, até mesmo aquelas que ignoram as configurações de proxy ou fazem outras conexões de socket brutas.

    • ios-disable-detection.js

      Desativa a detecção de jailbreak do JailMonkey.

  • utilities/test-ip-connectivity.js

    Você provavelmente não vai querer usar isso normalmente como parte da interceptação em si, mas pode ser muito útil como parte da configuração.

    Este script permite configurar uma lista de endereços IP possíveis e uma porta de destino, fazer o processo testar cada endereço e enviar uma mensagem ao cliente do Frida para o primeiro endereço acessível fornecido. Isso pode ser útil para processos de configuração automatizados, se você não souber qual endereço IP é melhor usar para acessar o servidor proxy (seu computador) a partir do dispositivo de destino (seu telefone).