환경 : nox Player(Android 7), windows10
Androgoat.apk에서 루팅 탐지를 확인하기 위해 smali파일 변조하여 우회, Frida를 활용한 우회와 같이 2가지 방법을 사용했다.
1. smali 파일 변조
smali 파일을 변조하기 위해 APK Easy Tool과 jadx를 사용하였다.
현재 해당 기기는 루팅된 기기인 것을 확인할 수 있고, smali 파일을 변조하여 루팅이 되지 않은 기기로 우회할 것이다.
먼저, APK Easy Tool을 이용하여 AndroGoat.apk를 디컴파일하여, smali 파일을 수정할 것이다.
Decompile을 진해아면 위의 그림과 같이 "Decompile successful."이란 표시가 나온다.
또한, jadx로 AndroGoat.apk의 소스코드 중 Root Detection과 관련된 코드를 확인하였다.
위에 표시한 부분에서 for문의 superuser.apk와 같은 경로를 지우거나, return 값을 false로 바꾸어주면 우회가 가능하다.
jadx에서 코드를 수정하는 것은 불가능하지만, 해당 코드를 smali 코드로 볼 수 있다.
따라서 표시한 java 코드 부분을 smali 코드로 본 후, smali 파일을 찾아서 수정한 후, 다시 complie하면 우회가 가능하다.
APK Easy Tool 폴더에서 1.Decomplie - (Decomplie할 때 설정한 폴더 명) - smali - {코드 경로}로 들어가면 smali파일이 있다.
해당 파일을 텍스트 파일로 열어서 return값이 false가 나오도록 수정하였다.
위와 같이 0x0값을 넣어주면 false값이 된다.
수정 후 APK Easy Tool에서 Compile을 진행하면 수정된 apk파일이 생기는데 해당 파일을 nox에서 실행하면 우회가 성공적으로 된 것을 볼 수 있다. (Complie을 진행하기 전에 Sign apk을 통해 서명을 받은 후 진행해야 한다.)
(진행 및 결과)
jadx로 확인결과 retrun값이 false로 수정되었다.
nox player에 수정된 apk파일을 넣은 후, 실행하면 루트 탐지가 우회된 것을 확인할 수 있다.
2. Frida
Frida를 활용한 우회의 경우 js파일을 만들어서 Frida를 실행시키는 방법이다.
위의 그림과 같이 js파일을 만들어 준다.
이 후에, cmd창에서 frida 명령어를 입력하면 된다.
명령어 : frida.exe -U -f owasp.sat.agoat -l "js파일 경로" --no-pause
(위치는 frida.exe가있는 경로(python 폴더 경로)에서 실행. 또한 frida server는 따로 켜놔야 함.)
실행 하면 nox player에 실행시킨 androgoat가 재실행 되면서 우회가 완료된다.
Cheak Root를 하게되면 다음과 같이 frida에 설정한 success 표시가 나오고, 루팅 우회가 성공한다
'Mobile > androgoat' 카테고리의 다른 글
Androgoat.apk (0) | 2021.09.28 |
---|