본문 바로가기

40./42. iOS

Introducing the iOS Reverse Engineering Toolkit

Introducing the iOS Reverse Engineering Toolkit


It should be the goal of every worker to expend less time and energy to achieve a task, while still maintaining, or even increasing, productivity. As an iOS penetration tester, I find myself repeating the same manual tasks for each test. Typing out the same commands to run various tools that are required to help me do my job. And to be honest, it’s completely monotonous. Every time I fat-finger a key, I lose productivity, forcing me to expend more time and energy to achieve the task. I’m a fan of automation. I’m a fan of streamlined innovation that saves me time and still accomplishes, for the most part, the same results. It was this desire to save time, and reduce my likelihood of suffering from carpal tunnel, that I created the iOS Reverse Engineering Toolkit.

=> 아이폰 OS 침투 테스트 시 반복되는 작업을 줄이기 위해 만든 툴



 Tool name

 iRET 

 Author

 

 Website

 https://blog.veracode.com

 License type

 -

 Download

 

iRETTool.zip



https://blog.veracode.com/2014/03/introducing-the-ios-reverse-engineering-toolkit/


iRET Features


What exactly does iRET do that can help you, an iOS penetration tester, perform your job more efficiently? Below, in Figure #1, is a screenshot of the main landing page of the application. This page lets you know what tools need to be installed, and even tells you if they aren’t. This is also the page where you select the installed application you would like to being analyzing/reverse engineering.



# iRET 실행



# iRET Start

iRET을 실행하면 IP/PORT가 표시된다.



# 특징 1 - 메인 페이지

- oTool

- dumpDecryted

- Sqlite

- Theos

- Keychain_dumper

- file

- plutil

- class-dump-z



# 특징 2 - 바이너리 분석

Binary Analysis : 바이너리 파일을 otool을 이용하여 정보를 추출 및 분석


※ otool란? 실행파일(or obj, lib 등)의 정보를 보여주거나 오브젝트 파일을 디컴파일하여 어셈블리 코드를 추출해주는 툴


iRET의 경우는

실행파일의 Header를 추출하며, 인크립션 정보, 스텍스매쉬 정보, ARC정보를 추출해준다.

인크립션 정보의 경우 GDB를 이용하여 메모리 덤프할때 사용되는 정보이다.

해당 바이너리 파일이 메모리에 얼마나 적제되는지, 암호화가 되었는지 등.



# 특징 3 - 키체인 분석

Keychain Analysis : iOS 자동 로그인을 위해 계정정보와 비밀번호를 저장하는 파일 분석




# 특징 4 - 데이타베이스 분석

Database Analysis : APP이 설치된 디렉토리 하위에 존재하는 모든 DB파일을 검색하여 해당 DB를 선택하면 데이터를 확인 가능함.



# 특징 5 - 로그 뷰어

log viwer : 




# 특징 6 - Plist 뷰어

plist viewer : Plist 확인 가능


※plist 란? 프로퍼티 리스트(property list)는 Mac OS X, iOS, NeXTSTEP, GNUstep 프로그래밍 소프트웨어 프레임워크 등에 이용되는 객제 직렬화를 위한 파일이다. 또한 .plist라는 확장자를 가지므로, 보통 plist 파일이라고 하는 경우가 많다. 프로퍼티 리스트 파일은 보통 사용자의 설정을 저장하는데 쓰인다. 또한, 번들과 애플리케이션 소프트웨어 정보를 저장하기 위해서도 사용되고, 이전 맥 OS에서 리소스 포크 정보를 저장하는데에 사용되었다.

- 위키백과







# 특징 7 - 헤더 파일

Header Files : 

After the user has made their changes to the tweak and is ready to build it, all they need to do is click the “Build” button, at which point the tweak will be compiled and automatically copied to the /Library/MobileSubstrate/DynamicLibraries directory, as seen in Figure #13 below.




# 특징 8 - Theos

Theos : 

After the tweak has been installed, the user simply resprings their device and launches the application they have targeted by the theos tweak.
The final tab, and piece of functionality in the iRET toolkit is the screenshot tab.


# 특징 9 - 스크린샷

Screenshot : 응용 프로그램의 캐쉬에 저장된 스크린샷을 확인 가능

해당 스크린샷은 운영 iOS에서 hold 버튼을 눌렀을 때 저장되는 정보이다.




iOS 앱 분석 도구



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

Damn Vulnerable iOS Application(DVIA)  (1) 2014.06.14
iOS App 크랙방지  (3) 2014.05.02
dumpdecrypted  (0) 2014.04.29
iOS Jailbreak [계속 수정 예정]  (0) 2014.04.29
[iOS] TinyUmbrella shsh 백업  (0) 2013.10.25