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.
1. Preparazione comune
Sezione intitolata “1. Preparazione comune”- 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.
2. Come scegliere tra i tre metodi
Sezione intitolata “2. Come scegliere tra i tre metodi”| 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.
6. Puoi usare anche la cattura via proxy
Sezione intitolata “6. Puoi usare anche la cattura via proxy”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.
- Installa il certificato: inquadra il codice QR sul telefono per l’installazione con un tocco → Gestione e installazione dei certificati
- Capacità di cattura e riscrittura: → Cattura via proxy
7. Quando usare la cattura su iOS
Sezione intitolata “7. Quando usare la cattura su iOS”- 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