Salta ai contenuti

Cattura a livello applicativo

Alcuni programmi sono fuori portata sia per il proxy sia per la scheda di rete: usano certificate pinning, ignorano del tutto il proxy oppure usano crittografia interna. La cattura a livello applicativo prende una strada diversa: legge il testo in chiaro direttamente dall’interno del programma. Non installa alcun certificato, non configura alcun proxy e non cattura alcuna scheda di rete, così tutte quelle “difese” semplicemente non si applicano, e tu vedi comunque cosa il programma invia e riceve davvero. Questo è il punto cieco più tipico degli strumenti comuni di cattura, ed è la funzione di punta di questa modalità.


1. Ciò per cui gli altri non ottengono il testo in chiaro, lei sì

Sezione intitolata “1. Ciò per cui gli altri non ottengono il testo in chiaro, lei sì”
La “difesa” del programma bersaglio Cattura via proxy Cattura da scheda di rete Cattura a livello applicativo
Certificate pinning ❌ Non si connette / dà errore 🔒 Solo testo cifrato ✅ Testo in chiaro
Ignora il proxy di sistema ❌ Non riesce a catturare 🔒 Solo testo cifrato ✅ Testo in chiaro
Crittografia interna / non standard ❌ Non riesce a decifrare 🔒 Solo testo cifrato ✅ Testo in chiaro

Il principio è semplice: legge il testo in chiaro direttamente dall’interno del programma, senza uomo nel mezzo e senza toccare i certificati, così tutte quelle difese pensate contro “l’uomo nel mezzo” e contro “il certificato” semplicemente non si applicano.

Risultato reale: seleziona un programma in esecuzione e leggi il suo testo in chiaro inviato/ricevuto direttamente dall’interno, elencato uno per uno per direzione (Inviato ↑ / Ricevuto ↓), con la richiesta HTTP completa in chiaro nei dettagli


Non è schizzinosa riguardo a librerie crittografiche o stack tecnologici. Leggere il testo in chiaro dall’interno del programma copre molti più programmi di quanti ne possano coprire il proxy o la scheda di rete:

  • Che il programma usi una libreria crittografica mainstream o una oscura, il testo in chiaro può essere letto dall’interno.
  • Che si tratti di un programma nativo o di un’app scritta con vari framework multipiattaforma (client desktop, app multipiattaforma…), può essere gestito allo stesso modo.
  • Anche i programmi che comunicano usando la crittografia integrata del sistema operativo sono coperti, inclusi .NET / PowerShell e altri programmi che usano lo stack di rete di sistema di Windows. Questi sono spesso i punti ciechi con cui gli altri strumenti faticano di più, eppure qui il testo in chiaro viene comunque letto dall’interno.
  • In breve: browser, client desktop, programmi nativi… molti bersagli che altrove sono “solo testo cifrato” qui sono in chiaro.

Per i programmi più difficili ci sono due ulteriori misure:

  • “Traffico a livello di socket”, un ripiego di livello più basso: per i programmi che sono ridotti all’osso, privati dei loro simboli o scritti con uno stack tecnologico più recente (per esempio puri Go, Rust, oppure che usano lo stack di rete di sistema di Windows), quando l’approccio ordinario non riesce a trovarne il punto d’ingresso di cifratura/decifratura, attiva questo interruttore e prende una via di livello più basso per afferrare i dati e ottenere comunque il testo in chiaro, senza dipendere dalla capacità di individuare il punto d’ingresso di cifratura/decifratura del programma e senza dipendere dalla scheda di rete. Molti programmi su cui gli altri strumenti si bloccano del tutto possono essere gestiti così.
  • Catturare “il momento dell’avvio”: gran parte dell’autenticazione e degli handshake avviene nell’istante in cui un programma parte per la prima volta. Chiudilo prima e lascia che sia lo strumento ad avviarlo, e anche questo traffico dei primi istanti di avvio viene catturato, così non ti sfugge quella prima richiesta cruciale.

Nuova sessione · Cattura a livello applicativo: scegli un programma in esecuzione (o inserisci il percorso di un programma) e leggi il testo in chiaro direttamente dall’interno; spunta “Riavvia il bersaglio” per catturare i primi istanti di avvio, oppure “Traffico a livello di socket” per un ripiego di livello più basso


Il testo in chiaro letto dall’interno passa attraverso la stessa elaborazione di ogni altro metodo di cattura:

  • Modi diversi di visualizzazione: strutturato, testo abbellito, esadecimale e rilevamento automatico, commutabili in modo indipendente per ciascuna direzione. Vedi Ispeziona e decodifica per i dettagli.
  • Decompressione e rilevamento automatici: decomprime automaticamente gzip / brotli / deflate / zstd (compresi più livelli sovrapposti) e rileva e abbellisce in automatico JSON, XML, form, protobuf / gRPC e altro.
  • Codec personalizzati: per protocolli socket proprietari / interni, scrivi un breve script per insegnargli a leggerli. Vedi Decodifica di protocolli personalizzati per i dettagli.

  • Ideale per: programmi con certificate pinning, che ignorano il proxy o che usano crittografia interna / non standard, dove né il proxy né la scheda di rete riescono a ottenere il testo in chiaro.
  • Funziona direttamente su un programma in esecuzione: seleziona un programma in esecuzione e leggine il testo in chiaro dall’interno, sul posto, senza bisogno di riavviarlo o di cambiarne alcuna impostazione (puoi anche inserire il percorso di un programma e lasciare che sia lo strumento ad avviarlo).
  • Interessa solo il programma selezionato: per impostazione predefinita non si estende in automatico a tutti i processi figli del programma; i programmi multiprocesso / multifinestra potrebbero dover essere selezionati separatamente.
  • Quando passare la mano alla cattura a livello di sistema: le app di sistema integrate su macOS, insieme alle app particolarmente ostinate e profondamente nascoste, rifiutano ogni intervento esterno, e questa modalità non riesce a entrare; per quei bersagli, passa alla Cattura a livello di sistema (che non entra nel programma e osserva dai livelli più bassi del sistema).

6. Come scegliere tra i quattro metodi di cattura locale

Sezione intitolata “6. Come scegliere tra i quattro metodi di cattura locale”
La tua situazione Quale usare
Un programma già in esecuzione / che usa certificate pinning / che ignora il proxy / che usa crittografia interna Cattura a livello applicativo (questa pagina)
Un programma normale che puoi avviare con un comando (browser / script / CLI) Cattura per processo (più immediata)
Vuoi vedere tutto il traffico della macchina, o il traffico non HTTP Cattura da scheda di rete
App di sistema integrate su macOS / app ostinate Cattura a livello di sistema

Correlati: Cattura via proxy · Rimuovere il certificate pinning · Ispeziona e decodifica