개발환경 : Android, Frida, JEB2
Uncrackable1
구현
개발환경 : Android, Frida, JEB2
모바일 해킹 첫시간이다.
Uncrackable_Level1.apk 문제를 풀어보자
먼저 반탈된 안드로이드 폰을 USB로 연결한 후
Adb 파일로 연결되었는지 확인한다.
Adb devices
Divece 라고 뜨면 연결된 것
안될 경우 핸드폰을 열어보면, 연결을 허가할 것인가에 대한 Dialog창이 뜰 것이다. 확인 해주고
하면 됨
Adb shell 을 입력하고 쉘을 얻고, su를 입력해 root 권한을 얻어보자
Push pull을 이용해 폰에 있는 파일을 다운로드 혹은 폰에 파일을 업로드할 수 있다.
Test.txt를 pull을 이용해 다운로드
Adb install UnCrackable-Level1.apk
명령어를 이용해 어플리케이션을 설치한다.
어플리케이션을 실행시키면 다음과 같이 Dialog가 나오고, OK를 누르면 종료된다.
다음은 JEB2
실행시 오류(java.lang.NullPointerException)이 나온다면 JEB프로그램의 경로에 한글이 포함되어있는지 확인해 보라, 경로에 한글이 없으니 오류 없이 잘 실행이 되었다.
apk파일을 디컴파일해 코드를 보여주는 프로그램이다.
먼저 Bycode를 더블클릭한다.
패키지와 클래스 구조가 나온다.
가장 먼저 MainActivity에 보여지는 코드를 확인해 보자. Dalvik코드가 나오면 Q를 눌러준다.
해당 코드를 이해하고 나면, 처음에 들어가자 마자 inacceptable이 나오는 Dialog를 우회해야 한다는 것을 알게 된다.
Frida를 이용해 서버를 키고
작동중인 프로세스의 PID를 확인한다.
위는 frida의 명령어
지난번에 먼저 켜 두었던 frida-server가 있어서 kill -9 PID를 이용해 프로세스를 껐다가 다시켰다.
그리고 hooking을 이용해 해당 어플의 함수 system.exit()를 우회해 보도록 하겠다.
다음과 같이 bbb.txt를 작성해주고
Frida –l bbb.txt –U –f owasp.mstg.uncrackable1
Frida와 bbb.txt를 이용한 hooking이 실행이 된다.
% 를 입력하여 메뉴중 resume을 선택한다.
owasp.mstg.uncrackable1는 어플을 켜 놓은 상태에서 프로세스명을 찾았다.
OK를 눌러도 더 이상 어플리케이션이 종료되지 않는다.