Android Forensic/Physical Imaging

[Digital Forensic] Android Rooting

DF_m@ster 2024. 2. 12. 15:43

Rooting

디지털 포렌식에서 물리 이미지 획득은 비할당영역, 암호화된 데이터, 파일 시스템 등을 분석할 수 있게 해 준다. 안드로이드는 기본적으로 사용자에게 사용자 권한만을 부여하기 때문에 물리 이미지 획득이 불가능하고 파일 시스템 이미지 획득까지만 가능하다. 즉, 모바일 포렌식에서 물리 이미지 획득을 위해서는 Root 권한을 얻는 작업인 Rooting을 수행해야 한다. 본 글은 Android Rooting 과정을 상세하게 기술한 글이다.

 

 

 

Device Info

모델명 S7
모델 번호 SM-G930S
Android Version 8.0.0

 

 

 

1. Odin, ADB, BusyBox, netcat64 설치

Odin: Android 기기 OS 설치하거나 업데이트하는데사용되며,사용자가 커스텀 ROM 설치, 루팅 또는 기기 복구 등을 수행할 있게 해주는 윈도우 기반의 프로그램이다. (설치 링크: https://autoroot.chainfire.eu/) 루팅 하려는 모델 번호와 일치하는 프로그램을 다운로드한다.

ADB(Android Debug Bridge): PC에서 안드로이드로 데이터, 애플리케이션 전송 및 디버그를 가능하게 해주는 커맨드라인 도구이다.  ADB 설치 이후에 "시스템 환경변수 편집"을 적용한다. 안드로이드는 Linux 커널을 사용하기 때문에 ADB로 Linux 명령어를 사용한다.

BusyBox: Linux 기반 시스템에서 다양한 표준 유닉스 도구를 단일 실행 파일로 제공하는 소프트웨어로, 제한된 리소스를 가진 임베디드 시스템이나 모바일 기기에 널리 사용된다.

netcat64: 네트워킹에서 데이터를 읽고 쓰기는 유틸리티로, TCP/IP 연결을 통해 네트워크를 통한 디버깅 및 데이터 전송을 가능하게 해 준다. netcat64는 "C:\Windows\System32" 경로에 저장한다.

 

 

2. ADB

안드로이드 기기를 PC에 연결하고 ADB를 사용하기 위해서는 안드로이드 기기의 "개발자 옵션"을 활성화하고, "USB 디버깅"을 추가로 활성화해야 한다.

adb devices

"adb devices" 명령어는 PC에 연결된 디바이스 정보를 출력해 주는 명령어로 해당 명령어를 사용하여 안드로이드 기기 연결 및 ADB가 정상 작동하는지를 테스트할 수 있다. 아래는 안드로이드 기기를 PC에 연결하기 전과 후에 "adb devices" 명령어를 사용한 모습이다.

USB 디버깅
adb devices

 

 

 

3. Odin

Odin을 다운로드하면, 안드로이드 기기의 루팅을 가능하게 하는 "md5" 확장자 파일과 "md5" 파일을 안드로이드로 전송시켜 주는 "exe" 파일이 이 존재한다. 아래는 "exe" 파일을 실행한 모습이다.

 

"exe" 파일 실행 이후에, 안드로이드 기기를 USB로 연결하면 "Added"문구와 상단 첫 번째 칸이 파란색으로 활성화되고, USB 연결을 끊으면 "Removed" 문구와 파란색 칸이 비활성화된다.

 

"md5" 파일을 이용해 Rooting 하는 과정에서 안드로이드 기기는 다운로드 모드 상태여야 한다. 안드로이드 기기의 전원을 끄고, 다운로드 모드 진입 후 USB를 연결한다. 아래는 다운로드모드 진입화면이다.

 

안드로이드 기기의 다운로드 모드 진입 이후에, 기기를 PC에 연결하면 "Added" 문구와 초록색 항목이 하나 활성화되고, "AP" 영역을 선택하여 "md5" 확장자 파일을 선택한다. "Added" 문구 위에 존재하는 "Options"을 선택하여 안드로이드 "재부팅 방지" 항목을 활성화한다. 루팅과정에서 잦은 재부팅으로 루팅을 실패할 수 있기 때문이다. 이후에 "Start" 버튼을 눌러 Rooting을 실행한다.

 

초록색 항목 위에 파란색으로 "RESET"이 활성화되고 "Log" 항목에 다양한 문구가 나타난다. 시간이 지나면 "Pass" 문구와 함께 Rooting이 완료된다.

 

안드로이드 기기를 확인하면 Root 권한을 활성화해 주는 애플리케이션인 "SuperSU"가 설치되어 있다.

 

"adb -d shell" 명령어를 이용하면 PC에 USB로 연결된 안드로이드 기기의 shell로 진입할 수 있다. 이후에 "su" 명령어를 사용하여 Root 권환이 획득되었는지를 확인한다.

adb -d shell
su

 

 

 

4. BusyBox

"adb -d install "경로"" 명령어로 PC에 저장된 파일(설치해둔 BusyBox apk 파일)을 안드로이드에 설치할 수 있다. BusyBox가 설치된 모습을 확인할 수 있다.

adb -d install "File Path"

 

해당 과정 까지가 안드로이드 기기의 Rooting을 완료하고, 물리 이미지 파일을 획득할 수 있는 환경을 구축한 과정이다.

 

 

 

다음 글

[Digital Forensic] Android Physical Imaging

 

 

 

 

 

Reference

https://www.reddit.com/r/GalaxyS7/comments/63rnn1/guide_heres_my_attempt_at_a_rooting_guide_for_the/?rdt=35530

 

From the GalaxyS7 community on Reddit: [Guide] Here's My Attempt At A Rooting Guide For The S7/S7 Edge

Explore this post and more from the GalaxyS7 community

www.reddit.com

https://blog.naver.com/jmhkal/222185280142

 

Odin(오딘) 사용 방법 (펌웨어/TWRP)

안녕하세요. HL4CVZ입니다. 오늘은 삼성폰의 기본 작업(펌웨어, 커스텀 리커버리)은 Odin(오딘)으로 ...

blog.naver.com