回溯到时代,嗅探Android应用程序中的网络流量真的很容易。您可以在几分钟内添加MITMProxy的证书并在WiFi网络设置上设置HTTP代理来完成此操作。就是这样。但是事情已经改变了(永远),情况不再如此。但是,我仍然想嗅到Android应用程序的网络流量。
如何?好吧,我不能再使用智能手机来完成此操作,但是我可以设置Android模拟器,通过Google Play商店安装应用程序,然后嗅到它在我的PC \ o/
上生成的网络流量。让我们开始。首先,安装Android SDK,并使用Android API 30和X86体系结构创建Android虚拟设备(任何API和任何体系结构都很好)。但是,我们需要一个没有Google Play商店预装的图像,因为我们需要一个可写的/system
文件夹来稍后才能注入Mitmproxy的证书。没关系,因为我们会手动安装Play商店。
echo no | ./Android/Sdk/tools/bin/avdmanager create avd -n Pixel_5_API_30 --abi google_apis/x86 --package 'system-images;android-30;google_apis;x86'
使用附加的-writable-system
标志启动虚拟设备,该标志使我们能够使/system
写作。我还必须不设置QT_QPA_PLATFORM=
bbbbbbbbb,因为我在韦兰德(Wayland)和模拟器不支持它。
QT_QPA_PLATFORM= ./Android/Sdk/emulator/emulator @Pixel_5_API_30 -writable-system
现在,让我们下载与我们的API和架构匹配的OpenGAPPs。选择pico
变体,因为我们不需要其他任何东西,只需播放商店。
curl -OL 'https://master.dl.sourceforge.net/project/opengapps/x86/20220503/open_gapps-x86-11.0-pico-20220503.zip'
我们要对其进行解压缩,以便将Phonesky.apk
推到虚拟设备。我们还需要对其版本的许可(谢谢MinMicroGguys)。
unzip open_gapps-x86-11.0-pico-20220503.zip
lzip -d Core/vending-x86.tar.lz
tar xf vending-x86.tar
adb root
adb shell avbctl disable-verification # adb disable-verity makes the emulator crash
adb reboot
adb wait-for-device
adb root
adb remount
adb push vending-x86/nodpi/priv-app/Phonesky/Phonesky.apk /system/priv-app/
curl -O https://raw.githubusercontent.com/FriendlyNeighborhoodShane/MinMicroG/master/res/system/etc/permissions/com.android.vending.xml
adb push com.android.vending.xml /system/etc/permissions/
现在,创建一个专门的用户来运行mitmproxy,就像在documentation中写的那样:
sudo useradd --create-home mitmproxyuser
sudo iptables -t nat -A OUTPUT -p tcp -m owner ! --uid-owner mitmproxyuser --dport 80 -j REDIRECT --to-port 8080
sudo iptables -t nat -A OUTPUT -p tcp -m owner ! --uid-owner mitmproxyuser --dport 443 -j REDIRECT --to-port 8080
sudo -u mitmproxyuser -H bash -c 'mitmproxy --mode transparent --showhost --set block_global=false'
MITMProxy文档页面的强制副本粘贴页面:>注意,一旦添加了iptables规则,您就可以执行成功的网络呼叫,直到启动Mitmproxy。
。在这一点上,我们几乎在那里,我们只需要另一个步骤即可添加MITMProxy证书,就像documentation page:
中所写的那样
hashed_name=`sudo openssl x509 -inform PEM -subject_hash_old -in ~mitmproxyuser/.mitmproxy/mitmproxy-ca-cert.cer | head -1`
sudo adb push ~mitmproxyuser/.mitmproxy/mitmproxy-ca-cert.cer /system/etc/security/cacerts/$hashed_name.0
adb shell chmod 664 /system/etc/security/cacerts/$hashed_name.0
adb reboot
您现在应该拥有Play商店,使用您的Google帐户登录并安装所需的应用程序。
就是这样!快乐的嗅探!