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
apk-mitm — 🤖 Un'applicazione CLI che prepara automaticamente i file APK Android per l'ispezione HTTPS | Kitploit
Strumenti/GitHubGitHub/niklashigi/apk-mitm
Sicurezza AndroidReverse EngineeringSicurezza WebPenetration TestingSicurezza Mobile
GitHubniklashigi/apk-mitm

apk-mitm

🤖 Un'applicazione CLI che prepara automaticamente i file APK Android per l'ispezione HTTPS

Vedi Repository
5.1k4312 anni faRevisionato da Kitploit

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
Sito web

apk-mitm

Un'applicazione CLI che prepara automaticamente i file APK Android per l'ispezione HTTPS

Ispezionare il traffico HTTPS di un'app mobile utilizzando un proxy è probabilmente il modo più semplice per capire come funziona. Tuttavia, con la Network Security Configuration introdotta in Android 7 e gli sviluppatori di app che cercano di prevenire attacchi MITM utilizzando certificate pinning, far funzionare un'app con un proxy HTTPS è diventato piuttosto noioso.

apk-mitm automatizza l'intero processo. Tutto ciò che devi fare è fornire un file APK e apk-mitm farà:

  • decodificare il file APK utilizzando Apktool
  • sostituire la Network Security Configuration dell'app per consentire certificati aggiunti dall'utente
  • modificare il codice sorgente per disabilitare varie implementazioni di certificate pinning
  • codificare il file APK modificato utilizzando Apktool
  • firmare il file APK modificato utilizzando uber-apk-signer

Puoi anche usare apk-mitm per modificare app utilizzando Android App Bundle e non è necessario il root del telefono.

⚠️ Limitazioni e alternative

Modificare il comportamento normale di un'app per aggirare funzionalità di sicurezza come il certificate pinning richiede o di modificare il codice sorgente dell'app prima di eseguirla o di "hooking" l'app mentre è in esecuzione per intercettare le chiamate alle funzioni.

apk-mitm sta attualmente adottando il primo approccio, modificando il codice dell'app disassemblando prima l'app con Apktool, apportando modifiche a diversi file, e poi riassemblandola (di nuovo con Apktool).

Questo approccio ha il vantaggio di non richiedere un dispositivo rooted, ma presenta anche diversi svantaggi. Il problema più grande è che le app non sono realmente progettate per essere disassemblate. Apktool cerca di farlo comunque, ma soprattutto con app grandi e complesse, spesso incontra problemi.

Un altro problema di questo approccio è che alcuni metodi di certificate pinning, come i controlli eseguiti all'interno di binari nativi (come nel caso di framework come Flutter), sono molto difficili o impossibili da aggirare. Per questo motivo, può essere utile provare altri approcci per app più complesse.

In particolare, vorrei evidenziare il progetto mitmproxy android-unpinner e gli script frida-interception-and-unpinning sottostanti di HTTP Toolkit. Il loro approccio applica patch a runtime utilizzando Frida, che è molto più potente ma significa anche che non può essere utilizzato o è più difficile da usare senza un dispositivo rooted.

Installazione

Se hai una versione aggiornata di Node.js (14+) e Java (8+), puoi installare apk-mitm eseguendo:

root@kitploit:~
npm install -g apk-mitm

Utilizzo

Una volta installato, puoi eseguire questo comando per modificare un'app:

root@kitploit:~
apk-mitm <path-to-apk>

La modifica di un file APK chiamato example.apk potrebbe assomigliare a questo:

root@kitploit:~
$ apk-mitm example.apk

  ✔ Decoding APK file
  ✔ Modifying app manifest
  ✔ Replacing network security config
  ✔ Disabling certificate pinning
  ✔ Encoding patched APK file
  ✔ Signing patched APK file

   Done!  Patched APK: ./example-patched.apk

Ora puoi installare il file example-patched.apk sul tuo dispositivo Android e utilizzare un proxy come Charles o mitmproxy per osservare il traffico dell'app.

Modifica degli App Bundle

Puoi anche modificare app utilizzando Android App Bundle con apk-mitm fornendo un file *.xapk (ad esempio da APKPure) o un file *.apks (che puoi esportare tu stesso usando SAI). Se lo fai su Linux, assicurati che sia zip che unzip siano installati.

Apportare modifiche manuali

A volte è necessario apportare modifiche manuali a un'app per farla funzionare. In questi casi, l'opzione --wait è ciò di cui hai bisogno. Abilitandola, apk-mitm attenderà prima di ricodificare l'app, permettendoti di apportare modifiche ai file nella directory temporanea.

Se vuoi sperimentare diverse modifiche a un APK, allora usare --wait probabilmente non è l'opzione più comoda, poiché ti costringe a ricominciare da capo ogni volta. In questo caso potresti dare un'occhiata a APKLab. È un ambiente di reverse engineering per Android costruito su VS Code che viene fornito con il supporto di apk-mitm e dovrebbe permetterti di iterare molto più rapidamente.

Consentire certificati specifici

Su alcuni dispositivi (come gli Android TV) potresti non essere in grado di aggiungere un nuovo certificato ai certificati radice di sistema. In questi casi puoi comunque aggiungere il certificato del tuo proxy direttamente alla Network Security Config dell'app poiché funzionerà su qualsiasi dispositivo. Puoi farlo eseguendo apk-mitm con l'opzione --certificate impostata sul percorso del certificato (file .pem o .der) utilizzato dal tuo proxy.

Avvertenze

  • Se l'app utilizza Google Maps e la mappa è danneggiata dopo la modifica, probabilmente la chiave API dell'app è limitata al certificato dello sviluppatore. Dovrai creare la tua chiave API senza restrizioni ed eseguire apk-mitm con l'opzione --wait per poter sostituire il valore com.google.android.geo.API_KEY nel file AndroidManifest.xml dell'app.

  • Se apk-mitm si blocca durante la decodifica o la codifica, il problema è probabilmente legato ad Apktool. Controlla i loro problemi su GitHub per trovare possibili soluzioni alternative. Se trovi una versione di Apktool che non è affetta dal problema, puoi indicare a apk-mitm di usarla specificando il percorso del suo file JAR tramite l'opzione --apktool.

Ringraziamenti

  • Connor Tumbleson per aver creato un fantastico decompilatore APK
  • Patrick Favre-Bulle per aver creato uno strumento molto semplice per firmare APK
  • Ryan Welton per aver ispirato la maggior parte del codice per la rimozione del certificate pinning

Licenza

MIT © Niklas Higi

Scarica lo strumento