나의 성장기 보안/코딩$

Android 진단 - CA 인증서 (시스템 영역에 넣기)

App 진단
@2021-10-22 14:43:33

Android 진단 환경 Setting

 

  • 안드로이드 진단 시 앱 애플리케이션의 네트워크를 진단해야 하는 상황이 발생할 수 있다.
  • 안드로이드 단말기와 PC는 같은 네트워크에 붙어야 하는데 일반적으로 안드로이드는 WIFI를 사용하므로 환경 Setting을 위해서는 외부, 내부 WIFI를 사용하여 안드로이드의 패킷을 Local PC로 전송해줘서 패킷을 분석하여야 한다.
  • 따라서 설정 방법은 다음과 같다.

1. 프록시 Tool에서 프록시 Listener를 모든 인터페이스의 8888Port를 사용하는 것을 프록시 서버로 전송하겠다는 설정 적용

Burp 설정방법

2. PC의 Wi-Fi의 고정 IP값을 설정해준다.

PC의 WIFI를 정적 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의 설정의 설정 > 생체 인식 및 보안 > 기타 보안 설정 > 인증서 확인에 다음과 같이 되어 있으면 시스템 영역에 인증서가 등록되어 있는지 확인한다.

System 영역의 인증서 확인

 

 

'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