본문 바로가기

research

안드로이드 포렌식 관련 실습

0. 표지

 

 

 

1. 도구 설치

 

실습을 진행하기 위해서 필요한 도구들입니다.

 

Nox

 

 

NoxPlayer - Free Android Emulator on PC and Mac

I've played free fire with NoxPlayer for over a year and I've not met a better lightweight android emulator that renders me smoother game-play on my PC and hardly consumes resources.

www.bignox.com

 

 

SDK

 

 

SDK 플랫폼 도구 출시 노트  |  Android 개발자  |  Android Developers

Android SDK 플랫폼 도구는 Android SDK의 구성요소입니다.

developer.android.com

 

 

Frida

 

Python을 설치한 후, 커맨드 프롬프트에 아래 명령어를 입력하여 모듈들을 설치합니다.

 

pip install frida
pip install frida-tools

 

 

Frida-Server

 

 

Releases · frida/frida

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

github.com

 

어떤 파일을 다운로드 받아야하는지 모를 수도 있습니다.

Nox를 설치한 경로로 이동한 후, 명령어를 입력하여 추가적인 정보를 얻을 수 있습니다.

 

adb shell getprop ro.product.cpu.abi

 

 

Python3

 

 

Download Python

The official home of the Python Programming Language

www.python.org

 

 

Fridump3

 

 

rootbsd/fridump3

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

github.com

 

 

이외 몇몇 바이너리..

 

 

jakev/android-binaries

Binaries compiled for ARM. Contribute to jakev/android-binaries development by creating an account on GitHub.

github.com

 

 

2. Nox 설정

 

ROOT켜기 옵션 활성화

 

 

 

3. Nox에 Frida-Server 설치하기

 

도구 설치 단계에서 다운로드 받은 파일을 Nox에 Drag & Drop하여 복사할 수 있습니다.

(복사한 파일은 /sdcard/Pictures에 있습니다.)

 

adb 명령어를 이용하여 쉘에 접근해줍니다.

(Nox 플레이어를 설치한 경로/bin으로 이동하여 해당 명령어를 입력합니다.)

 

nox_adb shell

 

mv 명령어를 이용하여 해당 파일을 /data/local/tmp 디렉토리로 이동시켜줍니다.

(파일을 이동시켜주고 이름도 실행하기 편하게 변경해줬습니다.)

cd 명령어로 파일이 이동한 디렉토리로 이동합니다.

아래 명령어를 입력하여 frida-Server를 백그라운드에서 실행시켜줍니다.

 

./frida-server &

 

ps 명령어를 통해서 frida-Server가 백그라운드에서 실행되고 있는지 다시 한 번 확인해줍니다.

 

ps | grep frida

 

 

4. 앱 덤프

 

다운로드 받은 fridump3.py를 실행 중, device not found라는 오류가 발생 시 소스 코드를 수정해야 합니다.

frida.get_usb_device를 키워드로 frida.get_usb_device()를 찾아서 frida.get_usb_device(1)로 수정해줍니다.

 

실행 중인 앱을 확인할 수 있는 명령어는 아래와 같습니다.

 

frida-ps -U

 

실행 중인 앱를 덤프할 때 사용할 수 있는 명령어입니다.

 

python fridump.py -u -s [PID]

 

dump 디렉토리에서 수 많은 덤프 데이터 파일과 strings.txt 파일을 확인할 수 있습니다.

 

 

간단하게 스톱워치 앱을 깔아서 실습을 진행해봤습니다.

해당 앱은 아래 링크에서 다운로드 받을 수 있습니다.

 

 

Simple Stopwatch - Apps on Google Play

Extremely Simple Stopwatch! No worries about security bleaches!!

play.google.com

 

 

5. NAND 플래시 메모리(RAM) 덤프

 

/proc/partitions 경로에 파일들을 살펴보고 파티션들을 확인해봅시다.

용량으로 확인해보면 플래시 메모리는 sdb 이므로 메모리 수집을 위해 sdb를 덤프하겠습니다.

 

 

/dev/block에 sdb가 존재합니다.

 

 

다운로드 받았던 바이너리들을 Nox로 Drag & Drop한 후, local/data/tmp로 옮겨줍니다.

adb 명령어를 사용하여 메모리 덤프할 준비를 끝냅니다.

 

adb forward tcp:8888 tcp:8888
adb forward --list

 

아래 명령어를 입력하여 메모리를 덤프해줍니다.

 

./dc3dd if=/dev/block/sdb | ./nc -l -p 8888
nc 127.0.0.1 8888 > backup.img

 

FTK Imager로 덤프가 잘 되었는지 확인해줍니다.

 

 

6. 비고

 

시간이 허락한다면 안드로이드 포렌식에 대해서 더 공부해봐야겠습니다.

 

7. 참조

 

 

모바일 포렌식

해를 거듭할수록 모바일 시장이 커짐에 따라 모바일 포렌식도 PC 포렌식만큼 중요하게 되었다. 모바일 포렌식도 PC의 포렌식과 다를 바 없이 증거를 이미징하고 분석하는 것이다. 이 연구는 모바

forensic-active.tistory.com