1. Nox
안드로이드 모의해킹에서 녹스는 앱의 에뮬레이팅을 통한 동적 분석, 루트(Root)권한 설정 및 해제가 용이하여 자주 활용한다. 다만 에뮬레이터 환경에서 동작하는 만큼 에뮬레이터 탐지가 적용된 앱의 경우 실행이 어렵다는 단점이 있다.
하지만 진단기기 준비의 어려움 물리적으로 다른 기기에서의 교차진단이 필요할 경우 사용할 수 있는 대안이 될 수 있다.
2. 환경
녹스(Nox) 플레이어 7.0.2.1(설치 : kr.bignox.com/)
Burp Suite(Community Edition 2022.5.1)
3. 권장 설정(옵션)
필수 설정은 아니지만 모의해킹 수행을 위한 Nox 설정을 안내한다.
(필수) 시스템 설정 > 일반 > 시작항목 > ROOT켜기
(옵션) 시스템 설정 > 성능 > 그래픽 모드 > 호환+모드
(옵션) 시스템 설정 > 성능 > 해상도 설정 > "스마트폰" , 540x960
4. 인증서 준비
안드로이드 7 이상 버전 부터 인증서의 위치가 "사용자(User)"가 아닌 "시스템(System)"경로에 위치해야 한다.
1. 인증서 준비
OpenSSL을 통한 인증서 변환 작업이 필요하다.
http://slproweb.com/products/Win32OpenSSL.html
위 페이지에서 운영체제에 맞는 OpenSSL을 다운로드한다. Light버전에도 필요한 기능이 포함되어 있으므로 light 선택
2. Burp 인증서 다운로드
Burp Suite에서 Proxy > Options에서 진행한다.
1. Import / export CA certificate
2. Certificate in DER format (Next)
인증서 저장 위치를 설정한다.
OpenSSL이 설치된 경로에 저장한다.
C:\Program Files\OpenSSL-Win64\bin\cacert.der
** Program Files 경로에 파일이 바로 export 되지 않는 경우가 있으니 다른 경로에 다운로드 후 복사하여 파일 생성 확인 후 작업한다. **
3. openssl 이용하여 pem 파일로 변환
관리자 권한으로 cmd 실행 후 다음 명령 실행
1. pem 파일로 변환
openssl x509 -inform DER -in cacert.der -out cacert.pem
2. 변환된 인증서에서 해쉬값 추출
openssl x509 -inform PEM -subject_hash_old -in cacert.pem
3. 변환된 인증서에서 추출된 해쉬값으로 파일명 변경후 확장자 .0으로 변경
4. 인증서 nox로 복사
adb를 통해 파일을 복사한다.
adb 연결이 되지 않을 경우 nox 연결 진행
adb connect 127.0.0.1:62001
adb push [로컬 파일 경로] [nox 파일 경로]
adb push .\9a5ba575.0 /system/etc/security/cacerts/
파일 복사 여부는 adb shell 에서 직접 경로 접근 후 파일 존재를 확인하면 된다.
파일 이동, 복사 시 readonly filesystem 등 에러가 발생하는 경우 다음의 명령을 adb쉘 내에서 시도한다.
mount -o rw,remount /system
여전히 문제가 발생하면 아래의 글을 참고한다.
2023.03.29 - [Security/Mobile] - [Android] '/dev/block/dm-0' is read-only 해결
버프 인증서 등록을 마쳤으며, 버프에서 연결하는 방법을 다음 포스트에서 다룬다.
'Security > Mobile' 카테고리의 다른 글
[모바일 모의해킹] 아이폰 7 ios 14.2 탈옥 (0) | 2022.12.17 |
---|---|
Android aab파일 설치하기 / apk파일로 변환하기 (0) | 2022.04.13 |
[Frida] 안드로이드 루팅 탐지 우회하기 3 (0) | 2020.12.30 |
[Android] Fiddler Proxy tool 사용하기 (0) | 2020.12.28 |
[Frida] Android Permission 필요 동작 후킹하기 (0) | 2020.12.26 |