본문 바로가기

모바일 해킹

모바일 해킹을 위한 환경 구축 -2

이어서 두 번째 시간이네요

오늘은 ADB 설치부터 인증서 설치 및 Nox, Burp Suite 연동까지 진행해 보도록 하겠습니다.

 

환경 구축을 하기 전에 ADB란 무엇이고 Nox와 Burp Suite를 연동하는데에 인증서 설치는 왜 필요한지에 대해서 먼저 짚어보고 진행하도록 하겠습니다.

 

1. ADB (Android Debug Bridge)란?

adb는 안드로이드 환경과 컴퓨터 환경의 징검다리 역할이라고 생각해주시면 편합니다.

adb라는 프로그램을 통해 컴퓨터에서 안드로이드 모바일로 접속해서 파일 전송, 시스템 제어 등의 활동이 가능합니다.

해당 프로그램을 다운로드 하는 이유는 다음에 설명할 인증서를 모바일(nox)에 설치하기 위함입니다.

 

2. 인증서는 왜 필요할까?

Nox와 Burp Suite를 연동하는 데에 인증서가 필요한 이유는 바로 https 통신 때문입니다.

기본적으로 암호화 기능이 없는 http는 proxy 도구인 Burp Suite가 도청이 가능합니다. 즉, 패킷의 내용을 확인할 수 있다는 거죠. 하지만, 인증서를 기반으로 해당 사이트가 안전한지 확인하고 패킷을 암호화하여 전달하는 https 통신 방식은 Burp Suite가 도청이 불가능할 것입니다.

 

그래서 위와 같은 구조로 위조 인증서를 만들어 ADB로 모바일(Nox) 내부에 삽입하여 https 연결 방식일지라도 패킷 내용을 확인할 수 있도록 하겠습니다.

 

3. ADB 설치

Step 1) 먼저 ADB를 설치하기 위해서 다음의 링크로 접속한 뒤 Windows용 SDK 플랫폼 도구를 다운로드 해줍니다.

https://developer.android.com/tools/releases/platform-tools?hl=ko

 

Step 2) 다운로드한 zip 파일 압축을 풀어줍니다. (저는 편의를 위해 C드라이브 바로 아래에 풀어줬습니다)

 

Step 3) 시스템 환경 변수 편집을 검색하여 들어가 줍니다.

 

Step 4) 시스템 변수에서 Path를 클릭한 뒤 편집 버튼을 눌러줍니다.

 

Step 5) 환경 변수 편집에 아까 풀었던 zip 파일의 경로를 새롭게 추가해 줍니다.

 

Step 6) 확인 버튼을 눌러준 다음 cmd를 켜서 adb 명령어가 잘 실행되는지 확인합니다.

4. 인증서 설치 및 Nox, Burp Suite 연동

Step 1) 다음의 링크를 통해서 Win64 OpenSSL v4.0.1 Light 설치 프로그램을 다운로드해줍니다.

https://slproweb.com/products/Win32OpenSSL.html

 

Step 2) 설치 프로그램을 실행시켜 줍니다.

* 마지막에 모든 체크를 해제하고 Finish 버튼을 눌러주세요

 

Step 3) ADB 설치할 때와 동일하게 C:\Program Files\OpenSSL-Win64\bin 경로를 등록해 줍니다.

Step 4) cmd에서 openssl 명령어가 잘 동작하는지 확인합니다.

 

Step 5) Burp Suite를 켜서 Proxy > Proxy Settings > Import / Export CA certificate를 클릭하여 DER 인증서를 추출합니다.

 

Step 6) 인증서가 올바르게 잘 생성되었는지 확인합니다.

 

Step 7) cmd를 실행시켜 인증서가 있는 경로로 이동 후 다음의 명령어를 실행시켜. pem 인증서를 생성합니다.

 - openssl x509 -inform DER -in [방금 생성한 .der 파일 이름] -out [새롭게 생성할 .pem 파일 이름]

 - openssl x509 -inform PEM -subject_hash_old -in [생성한 .pem 파일 이름]

 

Step 8) 생성한 .pem 파일의 확장자와 이름을 앞서 산출한 "해시값.0"으로 변경해 줍니다.

* 안드로이드에서는 인증서가 .0 확장자로 저장되며 해시값을 이름으로 지정하여 필요할 때 빠르게 찾아낼 수 있게끔 동작합니다.

 

Step 9) Nox로 안드로이드를 실행시키고 환경설정에서 ROOT 켜기를 체크한 뒤 재부팅해줍니다.

 

Step 10) cmd에서 다음의 ADB 명령어를 통해 nox에 접속합니다.

 - adb connect 127.0.0.1:62001

 - adb shell

 

Step 11) /system 경로를 다음의 명령어를 사용하여 읽고 쓸 수 있도록 설정해 줍니다.

 - mount | grep /system

 - mount -o rw,remount /system

* 인증서를 삽입하기 위해 rw상태로 다시 마운트를 해준 것입니다.

기본적으로 안드로이드는 보안을 위해 /system 디렉터리를 읽기 전용으로 지정해 놓습니다.

 

Step 12) exit를 눌러 Nox에서 나온 뒤 다음의 명령어를 실행해서 아까 만든 .0 인증서를 삽입하고 확인합니다.

 - adb push [.0 인증서 파일 경로] /system/etc/security/cacerts/

 - adb shell

 - cd /system/etc/security/cacerts/

 - ls -l | grep [.0 인증서 이름]

 

Step 13) nox 안드로이드에서 환경설정 > 신뢰할 수 있는 자격증명을 검색하여 인증서가 잘 들어가 있는지 확인합니다.

 

Step 14) Burp Suite > Proxy > Proxy Settings에 들어가서 인터페이스의 IP주소를 PC IP 주소로 설정합니다.

 

Step 15) Nox로 다시 돌아가서 설정 > Wifi로 들어간 다음 Proxy 설정을 활성화시켜줍니다.

 

Step 16) nox에서 https://www.google.com에 접속했을 때 인증서 오류가 나지 않으면 성공한 겁니다.

Burp Suite Intercept 버튼을 활성화시켜 패킷도 잡아봐서 Nox와 Burp Suite가 연동된 것을 확인할 수 있습니다.

 

여기까지 정말 고생 많으셨습니다.

Nox와 Burp Suite를 연동하는 것은 실제로 모바일에서 웹 애플리케이션 취약점을 점검할 때 많이 사용됩니다.

다음 시간에는 실제로 애플리케이션 코드를 분석할 때 사용하는 도구인 apktool, jadx를 설치해 보도록 하겠습니다.

감사합니다.

 

참고한 사이트

https://www.cela.kr/blog/?bmode=view&idx=169315947

 

Nox 설치부터 Burp Suite 연동까지 : CELA Blog

목차1. 개요2. Nox 준비    2.1. Nox 설치    2.2. Android 9 생성    2.3. 시스템 설정3. ADB 준비    3.1. ADB 환경 변수 등록    3.2. ADB 기기 접속4. Nox & Burp Suite 연동    4.1. Burp Suite 프록시 설정    4.2. No

www.cela.kr