Salta ai contenuti

Cattura su iOS

Catturare su iPhone / iPad è sempre stato un grattacapo. Gli strumenti comuni di solito richiedono un jailbreak oppure sanno solo impostare un proxy (il che significa comunque installare un profilo e un certificato, e le app con certificate pinning restano comunque non catturabili). La cattura su iOS offre tre metodi senza jailbreak, da “vedi le richieste di sistema a configurazione zero” a “traffico completo dell’intero dispositivo” a “testo in chiaro completo per una singola app”. Uno di essi centrerà il tuo bersaglio.


  • Collega il dispositivo: usa un cavo dati per collegare l’iPhone / iPad al computer, poi tocca Autorizza sul dispositivo.
  • Non serve alcun jailbreak: tutti e tre i metodi sono pensati per dispositivi non sottoposti a jailbreak.
  • Compatibile con i sistemi nuovi: le versioni più recenti di iOS (compresa iOS 17 e successive) sono passate a un nuovo canale del dispositivo, e la connessione e la cattura funzionano comunque qui.
  • Se lo stesso dispositivo compare anche sulla rete, scegli di conseguenza la voce USB / rete.

La tua esigenza Quale usare Cosa puoi vedere Serve installare / rifirmare un certificato?
Vedere rapidamente quali richieste HTTPS ha inviato il sistema (indirizzo / stato / intestazioni) Cattura a livello di sistema Funziona anche per le app ordinarie (per le app ordinarie non si vede il corpo) Nessuno dei due; solo un profilo diagnostico
Tutto il traffico dell’intero dispositivo (incluso il non HTTP, handshake / SNI) Cattura da scheda di rete Dati completi (testo cifrato per impostazione predefinita, decifrabile su richiesta) Non serve per vedere il testo cifrato; la rifirma serve solo per decifrare una data app
Gli scambi in chiaro completi di una data app (corpo incluso) Cattura a livello applicativo Testo in chiaro completo per una singola app L’app bersaglio va rifirmata con un certificato di sviluppo

Nessuno dei tre richiede un jailbreak. La cattura a livello di sistema è particolarmente comoda: persino per le app ordinarie e le app dell’App Store puoi vedere quali indirizzi HTTPS richiedono, cosa che gli strumenti comuni non riescono a fare su un iPhone senza jailbreak.


3. Cattura a livello di sistema: la più comoda, funziona anche per le app ordinarie

Sezione intitolata “3. Cattura a livello di sistema: la più comoda, funziona anche per le app ordinarie”

Vuoi vedere rapidamente quali richieste HTTPS ha inviato questo iPhone, senza installare un certificato, impostare un proxy o avere a che fare con il certificate pinning? Questo è il metodo più comodo.

  • Elenca le transazioni HTTP(S) che il sistema invia: metodo della richiesta, URL completo (l’indirizzo è in chiaro anche per HTTPS), codice di stato, intestazioni della richiesta e intestazioni della risposta.
  • Nessun certificato CA da installare, nessun proxy da impostare, nessun certificate pinning con cui fare i conti.
  • Quanto puoi vedere è limitato dai log diagnostici di sistema stessi:
    • App ordinarie e app dell’App Store: di solito puoi vedere solo l’indirizzo della richiesta e le intestazioni della richiesta.
    • App firmate con un certificato di sviluppo: puoi vedere il corpo completo di richiesta / risposta.

Prerequisito: devi installare il profilo diagnostico del dispositivo corrispondente (una volta è sufficiente).


4. Cattura da scheda di rete: vedi tutto su questo dispositivo

Sezione intitolata “4. Cattura da scheda di rete: vedi tutto su questo dispositivo”

Cattura tutto il traffico di rete del dispositivo, a prescindere da app o protocollo, incluso il QUIC non HTTP e i protocolli personalizzati.

  • Cosa vedi per impostazione predefinita: per impostazione predefinita sono pacchetti di testo cifrato + metadati (indirizzo di destinazione, porta e nome host SNI dall’handshake TLS), abbastanza per vedere con chiarezza “a quali luoghi si è connesso questo dispositivo e con quale protocollo”.
  • Vuoi il testo in chiaro: usa “Decifra questo programma” sull’app bersaglio per decifrarne il testo in chiaro; questo richiede che l’app sia stata rifirmata con un certificato di sviluppo.

5. Cattura a livello applicativo: testo in chiaro completo per una singola app

Sezione intitolata “5. Cattura a livello applicativo: testo in chiaro completo per una singola app”

Puntando a una singola app, questo metodo ottiene il testo in chiaro completo (corpo incluso) che essa invia e riceve. Il certificate pinning non può fermarlo, perché legge dall’interno dell’app.

  • Riavvia il programma bersaglio: puoi chiudere e riavviare prima l’app per catturare anche il traffico dei suoi primi istanti di avvio.
  • Attiva il “traffico a livello di socket” come ripiego quando il testo in chiaro non può essere decodificato: per le app che collegano staticamente / usano una libreria personalizzata e dalle quali i metodi consueti non riescono a ottenere il testo in chiaro, attiva questo interruttore per prendere una via di livello più basso verso i dati.
  • Nell’elenco delle app sono selezionabili solo le app rifirmate con un certificato di sviluppo; le altre sono in grigio.

Prerequisito: l’app bersaglio va rifirmata con un certificato di sviluppo; le app dell’App Store e le app di sistema vanno rifirmate prima di poter essere usate come bersaglio.


Oltre ai tre metodi sopra, un iPhone / iPad può usare anche la cattura via proxy: punta il proxy Wi-Fi del dispositivo verso questa macchina, installa il certificato radice e potrai catturare il testo in chiaro HTTPS proprio come su un computer e usare l’intero corredo di capacità di riscrittura e replay. Si adatta al debug di app che passano per il proxy di sistema, oppure agli scenari che richiedono riscrittura / replay basati su regole delle richieste mobili.


  • Per indagare rapidamente su “quali endpoint ha richiesto un’app e cosa hanno restituito”, la cattura a livello di sistema è la più facile, e funziona anche per le app ordinarie.
  • Per vedere tutto il traffico dell’intero dispositivo (incluso il non HTTP), usa la cattura da scheda di rete.
  • Se puoi rifirmare l’app bersaglio e vuoi il suo corpo completo in chiaro, usa la cattura a livello applicativo.
  • Per visualizzare e modificare allo stesso tempo (riscrittura / replay delle richieste mobili), usa la cattura via proxy.

Torna a Cattura via proxy · Correlati: Ispeziona e decodifica · Gestione e installazione dei certificati