Jump to content
Nytro

apk-mitm

Recommended Posts

Posted

apk-mitm

A CLI application that automatically prepares Android APK files for HTTPS inspection

68747470733a2f2f696d672e736869656c64732e

Inspecting a mobile app's HTTPS traffic using a proxy is probably the easiest way to figure out how it works. However, with the Network Security Configuration introduced in Android 7 and app developers trying to prevent MITM attacks using certificate pinning, getting an app to work with an HTTPS proxy has become quite tedious.

apk-mitm automates the entire process. All you have to do is give it an APK file and apk-mitm will:

You can also use apk-mitm to patch apps using Android App Bundle and rooting your phone is not required.

Usage

If you have an up-to-date version of Node.js (8.2+) and Java (8+), you can run this command to patch an app:

$ npx apk-mitm <path-to-apk>

So, if your APK file is called example.apk, you'd run:

$ npx apk-mitm example.apk

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

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

You can now install the example-patched.apk file on your Android device and use a proxy like Charles or mitmproxy to look at the app's traffic.

Patching App Bundles

You can also patch apps using Android App Bundle with apk-mitm by providing it with a *.xapk file (for example from APKPure) or a *.apks file (which you can export yourself using SAI).

Making manual changes

Sometimes you'll need to make manual changes to an app in order to get it to work. In these cases the --wait option is what you need. Enabling it will make apk-mitm wait before re-econding the app, allowing you to make changes to the files in the temporary directory.

Caveats

  • If the app uses Google Maps and the map is broken after patching, then the app's API key is probably restricted to the developer's certificate. You'll have to create your own API key without restrictions and run apk-mitm with the --wait option to be able to replace the com.google.android.geo.API_KEY value in the app's AndroidManifest.xml file.

  • If apk-mitm crashes while decoding or encoding the issue is probably related to Apktool. Check their issues on GitHub to find possible workarounds. If you happen to find an Apktool version that's not affected by the issue, you can instruct apk-mitm to use it by specifying the path of its JAR file through the --apktool option.

Installation

The above example used npx to download and execute apk-mitm without local installation. If you do want to fully install it, you can do that by running:

$ npm install -g apk-mitm

Thanks

License

MIT © Niklas Higi

 

Sursa: https://github.com/shroudedcode/apk-mitm

Posted
5 hours ago, Nytro said:

modify the app's AndroidManifest.xml to make it debuggable

Nu e suficient. Secretul pe care nu il spune nimeni e sa pui aplicatia in telefon la "select app to be debugged" si apoi sa pornesti din android studio o sesiune de debug.

  • Upvote 1
Posted

Nu am mai facut demult ceva pe mobile, dar din cate stiam, daca o aplicatie e "debuggable", poti folosi Frida (de exemplu) pentru instrumentare la runtime.

Ai nevoie de Android Studio? Chiar ar trebui sa ma mai uit si eu pe astfel de lucruri.

Posted

Eu am folosit android studio pentru ca nu am utilizat frida. Si gen pornesc outputul care rezulta din apktool, adica ii dau run on remote machine.

Mai e o faza la ultimele versiuni de android:

 

android:isSplitRequired="true"

Permite ca aplicatia sa nu fie completa la instalare. Si se descarca module la runtime. Momentan nu am vazut progrese in acest sens la apktool pe github.

  • Upvote 1

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...