Come ispezionare il traffico di rete utilizzando mitmproxy

author
4 minutes, 55 seconds Read

La maggior parte delle applicazioni moderne si basano su API. “- Come posso accedere al tuo catalogo ? – Ecco un’API per quello. “Le API sono ovunque e questo non cambierà.

Suddividere ogni parte del codice in servizi separati è (spesso) buono, ma quando si tratta di test, questa separazione potrebbe rendere le cose un po ‘ più difficili.

Gli sviluppatori di app front-end non scrivono più il codice che si occupa della logica di core business. Generalmente, le complesse attività di elaborazione dei dati vengono eseguite su app lato API e front-end che devono solo visualizzare ciò che viene fornito dall’API.

Questo è il motivo per cui è così importante essere in grado di ripercorrere il percorso dei dati dall’app all’API. Quando si verifica e si convalida un’app, è fondamentale essere in grado di rispondere alle seguenti domande :

  • quali endpoint API utilizza l’app per questa schermata ?
  • cosa è contenuto nella risposta fornita dall’API ?
  • cosa succede se la struttura di risposta API cambia ?

Alla fine di questo tutorial dovresti essere in grado di usare mitmproxy per rispondere a queste domande. Ma vedrai, ci sono molte altre cose da fare con questo fantastico strumento.

Come funziona mitmproxy

Prima di iniziare

Potresti chiederti perché dovresti usare mitmproxy invece di un altro strumento. E questa è una buona domanda (non seguire l’hype!).

Il mio primo argomento è il prezzo : mitmproxy è gratuito (rilasciato sotto licenza MIT) quando una licenza per Charles Proxy costa circa 50$.

Anche mitmproxy è uno strumento molto potente : non solo fornisce opzioni per riscrivere il traffico, ma consente anche di eseguire script Python per modificare le richieste e le risposte. Questo è davvero utile quando si tenta di testare i casi limite.

Per finire, mitmproxy può essere eseguito ovunque con un’interfaccia web o nella riga di comando : non importa il contesto, ci sono buone probabilità che tu sia in grado di usarlo.

Installazione

Esistono diversi modi per installare mitmproxy. L’uso di brew è il modo “standard”, ma personalmente preferisco usarlo tramite Docker : mi impedisce di trattare con le versioni di Python e aiuta anche a mantenere pulito il mio Mac. Inoltre, è davvero facile da fare e non è richiesta alcuna particolare conoscenza della finestra mobile.

Per l’installazione, sentitevi liberi di scegliere qualsiasi metodo si sente il più comodo con.

Utilizzo di brew

Se hai già installato brew sul tuo computer e se tutto va bene, eseguire questo semplice comando dovrebbe essere sufficiente per eseguire il lavoro :

brew install mitmproxy

Una volta installato mitmproxy è possibile passare direttamente alla sezione Let’s run mitmproxy.

Utilizzando la finestra Mobile

Esecuzione mitmproxy utilizzando l’ufficiale Mobile immagine è semplice come eseguire il seguente comando :

docker run --rm -it -p 8080:8080 mitmproxy/mitmproxy:4.0.4

Per evitare di dover installare mitmproxy certificati su dispositivi di prova ogni volta, è fortemente consigliato di condividere il contenitore del certificato cartella con un locale (utilizzando il -v param).

In questo modo, i certificati verranno mantenuti anche dopo che il contenitore Docker viene ucciso.

docker run --rm -it -v /your/local/folder:/home/mitmproxy/.mitmproxy -p 8080:8080 mitmproxy/mitmproxy:4.0.4

Per semplificare l’uso di questo comando, aggiungi un alias nel tuo ~/.bash_profile :

alias mitmproxy='docker run --rm -it -v /your/local/folder:/home/mitmproxy/.mitmproxy -p 8080:8080 mitmproxy/mitmproxy:4.0.4'

E non dimenticare di eseguire source ~/.bash_profile dopo aver modificato il file.

Eseguiamo mitmproxy

Non importa come lo hai installato, ora dovresti essere in grado di avviare mitmproxy con il comando :

mitmproxy

Se il programma si avvia, congratulazioni! Puoi continuare!

mitmproxy è attivo

Impostazioni di rete sul dispositivo di destinazione

mitmproxy può essere eseguito come proxy inverso, come proxy trasparente o come proxy normale. Per mantenere le cose semplici, lo useremo come un proxy regolare.

Utilizzando il programma in questo modo è certamente più facile, ma significa che è possibile modificare le impostazioni di rete del dispositivo di destinazione al fine di impostare un proxy.

Questo è molto semplice quando è necessario ispezionare le richieste da un dispositivo iOS o Android, ma diventa più complicato con i dispositivi che non forniscono impostazioni avanzate per la rete.

A seconda del dispositivo di destinazione, basta seguire il corrispondente sub-tutorial :

  • impostazione di un proxy su un dispositivo iOS
  • impostazione di un proxy su un dispositivo Android
  • impostazione di un server proxy su un tvOS dispositivo

Installare il certificato self-signed

In questo momento, se si avvia mitmproxy il dispositivo accetta il traffico HTTP, ma rifiutare qualsiasi richiesta HTTPS non proviene direttamente dal server. Il motivo è semplice: il tuo dispositivo non accetterà alcun certificato autofirmato a meno che tu non gli chieda di farlo.

Per intercettare le richieste HTTPS, è necessario impostare il certificato utilizzato da mitmproxy sul dispositivo di destinazione. Ciò consentirà al dispositivo di accettare richieste protette provenienti dal computer anziché dal server reale.

La complessità dell’installazione di un certificato autofirmato dipende in realtà dalla natura del dispositivo che è necessario ispezionare. Fondamentalmente, va da ” molto semplice “a” non possibile”.

A seconda del dispositivo di destinazione, basta seguire il corrispondente sub-tutorial :

  • l’installazione di un certificato auto-firmato su un dispositivo iOS
  • l’installazione di un certificato auto-firmato su un dispositivo Android
  • l’installazione di un certificato auto-firmato su un dispositivo tvOS

Certificato

andiamo a intercettare le chiamate

una Volta che il certificato è installato, si è pronti a intercettare le chiamate. È possibile avviare mitmproxy ancora una volta utilizzando :

mitmproxy

Sul dispositivo di destinazione, aprire un’app e verificare se nel terminale vengono visualizzate nuove linee.

mitmproxy

Se vedi le richieste, allora congratulazioni! Tutto è impostato e si può iniziare a ispezionare il traffico web che passa attraverso il telefono o tablet.

Risoluzione dei problemi

Se non appare nulla e il dispositivo di destinazione sembra non avere alcuna connessione Internet, ecco alcune cose che dovresti controllare :

  • il computer che esegue mitmproxy e il dispositivo di destinazione sono entrambi sulla stessa rete ?
  • hai provato a riavviare mitmproxy ?
  • le impostazioni proxy sono impostate correttamente sul dispositivo di destinazione ?
  • è stato abilitato il certificato autofirmato sul dispositivo di destinazione ?

Per andare oltre

Ora dovresti sapere tutto ciò di cui hai bisogno per installare mitmproxy e configurare il tuo dispositivo di destinazione. Se vuoi andare oltre, dai un’occhiata ai seguenti post :

  • Consigli utili per mitmproxy
  • Creazione di script per mitmproxy

Similar Posts

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.