Android 앱 네트워크 트래픽 스니핑
어떻게? 글쎄요, 더 이상 스마트폰을 사용할 수 없지만 Android 에뮬레이터를 설정하고 Google Play 스토어를 통해 애플리케이션을 설치하고 내 PC에서 생성되는 네트워크 트래픽을 스니핑할 수 있습니다\o/
시작하자. 먼저 Android SDK를 설치하고 Android API 30 및 x86 아키텍처를 사용하여 Android 가상 디바이스를 생성합니다(모든 API 및 아키텍처 가능). 단, 추후 mitmproxy의 인증서를 주입하기 위해서는 쓰기 가능한
/system
폴더가 필요하므로 Google Play 스토어가 사전 설치되지 않은 이미지가 필요합니다. 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=
.QT_QPA_PLATFORM= ./Android/Sdk/emulator/emulator @Pixel_5_API_30 -writable-system
이제 API 및 아키텍처와 일치하는 OpenGAPPs을 다운로드하겠습니다. Play 스토어 외에는 아무것도 필요하지 않으므로
pico
변형을 선택합니다.curl -OL 'https://master.dl.sourceforge.net/project/opengapps/x86/20220503/open_gapps-x86-11.0-pico-20220503.zip'
Phonesky.apk
를 가져와서 가상 장치로 푸시하려면 압축을 풀어야 합니다. 또한 권한을 허용 목록에 추가해야 합니다(MinMicroG 직원에게 감사합니다).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/
이제 documentation에 기록된 대로 mitmproxy를 실행할 전용 사용자를 생성합니다.
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를 시작할 때까지 성공적인 네트워크 호출을 수행할 수 없습니다.
이 시점에서 우리는 거의 다 왔습니다. documentation page에 기록된 대로 mitmproxy 인증서를 추가하기 위한 또 다른 단계가 필요합니다.
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 계정으로 로그인하고 필요한 앱을 설치해야 합니다.
그게 다야! 즐거운 스니핑!
Reference
이 문제에 관하여(Android 앱 네트워크 트래픽 스니핑), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/ilpianista/sniffing-android-apps-network-traffic-10i5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)