0. 표지
1. 도구 설치
실습을 진행하기 위해서 필요한 도구들입니다.
Nox
SDK
Frida
Python을 설치한 후, 커맨드 프롬프트에 아래 명령어를 입력하여 모듈들을 설치합니다.
pip install frida
pip install frida-tools
Frida-Server
어떤 파일을 다운로드 받아야하는지 모를 수도 있습니다.
Nox를 설치한 경로로 이동한 후, 명령어를 입력하여 추가적인 정보를 얻을 수 있습니다.
adb shell getprop ro.product.cpu.abi
Python3
Fridump3
이외 몇몇 바이너리..
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 파일을 확인할 수 있습니다.
간단하게 스톱워치 앱을 깔아서 실습을 진행해봤습니다.
해당 앱은 아래 링크에서 다운로드 받을 수 있습니다.
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. 참조