본문 바로가기

40./42. iOS

[DVIA] 11. Sensitive Information in memory

[DVIA] 11. Sensitive Information in memory


메모리에 중요 정보 노출


111. Sensitive Information in memory




Q1. A couple of properties with the name "Password" & "Username"

몇몇 속성의 이름은 "Password""Username" 


Q2. An instance variable named "passwd" 

인스턴트 변수 명은 passwd이다.


# pe -ef | grep Damn


# gdb -p 1200


(gdb) b malloc

(gdb) c

(gdb) finish - > 사용하지 말 것!!


(gdb) i r r0

(gdb) i mach-region 0x00000000 0xFFFFFFFF

(gdb) dump memory [메모리 덤프 명] 0x00000000 0xFFFFFFFF

+ (gdb) info mach-regions : 메모리 맵 및 구역 속성 확인

+ (gdb) info mach-regions 0x00000000[address] : 특정 address가 속해있는 구역의 특성

+ (gdb) info mach-tasks : attach 할 프로세스 정보 확인

+ (gdb) info mach-task [PID] : 하나의 프로세스[PID]에 대한 정보 확인



(gdb) q


덤프 생성 확인


Hex Editor를 이용하여 덤프를 확인하였으나, 메모리 내 "Password" & "Username"확인하지 못했지만 인스턴트 변수는 확인(DVIA 를 사용한 후 메모리 덤프 추천 ex, Runtime Maniulation에 Login Method 등)


패스워드가 안나오는걸 보니 이건 아니듯한데..


[추가] 메모르 덤프 쉘 스크립트


메모리 덤프 소스를 약간 수정해서 만든 쉘 스크립트



dump.sh


일단은 DVIA 애플리케이션에서 Appication Patching 파트 내 Login Method 1 기능을 이용하여 로그인 시도한다. 메모리 내 Heap 영역은 사용자가 애플리케이션을 실행한 후 사용된 정보들이 동적으로 기록되는 영역이다.


이제 위에서 다운받은 쉘 스크립트를 iDevice에 삽입한다. 

처음 삽입한 쉘 스크립트에 실행 권한이 없으므로 권한을 부여하며, 힙 덤프를 추출할 애플리케이션 바이너리 명칭을 획득한다. 


# chmod 777 dump.sh

# ps -ef | grep Damn

# ./dump.sh DamnVulnerableIOSApp


해당 폴더 하위에 애플리케이션 이름으로 생성된 폴더가 보이며, 하위에는 heap 덤프를 한 파일들이 존재한다. 해당 파일 내 이전에 로그인 시도한 패스워드 기록이 남아있는 것을 확인 가능하다.


원본 다운로드 : https://github.com/NetSPI/heapdump-ios

'40. > 42. iOS' 카테고리의 다른 글

iOS Memory 문자열 변조(String Edit in iOS Memory)  (0) 2016.04.20
iOS GNU Debugger 설치  (0) 2015.01.20
iRET, Snoop-it 동시 설치  (0) 2014.11.23
iNalyzer5  (0) 2014.11.23
[DVIA] 10. Binary Patching  (0) 2014.11.12