Project/iOS

[iOS Digital Forensics: Artifact Analysis Tool Development] 02 Imaging

우저미 2025. 3. 14. 02:34
Logical Imaging 

 

과정 

0. iPhone 6 (ios 12.5.7) 기기 준비. 백업 전 iTunes의 자동 동기화를 비활성화. 

1. USB 케이블을 사용하여 PC와 iPhone 6 기기 연결 

2. PC에서 iTunes를 실행하고 아이폰 아이콘을 클릭하면, 연결된 기기의 정보를 확인할 수 있음.

3. 백업 섹션에서 '이 컴퓨터' , '지금 백업'을 클릭하여 백업 시작. 로컬 백업 암호화는 해제하는 것을 권장. 

4. 백업 완료 후 ( C:\Users\dnwjd\AppData\Roaming\Apple Computer\MobileSync\Backup ) 위치에서 백업 데이터 확인. 총 256개의 하위 폴더를 확인할 수 있음. 

 

1. 백업 파일 구조

iTunes 백업 폴더에는 40자리 SHA-1 해시 값으로 된 파일들이 저장되며, 이를 Manifest.db를 통해 원래 경로와 매핑할 수 있음.

- Manifest.db : 백업된 파일 목록과 원본 경로 정보를 저장한 SQLite DB. Manifest.db를 이용해 해당 해시가 어떤 파일인지 역추적 가능

- Info.plist : iPhone 장치 정보 (이름, iOS 버전, UDID, 백업 날짜 등)  

- Manifest.plist : 백업 속성 정보 (암호화 여부, 설치된 앱 목록 등) 

- Status.plist : 백업 진행 상태, UUID, 버전 정보 

- 백업 데이터 폴더 : 실 실제 백업된 데이터 파일들이 256개 하위 폴더에 분산 저장 

2. 추출할 수 있는 정보 

- 연락처 : AddressBook.sqlitedb 

- 통화기록 : Call_history.db(또는 CallHistory.storedata) 

- 문자 메시지, SMS, iMessage : sms.db (첨부파일은 Attachments 디렉토리)

- 메모 : notes.sqliste 

- 캘린더 : Calendar.sqlitedb

- 사파리 웹 방문기록 : History.plist (Bookmarks.db 파일은 즐겨찾기한 웹사이트 목록) 

- 전화 음성사서함 : Voicemail.db

* PLIST

(Property List) 파일은 Apple의 macOS 및 iOS 운영체제에서 설정 및 데이터 저장을 위해 사용하는 구조화된 파일 형식. XML 기반, 이진 형식. 

 

Physical Imaging

 

탈옥 없이는 불가능한 이유

PC에 Apple iPhone이 장치 및 드라이브에 표시된 것은 MTP/PTP를 통해 연결된 것. iPhone은 기본적으로 파일 시스템을 직접 드라이브처럼 마운트 하지 않기 때문에 FTK Imager가 물리적으로 저장소를 인식할 수 없음

 

Jailbreak 

0. WinRa1n2.1 도구 준비. 기기의 암호 해제, 나의 디바이스 찾기 해제.

1. 기기 버전에 맞게 체크 후 'Fix Driver' 클릭 > 'Next' 클릭 

 

2. Recovery 모드로 진입 

여기서 엄청 막혔다ㅜ.ㅜ 복구모드에서 DFU 모드로 진입하지 못하고 계속 재부팅됐다..

구구절절.. ) 다른 툴도 사용해보려고 시도했지만 쉽지 않았고 한 블로그에서 케이블(c to 8 → usb to 8)을 변경하니 된다해서 새 케이블을 샀는데 집에 와서 확인해보니 이미 시도했던 (c to 8) 새 케이블이라 절망했는데 그래도 새로 산 걸로 다시 시도해보니 성공했다~~

 

3. DFU 모드 진입

Jailbroken 항목이 Yes 로 변경된 것을 볼 수 있음 

다음은 DFU 모드로 진입하는 기기의 모습

checkra1n 앱이 설치되었고, 이 앱을 통해 Cydia 어플을 설치함. 

 

FFS Dump

Full File System Dump : iPhone 내부 전체 파일 시스템을 획득하는 방법 

삭제된 파일, 앱 데이터, 키체인, 로그 파일 등 iTunes 백업에서 확보할 수 없는 데이터까지 추출 가능 

0. iPhone에 OpenSSH 설치, PC에 PuTTY 설치 

 

1. 자신의 IP 주소 확인 후 PuTTY에 입력 (iPhone과 PC가 같은 Wi-Fi 네트워크에 있어야 함)

2. id : root / password : alpine(초기 비밀번호) 입력 

 

3. tar 명령어로 전체 파일 시스템 백업 

tar -cvpzf /var/root/ffs_dump.tar.gz --exclude=/var/root/ffs_dump.tar.gz --one-file-system /

tar -cvpzf : 파일 압축하여 보존

/var/root/ffs_dump.tar.gz : 백업 저장 위치 

--exclude=/var/root/ffs_dump.tar.gz : 덤프 파일 자체를 백업에서 제외 

--one-file-system / : 전체 루트 디렉토리를 백업 

 

3-1) ip 주소를 잘못적음 & pc에 ssh 서버가 없음

설치 후 시작 유형을 '자동'으로 변경하고, 상태를 Running 으로 설정 

PC의 IPv4 주소: ###.###.##.177
iPhone의 IP 주소: ###.###.##.28

iPhone은 root, PC에서 ssh는 root가 아닌 administrator로 접속해야 함. (root로 하다가 passwd 입력 실패로 계속 막힘ㅠ)

ㅠㅠ 

 

3-2) tar 실행 중 파일 전송이 중단, ssh 세션이 끊겼거나 전송 오류 발생

iPhone을 USB로 연결하여 3uTools Terminal 사용해보자

iPhone의 SSH 주소는 127.0.0.1 -p 2222 

PC의 SSH 주소는 여전히 ###.###.##.177 

tar -cvpzf - --one-file-system / | ssh Administrator@###.###.##.177 "cat > /d/iOS/ffs/ffs_dump.tar.gz" 

동일한 오류 발생

 

3-3) rsync를 사용하여 SSH 세션이 끊겨도 다시 실행하여 이어서 진행

rsync -avz --progress --exclude={"/dev","/proc","/sys","/tmp","/run","/mnt","/media","/lost+found"} -e "ssh -p 22" / Administrator@###.###.##.177:/d/iOS/ffs/

iPhone 기기의 Terminal에서 rsync 설치, PC의 WSL에서 rsync 설치

PC에서 rsync이 잘 실행되지 않는 듯

이후에 재부팅하고 다시 해보겠음

 

3-4) SSH 세션 유지되도록 screen 사용

screen -S dump_session

iPhone 기기의 Terminal 앱에서 screen 설치

tar -cvpzf - --one-file-system / | ssh Administrator@###.###.##.177 "cat > /d/iOS/ffs/ffs_dump.tar.gz"

동일한 오류 발생 

 

3-5) Operation not permitted 오류 해결

tar --exclude={"/dev","/proc","/sys","/tmp","/run","/mnt","/media","/lost+found"} -cvpzf - --one-file-system / | ssh Administrator@###.###.##.177 "cat > /d/iOS/ffs/ffs_dump.tar.gz"

일부 시스템 파일 제외 

동일한 오류 발생 (같은 사진 아님 ㅠ) 

 

3-6) split를 사용하여 용량을 나눠서 덤프하기 

2GB 단위로 파일을 나누고 압축 > tar -cvpzf - / | split -b 2G - /var/tmp/ffs_part_ 

PC로 전송 > scp -P 22 /var/tmp/ffs_part_* Administrator@###.###.##.177:D:/iOS/ffs/

된.건가..🥹? 

3-7) dd 명령어로 디스크의 원본 이미지 그대로 떠서 저장 

dd로 이미징한 파일의 확장자 : .img와 .dd의 차이는 단순한 명명 규칙 차이임. dd는 법적 증거 분석에서 많이 사용되고, img는 디스크 복제 및 가상 머신에서 많이 사용됨. 

dd if=/dev/disk0 bs=4M | ssh -p 22 Administrator@###.###.##.177 "powershell -Command \"[Console]::OpenStandardInput().CopyTo([IO.File]::OpenWrite('D:\iOS\ffs_dd\ffs_disk.img'))\""

D드라이브라서 그런가.. 싶지만 C드라이브에는 용량이 부족하므로 확보 후 다시 시도해보겠음