티스토리 뷰

반응형
objection은 FRIDA를 기반으로 동작하는 Mobile Application Runtime Analyze Tool 이다. Android와 IOS에서 모두 사용가능하지만 명령어의 차이가 존재한다. 해당 포스팅에서는 IOS에 대해서만 다루도록 한다. 추후 Android를 다시 공부하게 된다면 반드시 다시 공부해보고 싶을만큼 강력한 Tool이다.

 

https://github.com/sensepost/objection

 

sensepost/objection

📱 objection - runtime mobile exploration. Contribute to sensepost/objection development by creating an account on GitHub.

github.com

 


objection 설치 및 사용법

기본적으로 FRIDA를 기반으로 동작하기 때문에 당연히 FRIDA를 완벽하게 설치해야한다. 따로 git을 통해서 설치하는 것이 아니라 pip를 통해 설치가 가능해 편리하다.

 

1. pip install objection

 

2. 실행

이와 같은 에러가 실행할 때마다 뜨는데 이게 뜨고 바로 실행되기 때문에 신경쓰지 않아도 된다. 그러나 아래와 같이 device not found 에러가 발생하면 FRIDA가 Device를 제대로 인식하지 못하는 것이기 때문에 Terminal에서 Python에 접속해 "import frida; frida.get_usb_device()" 가 성공적으로 동작할 때까지 실행시킨 후 대기시키도록 한다.

(이유는 모르겠지만 FRIDA가 Device를 잡아내는데 10초정도 소요된다. 그러나 잡아낸 Console을 한 개 열어두면 바로바로 Device를 잡아낼 수 있는 것을 확인했다.)

 

 

정상적으로 실행된다면 이와같은 화면을 확인할 수 있다.

 

objection는 기본적으로 USB를 사용해 연결된 Device를 통해 사용되기 때문에 별다른 옵션이 필요없다. 기본적으로 objection은 spawn을 통해서만 Application에 Attach하게 된다. (무조건 처음부터 App이 다시 실행된다.)

 

거짓말쟁이.....

Package Name이 아니라 DVIA-v2와 같은 Application 이름을 gadget으로 전달해주면 이미 실행중인 Process와 Attach하는 것이 가능하다!!!

 

 

objection -g [ PACKAGE_NAME ] explore

 

위와같이 정상적으로 연결된 것을 확인할 수 있다.

 

 


objection 기본 명령어 (FRIDA 사용)

"ios hooking list classes" : 해당 Application에 Load되어 있는 Class들의 리스트를 출력한다.

"ios hooking list class_methods [ ClassName ]" : 해당 Class에 포함된 Method들의 리스트를 출력한다.

"ios hooking search classes [ KEYWORD ]" : 해당 키워드가 들어간 함수목록을 탐색한다.

"ios hooking watch class [ ClassName ]" : 해당 Class에 포함된 Method들을 Tracing한다.

"ios hooking watch method "[ Method Filter ]" : 해당 Filter에 포함되는 모든 Method들을 Tracing한다.

"ios hooking watch method "+[ClassName MethodName]" --dump-args --dump-return" 

          : 지정된 메소드를 Trace하는데 argument와 return까지 함께 출력해준다.

"ios hooking set return_value "[ Method Filter ]" [ Value ] : 해당 Filter에 포함되는 모든 Method들의

                                                                                 반환 값을 해당 값으로 Replace한다.

                                                                                            ( value에 boolean 넣고싶으면 꼭 true, false로 !! )

"ios sslpinning disable" : SSL Spinning을 우회해준다고 하는데.. Version이 어디까지 가능한지 모르겠다.

"ios jailbreak disable" : Jailbreak Detection을 우회해준다고 하는데 내 테스팅 앱에서는 안된다.

"ios pasteboard moniter" : iPhone에서 복사하는 내용을 계속 출력해준다.

 

"env" : 현재 Attach 되어 있는 Application의 Library, Document 등의 경로를 확인할 수 있다.

"ios keychain dump" : iPhone에 저장된 KeyChain Data를 확인할 수 있다.

"ios cookies get --json" : iPhone에 저장된 Device Cookie 내용을 확인할 수 있다.

"ios plist cat userInfo.plist" : plist 파일을 출력하기 위해 사용한다.

"sqlite connect CoreData.sqlite" : sqlite를 사용해 Database를 연다. (그냥 윈도우로 꺼내자..)

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함