본문 바로가기
디지털 포렌식(Digital Forensics)/모바일 포렌식(안드로이드-Galaxy A8)

안드로이드 메모리 덤프-ADB 이용하기

by LIZ0904 2022. 3. 27.
반응형

adb 명령어를 사용해 손쉽게 모바일(안드로이드) 메모리를 덤프해 이미지 파일을 생성할 수 있다.

이때, 이전 포스팅을 참고해 안드로이드 기기는 루팅이 되어 있는 상태여야 한다.

 

https://liz09045.tistory.com/128?category=901829 

 

안드로이드 루팅 방법(Galaxy A8/SM-A880S)

[핸드폰 설정] 안드로이드 폰에서 [설정] -> [휴대전화 정보] -> [소프트웨어정보] 에 들어가 [빌드번호]를 7번 정도 연속으로 눌러준 뒤, 다시 [설정]으로 가면 맨 아래에 [개발자 모드]가 켜진다.

liz09045.tistory.com

만약 기억이 안난다면 위를 참고해서 루팅하고 오기!

 

 

[기기 내 BusyBox 설치(PC에서 진행)]

https://androidapksfree.com/busybox/busybox-latest-version-apk-download/

 

BusyBox 64 APK for Android - Download

Home » Apps » Tools » BusyBox BusyBox by Stephen (Stericson) (no ratings) More about BusyBox Download BusyBox APK v64. BusyBox belongs to the Tools category and the developer of this app is Stephen (Stericson). The average rating is 0.0 out of 5 stars o

androidapksfree.com

위 링크에서 BusyBox를 다운로드 받아준다. BusyBox는 일부 유닉스 도구들을 제공하는 소프트웨어로 리눅스, 안드로이드 등 타 운영체제에서 유닉스 명령어를 사용할 수 있도록 만들어주는 소프트웨어다. 우리는 netcat 명령을 사용하기 위해 BusyBox를 설치해주어야 한다.

 

adb가 있는 폴더에 .apk 파일을 이동시켜 준 뒤, cmd에 접속해 apk 파일을 설치해준다.

 

[adb -d install BusyBox.apk] 명령을 사용해 BusyBox를 안드로이드 기기 내에 설치해준다.

 

 

기기 내에서 확인을 해보면 BusyBox Free가 설치되어 있고, 어플을 실행시켜서 제대로 설치되었는지 확인해준다. 어플에서 Install도 눌러서 제대로 설치까지 해준다.

 

 

[PC에 Netcat 설치]

https://eternallybored.org/misc/netcat/

 

netcat 1.11 for Win32/Win64

 

eternallybored.org

​BusyBox 외에 Netcat도 설치해줘야 한다. Netcat은 TCP 또는 UDP 프로토콜을 사용해 네트워크 연결을 통해 데이터를 읽고 쓰는 명령줄 유틸리티이다. 일반적으로 UNIX의 cat 명령어와 비슷한 사용법을 갖고 있으며, 네트워크에 읽거나 쓸 수 있는 기능이 있다. 스크립트와 병용하여 네트워크에 대한 디버깅, 테스트 툴로서 매우 편리하고 원하는 포트로 데이터를 주고 받을 수 있는 특징 때문에 악의적으로 사용될 가능성도 있다.

 

 

nc.exe C:\Windows\System32 경로에 복사 붙여넣기 한다. 해당 경로는 cmd 창에서 사용할 수 있는 윈도우 기본 명령어들이 존재하는 곳이다.

 

[ADB를 사용해 이미지 추출]

adb devices

PC와 안드로이드 기기를 연결한 뒤, cmd에서 adb.exe의 경로로 들어가 [adb devices] 명령을 입력하면, USB로 연결되어 있는 안드로이드 디바이스의 목록을 보여준다. 현재 한 개의 폰만 연결되어 있어 하나만 뜬다. 해당 명령어를 통해 핸드폰과 PC가 잘 연결되었는지 확인해준다.

 

이제 "2개의 cmd 창"을 사용해 진행을 한다. CM1은 빨간색, CMD2는 파란색 배경으로 구분해서 칠해뒀으니 주의해서 진행한다!

 

포트 연결

CMD1

: [adb forward tcp:포트번호(8888) tcp:포트번호(8888)]을 입력한 뒤, 결과로 8888이 출력되면 네트워크 연결이 된 것이다. dd 이미지를 8888번 포트를 통해 핸드폰 -> PC로 TCP 통신을 사용해 전달한다는 의미이다.

 

CMD2: [adb shell] 명령을 입력한 뒤, 쉘로 들어가게 되면 [su] 명령을 입력해 루트권한을 획득해준다. 이때, $로 표시되던게 #로 표시되면 정상적으로 루트 권한을 얻게 된 것이다. 이때 모바일에서 허용할 지 경고 창이 뜰 수 있는데 그냥 허용(또는 동의) 눌러주면 된다.

 

CMD2: dd 명령어를 통해 물리 이미지를 획득하고, 파이프라인 명령어를 사용해 netcat를 통해 핸드폰 -> PC로 이미지를 전송한다. 이 과정에서 이미지를 추출하는 것이기 때문에 시간이 좀 걸린다. (아 졸래 오래걸리네~~~~! 에바다~~!!!)

명령어: [dd if=/dev/block/mmcblk0 | busybox nc -l -p 8888]

 

CMD1: [nc 127.0.0.1 8888 > android_data.dd] 명령 입력한다. netcat을 이용해 데이터 수시 및 컴퓨터 내 파일을 생성해준다. 위 과정과 함께 진행해준다.

완료!

이미지 획득이 완료되면 다음과 같이 뜬다. 개오래걸렸다 한 한시간?

 

dd 파일

adb.exe가 있는 폴더에 들어가서 확인해보면 android_data.dd 파일이 생성되어 있는 것을 확인할 수 있다. 얘가 이미지 파일이다! 덤프 이미지 추출 완릐용~~!!!! 끝!

 

 

 

반응형

댓글