일단 쓰고보자

Nox 에서 fridump3 로 메모리 덤프하기 본문

모의해킹

Nox 에서 fridump3 로 메모리 덤프하기

휘갈기갈기 2020. 2. 1. 02:21

#서론

이 간단한 걸 하기 위해 얼마나 삽질을 했는가


#목차

1. Nox 설치
2. Python 설치
3. frida-server 설치
4. fridump 설치
5. frida 설치
6. 대상 앱 설치 및 메모리 덤프

 


#시작

 

1. Nox 설치

- 메인 페이지에 대문짝만하게 다운로드 링크 걸려있음

https://kr.bignox.com/

 

녹스 앱플레이어

모바일 게임을 키보드와 마우스로? 클릭 한 번으로 가상키보드 실행이 가능하며 PC버전의 게임도 간편하게 체험할 수 있습니다. 키보드와 마우스로 컨트롤하여 뛰는 자에서 나는 자가 되어볼 수 있는 절호의 기회!

kr.bignox.com

- 설치 완료한 뒤 ROOT켜기 체크한 뒤 Nox 재시작

 

2. Python 설치

- 아래 URL에서 운영체제에 맞는 Python 설치

https://www.python.org/downloads/

 

Download Python

The official home of the Python Programming Language

www.python.org

- 환경변수 추가를 위해 Add Python 3.8 to PATH 체크한 뒤 Install Now 눌러서 설치 진행

(환경변수 없으면 실행할 때마다 절대경로 써야돼서 귀찮아짐...)

- 명령어가 동작하면 설치 완료

 

3. frida-server 설치

- 설치 전 [Nox 설치된 디렉터리]/bin 위치로 이동하여 안드로이드 운영체제 비트 확인 (32bit)

- 아래 URL에서 운영체제에 맞는 frida-server 설치 (frida-server-12.8.9-android-arm.xz)

https://github.com/frida/frida/releases

 

frida/frida

Clone this repo to build Frida. Contribute to frida/frida development by creating an account on GitHub.

github.com

- 설치한 파일 Nox에 드래그하여 복사 (꼭 드래그해서 복사하면 Pictures 디렉터리로 이동하더라)

# unzx frida-server-12.8.9-android-arm // 압축해제 

# mv frida-server-12.8.9-android-arm frida-server // 간편하게 이름 변경

# ./frida-server & // 백그라운드 실행 권한 문제로 실패

- /tmp로 파일 이동해도 안돼서 찾아보니 루트 디렉터리가 읽기 전용으로 마운트 되어있음

- 쓰기 권한으로 마운트 다시 시도한 뒤 권한 변경

# mount -o,remount -t rootfs /

chmod 777 frida-server 명령어는 무시한다...

- 이처럼 Permission 문제가 귀찮으신 분들은 /data/local/tmp 아래에 파일 넣고 수정하면 됨

- frida-server 백그라운드로 실행

 

 

4. fridump 설치

- 아래 링크에서 Clone or Download 클릭해서 설치

https://github.com/rootbsd/fridump3

 

rootbsd/fridump3

A universal memory dumper using Frida for Python 3 - rootbsd/fridump3

github.com

- 아래와 같이 압축 푼 파일들 [Python 설치 디렉터리]/Scripts 디렉터리로 이동

- 혹시 fridump3 설치해도 동작하지 않으면 fridump 설치해보길 추천

 

 

5. frida 설치

#pip install frida

- frida 설치하려고 했더니 pip 업그레이드 해주라고 해서 업그레이드 하고 다시 시도

#python -m pip install --upgrade pip

#frida-ps -U

- 실행 안되는 경우 frida-tools 설치가 안돼서 그러니, frida-tools 설치 후 다시 시도

#pip install frida-tools

#frida-ps -U

 

6. 대상 앱 설치 및 메모리 덤프

- UnCrackable-Level1.apk 다운받아 Nox 에 드래그하여 설치

https://github.com/OWASP/owasp-mstg/tree/master/Crackmes

 

OWASP/owasp-mstg

The Mobile Security Testing Guide (MSTG) is a comprehensive manual for mobile app security development, testing and reverse engineering. - OWASP/owasp-mstg

github.com

- Uncrakable1 앱 실행 (루팅 됐다고 뭐라고 함)

- 메모리 덤프 대상 패키지명 확인 후 fridump3.py 이용하여 메모리 덤프 시도

#frida-ps -U | findstr uncrackable1

#fridump3.py -u -s owasp.mstg.uncrackable1

※fridump3.py 바로 불렀을 때 에러나면 python fridump3.py ~ 처럼 python 같이 입력

- 디바이스를 못 찾음. 절망

- 구글링 하면 fridump 쓸 때 수정하라고 많이 나오는 게 있음. 수정 시도

- 79번째 줄 get_usb_device() → get_usb_device(1)로 변경

- 다른 오류 나옴 unable to inject library into process without libc

- 찾아보니 frida-server가 애뮬레이터(안드로이드) 버전을 지원하지 않아서 생기는 문제인 것 같다. 아까 frida-server 설치했을 때로 돌아가 frida-server-12.8.9-android-arm.xz 가 아닌 frida-server-12.8.9-android-x86.xz 로 재설치 해보았다. 생각해보니 운영체제에 맞는 frida-server 설치하라고 해놓고, 왜 x86 이 아닌 arm을 설치했는가 의문이 든다.

 

- 아무튼 재시도해보니 정상적으로 메모리 덤프 성공

- 메모리 덤프 파일은 [Python 설치 디렉터리]/dump 에 저장

- AstroGrep 툴로 덤프 디렉터리 지정 후 검색할 문자열 입력하여 찾기

 

 

※ ADB 설치페이지

https://developer.android.com/studio/releases/platform-tools