Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
frida-interception-and-unpinning — Script Frida per riscrivere le applicazioni mobili in fase di esecuzione per intercettare direttamente (MitM) tutto il traffico HTTPS | Kitploit
Strumenti/GitHubGitHub/httptoolkit/frida-interception-and-unpinning
Sicurezza AndroidSicurezza iOSProxy Web e IntercettazionePentesting di App MobiliReverse EngineeringPenetration TestingSicurezza Mobile
GitHubhttptoolkit/frida-interception-and-unpinning

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

frida-interception-and-unpinning

Script Frida per riscrivere le applicazioni mobili in fase di esecuzione per intercettare direttamente (MitM) tutto il traffico HTTPS

Vedi RepositorySito web
2.3k2922 giorni faRevisionato da Kitploit

Script di Intercettazione Mobile Frida Funded by NLnet - NGI Zero Entrust

Parte di HTTP Toolkit: strumenti potenti per creare, testare e fare debug di HTTP(S)

Questa repository contiene script Frida progettati per fare tutto il necessario per l'intercettazione HTTPS MitM completamente automatizzata su dispositivi mobili.

Questo set di script può essere usato tutto insieme, per gestire l'intercettazione, gestire la fiducia dei certificati e disabilitare il certificate pinning e i controlli di trasparenza, per l'intercettazione MitM del traffico HTTP(S) su Android e iOS, oppure possono essere usati e modificati indipendentemente per hookare solo funzionalità specifiche.

Gli script possono gestire automaticamente:

  • Reindirizzamento del traffico verso un proxy HTTP(S) - modificando sia le impostazioni di sistema che reindirizzando direttamente tutte le connessioni socket.
  • Iniezione di un dato certificato CA nei trust store di sistema, così che sia considerato attendibile di default nelle connessioni.
  • Patching di molti (tutti?) noti strumenti di certificate pinning e certificate transparency, per consentire l'intercettazione tramite il tuo certificato CA anche quando questa è attivamente bloccata.
  • Su Android, come fallback: auto-rilevamento dei rimanenti fallimenti di pinning, per tentare l'auto-patching del certificate pinning offuscato (nelle app completamente offuscate, la prima richiesta potrebbe fallire, ma questo innescherà un patching aggiuntivo così che tutte le richieste successive funzionino correttamente).
  • Disabilitazione di molti comuni rilevamenti di root e jailbreak.
  • Blocco della maggior parte delle connessioni HTTP/3 (tutto il traffico UDP verso la porta 443), che potrebbero essere scomode da intercettare, garantendo che le app ripieghino su HTTP/2 o HTTP/1.

Guida introduttiva per Android

  1. Avvia il tuo proxy MitM (es. HTTP Toolkit) e configura il tuo dispositivo Android rooted o emulatore, connesso ad ADB.
  2. Trova la porta del tuo proxy MitM (es. 8000) e il suo certificato CA in formato PEM
    • Il certificato CA dovrebbe iniziare con -----BEGIN CERTIFICATE-----. Puoi aprirlo con un editor di testo per vedere ed estrarre questo contenuto.
    • In HTTP Toolkit, entrambi i dettagli si trovano nell'opzione 'Anything' nella pagina Intercept.
  3. Apri config.js e aggiungi questi dettagli:
    • CERT_PEM: il tuo certificato CA in formato PEM.
    • PROXY_PORT: la porta del proxy
    • PROXY_HOST: l'indirizzo del tuo proxy, dalla prospettiva del tuo dispositivo (oppure usa adb reverse tcp:$PORT tcp:$PORT per inoltrare la porta tramite ADB e usa 127.0.0.1 come host)
  4. Installa e avvia Frida sul tuo dispositivo
    • I passaggi qui possono dipendere dal tuo specifico dispositivo e configurazione.
    • Ad esempio: scarica il frida-server pertinente da github.com/frida/frida, estrailo, esegui adb push sul tuo dispositivo e poi eseguilo con i seguenti 4 comandi: , , , .

Guida introduttiva per iOS

  1. Avvia il tuo proxy MitM (es. HTTP Toolkit) e configura il tuo dispositivo iOS jailbroken, connesso al tuo computer.
  2. Trova la porta del tuo proxy MitM (es. 8000) e il suo certificato CA in formato PEM
    • Il certificato CA dovrebbe iniziare con -----BEGIN CERTIFICATE-----. Puoi aprirlo con un editor di testo per vedere ed estrarre questo contenuto.
    • In HTTP Toolkit, entrambi i dettagli si trovano nell'opzione 'Anything' nella pagina Intercept.
  3. Apri config.js e aggiungi questi dettagli:
    • CERT_PEM: il tuo certificato CA in formato PEM.
    • PROXY_PORT: la porta del proxy
    • PROXY_HOST: l'indirizzo del tuo proxy, dalla prospettiva del tuo dispositivo
  4. Installa e avvia Frida sul tuo dispositivo
    • I passaggi qui possono dipendere dal tuo specifico dispositivo e configurazione, ma questo è generalmente disponibile tramite Cydia/Sileo ecc. usando https://build.frida.re come fonte del pacchetto.
    • Assicurati di poter eseguire frida-ps -Uai sul tuo computer per confermare che tutto funzioni correttamente.
  5. Trova l'id per l'app che ti interessa tramite frida-ps -Uai (per un test rapido, prova a usare github.com/httptoolkit/ios-ssl-pinning-demo - l'id è )

Gli Script

I comandi sopra usano tutti gli script pertinenti, ma in generale puoi usare qualsiasi sottoinsieme desideri, anche se in quasi tutti i casi vorrai includere config.js come primo script (questo definisce alcune variabili usate dagli altri script).

Ad esempio, per fare solo l'unpinning su Android, gestendo altrove la configurazione di proxy e certificati e senza fallback per l'offuscamento, potresti semplicemente eseguire:

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

Ogni script include una documentazione dettagliata su cosa fa e come funziona in una grande sezione di commenti all'inizio. Gli script sono:

  • config.js

    Questo definisce le variabili usate dagli altri script:

    • CERT_PEM - il certificato CA aggiuntivo da considerare attendibile, in formato PEM
    • PROXY_HOST - l'indirizzo IP (IPv4) del server proxy da usare (non richiesto se stai solo facendo unpinning)
    • PROXY_PORT - la porta del server proxy da usare (non richiesto se stai solo facendo unpinning)
    • DEBUG_MODE - il valore predefinito è false, ma impostarlo a true abiliterà un sacco di output aggiuntivo che può essere utile per il debug e il reverse engineering di eventuali problemi.
    • BLOCK_HTTP3 - il valore predefinito è true, che blocca HTTP/3 eliminando tutte le connessioni UDP verso la porta 443.

    Questo dovrebbe essere elencato nella riga di comando prima di qualsiasi altro script.

  • native-connect-hook.js

    Cattura direttamente tutto il traffico di rete, instradando tutte le connessioni verso l'host e la porta del proxy configurati.

    Questo è un hook di basso livello che si applica a le connessioni di rete. Ciò garantisce che tutte le connessioni vengano forzatamente reindirizzate al server proxy di destinazione, anche quelle che ignorano le impostazioni del proxy o effettuano altre connessioni socket grezze, e blocca anche le connessioni HTTP/3 se abilitato.

Questi script fanno parte di un progetto HTTP Toolkit più ampio, finanziati tramite il NGI Zero Entrust Fund, istituito da NLnet con il supporto finanziario del programma Next Generation Internet della Commissione Europea. Scopri di più sulla pagina del progetto NLnet.

NLnet foundation logo NGI Zero Entrust Logo

Scarica lo strumento
adb shell
su
chmod +x /.../frida-server
/.../frida-server
  • Se hai problemi, ricorda di verificare che il dispositivo sia acceso e connesso (usando adb devices) prima di eseguire i comandi. Nota che Frida verrà eseguito sul dispositivo solo come root, che è ciò che su fornisce nell'esempio precedente, quando eseguito su un dispositivo rooted. Per verificare di essere root dopo aver eseguito su o simili, controlla che l'esecuzione di whoami nella shell stampi root.
  • Trova il package id per l'app che ti interessa (per un test rapido, prova a usare github.com/httptoolkit/android-ssl-pinning-demo - il package id è tech.httptoolkit.pinning_demo)
  • Usa Frida per avviare l'app che ti interessa con gli script iniettati (a partire da config.js). Quali script usare dipende da te, ma per Android un buon comando con cui iniziare è:
    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
    
  • Esplora, esamina e modifica tutto il traffico che ti interessa! Se hai problemi, apri una issue e aiuta a rendere questi script ancora migliori.
  • com.httptoolkit.ios-pinning-demo
  • Usa Frida per avviare l'app che ti interessa con gli script iniettati (a partire da config.js). Quali script usare dipende da te, ma per iOS un buon comando con cui iniziare è:
    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
    
  • Esplora, esamina e modifica tutto il traffico che ti interessa! Se hai problemi, apri una issue e aiuta a rendere questi script ancora migliori.
  • tutte

    Questo hook si applica a libc e funziona per Android, Linux, iOS e molti altri ambienti correlati.

  • native-tls-hook.js

    Modifica tutta la validazione TLS per le librerie basate su BoringSSL affinché considerino attendibile il tuo certificato CA configurato.

    In particolare, questo hooka le API BoringSSL integrate su iOS, che è il modo normale con cui iOS gestisce la validazione dei certificati TLS (quindi questo è sufficiente per quasi tutta l'intercettazione HTTPS su iOS), ma è usato anche in alcuni altri casi sia su iOS che su Android.

    Questo di fatto considera attendibile la tua CA per tutti i certificati e disabilita tutto il certificate pinning, la certificate transparency e altre restrizioni per la tua CA. Nota che, a differenza di molti altri hook Frida altrove, questo non disabilita completamente la validazione TLS (che è molto insicura). Invece, sovrascrive la validazione per garantire che tutte le connessioni che usano il tuo specifico certificato CA siano considerate attendibili, senza allentare la validazione per consentire l'intercettazione da parte di terzi.

  • android/

    • android-proxy-override.js

      Sovrascrive le impostazioni del proxy Android per l'app di destinazione, garantendo che tutto il traffico conforme venga reindirizzato tramite il server proxy e intercettato.

    • android-system-certificate-injection.js

      Modifica le API native di Android per garantire che tutti i trust store considerino attendibile di default il tuo certificato CA aggiuntivo, consentendo di catturare il traffico TLS cifrato.

    • android-certificate-unpinning.js

      Modifica o disabilita molte comuni tecniche note per ulteriori restrizioni sui certificati, inclusi il certificate pinning (accettare solo un piccolo insieme di certificati riconosciuti, piuttosto che tutti i certificati considerati attendibili dal sistema) e la certificate transparency (validare che tutti i certificati usati siano stati registrati nei log pubblici dei certificati).

    • android-certificate-unpinning-fallback.js

      Rileva i fallimenti di validazione dei certificati non gestiti e tenta di gestire casi sconosciuti non riconosciuti con patch di fallback generate automaticamente. Questo è più sperimentale e potrebbe essere leggermente imprevedibile, ma è molto utile per i casi offuscati e, in generale, risolverà i problemi di pinning (dopo un primo fallimento) o almeno evidenzierà il codice per ulteriore reverse engineering nell'output di log di Frida. Questo script condivide parte della logica con android-certificate-unpinning.js e non può essere usato da solo - se vuoi usare questo script, dovrai includere anche lo script di unpinning non-fallback.

    • android-disable-root-detection.js

      Disabilita i comuni controlli di rilevamento root attraverso i layer nativi e Java per prevenire il rilevamento di dispositivi Android rooted.

      Questo script intercetta l'accesso al file system, i comandi shell e le ricerche di pacchetti per indicatori di root noti (come su, Magisk e app correlate), e falsifica proprietà di sistema chiave (ro.secure, ro.debuggable, ecc.) per simulare un ambiente di produzione.

      Blocca comportamenti sospetti come i controlli di esistenza dei file e l'esecuzione di comandi shell, aiutando a eludere il rilevamento nelle app che utilizzano sia controlli root standard che avanzati.

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

      Garantisce che le applicazioni basate su Flutter (che generalmente ignorano la configurazione dei certificati di sistema) considerino attendibile il tuo certificato CA, anche nella maggior parte dei casi di certificate pinning esplicito. Questo script rimane sperimentale per ora.

  • ios/

    • ios-connect-hook.js

      Cattura direttamente tutto il traffico di rete iOS, instradando tutte le connessioni verso l'host e la porta del proxy configurati.

      Questo è un hook di basso livello che si applica a tutte le connessioni di rete. Ciò garantisce che tutte le connessioni vengano forzatamente reindirizzate al server proxy di destinazione, anche quelle che ignorano le impostazioni del proxy o effettuano altre connessioni socket grezze.

    • ios-disable-detection.js

      Disabilita il rilevamento del jailbreak di JailMonkey.

  • utilities/test-ip-connectivity.js

    Probabilmente non vorrai usarlo normalmente come parte dell'intercettazione stessa, ma può essere molto utile come parte della configurazione.

    Questo script ti permette di configurare un elenco di possibili indirizzi IP e una porta di destinazione, far testare al processo ogni indirizzo e inviare un messaggio al client Frida per il primo indirizzo raggiungibile fornito. Questo può essere utile per processi di configurazione automatizzati, se non sai quale indirizzo IP sia meglio usare per raggiungere il server proxy (il tuo computer) dal dispositivo di destinazione (il tuo telefono).