Android 진단 환경 Setting
- 안드로이드 진단 시 앱 애플리케이션의 네트워크를 진단해야 하는 상황이 발생할 수 있다.
- 안드로이드 단말기와 PC는 같은 네트워크에 붙어야 하는데 일반적으로 안드로이드는 WIFI를 사용하므로 환경 Setting을 위해서는 외부, 내부 WIFI를 사용하여 안드로이드의 패킷을 Local PC로 전송해줘서 패킷을 분석하여야 한다.
- 따라서 설정 방법은 다음과 같다.
1. 프록시 Tool에서 프록시 Listener를 모든 인터페이스의 8888Port를 사용하는 것을 프록시 서버로 전송하겠다는 설정 적용
2. PC의 Wi-Fi의 고정 IP값을 설정해준다.
3. 모바일 단말기의 Wi-Fi의 고급설정으로 접근하여 프록시의 값을 PC의 IP와 동일하게 설정해준다.
4. 이렇게 설정할 경우 일반적인 모바일의 진단을 위한 1차적인 Setting이 완료된다.
CA 인증서 사용자 영역이 아닌 System 영역에 넣기
- 안드로이드 7.0 Version 이상에서 Burp 인증서를 등록하여도 Burp에서 Packet이 잡히지 않는 현상이 발생했다.
- 일반적으로 사용자 인증서를 설치하여도 Burp에서 Packet을 잡을 수 없는 현상이 발생한다.
이것을 방지하기 위하여 CA 인증서를 사용자 영역이 아닌 System영역에 넣는 방법을 제시한다.
1. 모바일에서 Burp 인증서를 다운로드 후 인증서를 추출한다.
-> adb pull [안드로이드 인증서 위치 디렉토리]
2. 버프 인증서를 추출하여 확장자명을 cacert.der에서 cacert.cer로 변경해준다.
-> mv cacert.der cacert.cer
3. Windows에서 Openssl을 이용하여 인증서를 cacert.pem파일로 변환하여 해쉬값을 추출한다.
-> openssl x509 -inform DER -in cacert.cer cacert.pem
-> openssl x509 -inform PEM -subject_hash_old -in cacert.pem
4. 인증서 파일의 이름을 추출된 Hash값인 9a5ba575.0으로 변경한다.
5. adb의 /(system)디렉토리를 리마운트 해준다.
-> adb shell mount -o rw,remount /system
※ 만일 다음 명령어가 동작하지 않으면 /(루트)디렉토리로 마운트한다.
-> adb shell mount -o rw,remount /
※ 또한 해당 명령어 실행 후 권한을 다시 ro로 변경해야 한다.
-> adb shell mount -o ro,remount /(system)
6. CA인증서를 시스템 영역에 넣어준다.
-> adb push 9a5ba575.0 /system/etc/security/cacerts/
7. adb shell로 해당 디렉토리로 이동 후 9a5ba575.0파일의 권한을 644로 변경해준다.
-> $star2lteks:/system/etc/security/cacerts # chmod 644 9a5ba575.0
8. Android의 설정의 설정 > 생체 인식 및 보안 > 기타 보안 설정 > 인증서 확인에 다음과 같이 되어 있으면 시스템 영역에 인증서가 등록되어 있는지 확인한다.
'App 진단' 카테고리의 다른 글
안드로이드 진단 - 난독화 솔루션에 대하여... (0) | 2021.10.25 |
---|---|
Android 진단 - jadx Tool (0) | 2021.10.22 |
Android 진단 - Scrcpy (USB Mirroring) Tool (0) | 2021.10.22 |
Magisk 관련 2021 (0) | 2021.10.19 |
XShell에 대하여.. (0) | 2021.06.20 |