인프런 커뮤니티 질문&답변

대진이님의 프로필 이미지
대진이

작성한 질문수

해커를 위한 iOS 앱 모의 해킹 전문 과정

디컴파일 했을 시..

해결된 질문

작성

·

635

0

안녕하세요 강의 잘 보았습니다.

질문이 있습니다.

만약 탈옥을 탐지하는 클래스나 메소드 등이 흔히 사용하는 Jail 등의 단어들을 사용하지않고 String검색에서도 나오지 않을경우에 어떻게 분석을 진행 할 수 있을까요?

답변 4

1

대진이님의 프로필 이미지
대진이
질문자

답변 감사합니다.

추가적으로 질문 두개만 더 드리고자 합니다.

[1.클래스&메서드 리스트 출력 관련]

1) 특정 앱의 경우 탈옥을 탐지할 경우 경고창이 뜨면서 확인을 누르면 앱이 종료되는 방식인데, -f 옵션을 통해 앱을 실행하면서 클래스와 메서드를 출력하고자 할 때(탈옥탐지가 앱 실행 시 이루어지므로 앱을 실행하는 옵션 사용) 확인을 눌러 앱을 종료하지 않았음에도 중간에 프로세스가 종료되어 모든 결과를 출력하지 못합니다.

2) 위의 방법이 불가하므로 앱이 실행된 상태에서 종료하지 않고 리스트를 출력해보면 정상적으로 모든 리스트를 출력하는것처럼 보이나 찾고자 하는 메서드가 존재하지 않습니다.(모든 클래스&메서드를 불러오지 못하는듯 함)

3) frida로는 불가했지만 특정 트윅을 설치해 앱의 프로세스에 attach하면 모든 클래스와 메서드를 볼 수 있고 결과적으로 메서드명을 통한 탈옥탐지 우회가 가능합니다.(난독화 포함, 2번에서 찾고자 한 메서드도 트윅에서 먼저 우회가 가능함을 확인하고 찾으려고 한 것)

A1. 트윅으로는 앱의 모든 메서드, 클래스를 확인 가능한데 프리다를 사용해서 설치된 앱의 모든 클래스&메서드를 확인 가능할지 가능하다면 어떻게 해야 할지에 대해서 질문 드립니다.

☆추가

특정 앱에서만 terminate되는게 아니라 DVIA에서도 동일한 현상 발생

★추가

자동 재실행되도록 setImmediate 사용시 아래 오류 출력

----------------------

Fatal Python error: could not acquire lock for <_io.BufferedReader name='<stdin>'> at interpreter shutdown, possibly due to daemon threads

Python runtime state: finalizing (tstate=00000265E464C030)

Thread 0x000026f0 (most recent call first):

  File "c:\users\marle\anaconda3\envs\py3\lib\site-packages\frida_tools\repl.py", line 1003 in get_input

  File "c:\users\marle\anaconda3\envs\py3\lib\site-packages\frida_tools\repl.py", line 896 in _process_requests

  File "c:\users\marle\anaconda3\envs\py3\lib\threading.py", line 870 in run

  File "c:\users\marle\anaconda3\envs\py3\lib\threading.py", line 932 in _bootstrap_inner

  File "c:\users\marle\anaconda3\envs\py3\lib\threading.py", line 890 in _bootstrap

Current thread 0x000035c4 (most recent call first):

-----------------------

[2.바로 종료되는 특정 앱들에 대해]

 - 특정앱들은 아무런 경고메시지없이 바로 종료되기 때문에 frida-ios-dump를 통한 복호화, 프리다 attach등이 불가하여 분석에 어려움이 있습니다. 그런데 또 특정 트윅을 사용하면 우회가 가능합니다.

A2. 앱이 바로 종료되어 강의에서 배운 내용만 가지고는 접근이 불가능한데 이럴 경우 분석을 위해 어떤 접근방법을 사용해야 할까요?

답변해주시면 정말 감사하겠습니다!!

1

안녕하세요. 보안프로젝트 김태영입니다.

강의 잘 보셨다니 감사합니다!

.

질문 주신 내용에 대해 답변드리겠습니다. jail 등의 탈옥과 관련된 단어들을 사용하지 않는 경우에는 탈옥 탐지 기법을 통해 분석하게 됩니다.

.

탈옥 탐지 기법은 강의에서 설명드린 것과 같이 File-based Checks, Checking File Permissions, Checking Protocol Handlers, Calling System APIs 등이 존재합니다.

.

File-based Checks를 예로 설명드리자면, 탈옥을 하면 생성되는 파일로 탐지합니다. 보통 Cydia라는 키워드를 통해 "/Applications/Cydia.app"과 같이 파일이 존재하면 탈옥 탐지가 이루어집니다. 이러한 경우 탈옥 탐지를 할 때 생성되는 파일 이름으로 검색을 진행할 수 있습니다.

검색한 내용을 통해 해당 부분을 Application Patching하거나, 탐지된 파일이 디바이스에 존재한다면 디바이스 내부 파일을 삭제하거나 이름 변경을 진행하면 됩니다.

.

답변이 도움이 되셨으면 좋겠습니다. 감사합니다.

0

대진이님의 프로필 이미지
대진이
질문자

메일로 전달해 드렸습니다

0

안녕하세요. 보안프로젝트 김태영입니다.

흥미로운 질문이네요!

질문 주신 내용에 대해 답변을 드리기 위해선 몇 가지 테스트가 필요할 것 같습니다.

테스트를 하기 위해 아래 필요한 사항에 대해 말씀해주시면 확인하도록 하겠습니다.

     1) 사용하신 JS 코드

     2) 우회에 사용하신 트윅 이름

     3) 트윅으로 메소드와 클래스 확인하여 우회하는 방법

     4) "DVIA 앱 외에 테스트한 앱"에 대한 내용

답글 남기기 민감한 내용이라면, 아래 메일 주소로 보내주시면 확인해보도록 하겠습니다.

tyeong00@gmail.com

감사합니다.

대진이님의 프로필 이미지
대진이

작성한 질문수

질문하기