모바일 앱 진단중에 패킷이 안잡히는 경우가 있습니다.
1. tcp통신
2. ssl pinning
3. flutter로 만들어진 앱
4. 기타....
3의 경우 진짜 골이 아픕니다.
해결방법 알려드릴게욤
flutter가 간단히 말하면 외부 인증서가 아닌 자체 인증서로 통신을 해서 내부에 통신 주소를 변조해서 패킷을 잡아야합니다.
그걸 어떻게 하냐.
1. github 코드 (ios / android 공통)
https://github.com/hackcatml/frida-flutterproxy
GitHub - hackcatml/frida-flutterproxy: Burp proxy flutter apps
Burp proxy flutter apps. Contribute to hackcatml/frida-flutterproxy development by creating an account on GitHub.
github.com
가장 쉬운 방법이고, os공통이라 편합니다.
깃헙따라서 js파일 내 ip, port설정해주시면 바로 패킷 잡힙니다.
간혹 이 스크립트로 잡히다가 > 안잡히는 경우가 있습니다 ( flutter 진단 하면서 3번정도 이런 현상이 있었음 )
왜 이런 오류가 발생하는진 모르겠으나, 저의 경우 frida 16버전 > 17깔고 다시 16재설치 하니까 잡혔습니다.
2. openvpn ( iOS )
[iOS] 플러터(Flutter) 앱 프록시 설정
Flutter 앱은 시스템 프록시를 인식하지 않으며 자체 인증서 저장소를 사용하기 때문에 시스템 내 Wi-Fi 설정에서 프록시를 설정해도 의미가 없고 설정을 통해 인증서를 설치해도 유효성이 검증되
noasand.tistory.com
로컬에 kali를 깔아서 vpn타서 중계하는 방식입니다.
세팅하는게 생각보다 오래걸리지 않습니다. 1에 비해 복잡하지만 그래도 잘됨.
1로 잘 되다가 패킷이 안잡히는경우, openvpn을 설정해도 패킷이 잡히지 않았었습니다. 뭔가 내부 로직 문제가 있다던가.. 모르겠음
3. reflutter ( ios / androd )
GitHub - ptswarm/reFlutter: Flutter Reverse Engineering Framework
GitHub - ptswarm/reFlutter: Flutter Reverse Engineering Framework
Flutter Reverse Engineering Framework. Contribute to ptswarm/reFlutter development by creating an account on GitHub.
github.com
reflutter를 깔아서 apk / ipa 설정을 바꾸고 앱을 다시 설치하면 패킷이 잡히는 . 그런 구조입니다.
저의 경우 진단했던 앱들이 reflutter로 변조 시 재설치 > 실행이 되지 않았었습니다.
추가 방법잇으시면 댓글로 공유해주세요!!