# 경고
나열된 해킹 기법들은 학습의 목적으로만 사용해야하며,
악의적인 목적으로 사용 시 발생하는 모든 법적 책임은 악용한 본인에게 있습니다.
해당 글을 열람한다는 것은 위 내용에 동의함을 의미합니다.
UnCrackable1 루팅(Rooting) 탐지 우회
환경 구성은 다음 글을 확인
https://seo1-say.tistory.com/39
[안드로이드 모의해킹] Android Hooking 환경 구성
▼▼▼▼▼ 기본적인 안드로이드 후킹 환경 구성하기 Android Hooking 에 필요한 최소 진단 도구 Python 2 / Python 3 Jadx-gui Platform-tools(adb) Nox Player 대상 APK 파일 Frida Frida-server 1. 파이썬 설치 Python 2버전
seo1-say.tistory.com
Nox Player 포트 연결
adb connect 127.0.0.1:62001
adb 쉘 접속
adb shell
쉘 접속 후에는 리눅스 명령어와 동일하게 사용가능하다.
Nox Player 안에 설치되어 있는 모든 앱의 패키지 명과 경로를 불러온다.
pm list packages -f
=를 기준으로 앞 부분은 실제 앱이 설치된 경로, 뒷 부분은 패키지명이다.
후킹을 할 때는 패키지명을 주로 이용한다.
녹스에 있는 앱의 APK 파일을 가져오는 명령어이다.
adb pull [apk 경로]
(단, 실제 앱의 apk 파일을 불러오면 집에 경찰이 올 수도 있으니 함부로 사용하는 것은 좋지 않다.)
실습에는 UnCrackable 이라는 안드로이드 보안 테스트용 앱을 사용한다.
안드로이드 앱 레벨은 1~3까지 있고, 해당 글은 레벨 1에 해당한다.
jadx-gui 에 UnCrackable1 APK 파일을 연다.
녹스에서 UnCrackable1 을 실행하면 루팅 탐지를 하고 있고, OK를 누르면 앱이 종료되는 것을 알 수 있다.
이제 이 루팅 탐지를 우회하여 앱이 종료되지 않도록 해본다.
우선 frida 사용을 위해 frida-server를 녹스에 넣어 백그라운드로 실행하는 작업이 필요하다.
adb connect 127.0.0.1:62001
adb push [frida-server 파일명] /data/local/tmp
adb shell
cd /data/local/tmp
ls -al
chmod 755 [frida-server 파일명]
./[frida-server 파일명] &
코드를 보면 MainActivity의 onCreate 함수에서 if문을 사용하여 루팅 및 디버깅을 탐지하고 있는 것으로 보인다.
참(true)일 때 a()를 실행하기 때문에 a, b, c 를 false로 만들어주면 후킹이 가능할 것 같다.
후킹 코드는 다음과 같다.
unc1_hooking.js
Java.perform(function() {
console.log("[*] java perform function");
var sg = Java.use('sg.vantagepoint.a.c');
sg.a.overload().implementation = function() {
console.log("[*] function a bypass");
return false;
};
sg.b.overload().implementation = function() {
console.log("[*] function b bypass");
return false;
};
sg.c.overload().implementation = function() {
console.log("[*] function c bypass");
return false;
};
});
adb 접속 후 녹스에 Uncrackable 앱을 실행한 상태로 진행한다.
먼저 패키지명을 확인한다.
pm list packages -f | grep uncrackable
owasp.mstg.uncrackable1
다음 명령어는 adb가 아닌 다른 cmd 창을 킨 후 윈도우에서 실행한다.
frida -U -f [패키지명] -l [실행할 후킹코드 경로]
frida -U -f owasp.mstg.uncrackable1 -l C:\android\02.frida_code\unc1_hooking.js
UnCrackable1 앱의 루팅 탐지가 우회되는 것을 볼 수 있다.
'Security > 안드로이드 모의해킹' 카테고리의 다른 글
[안드로이드 모의해킹] Android Hooking 환경 구성 (0) | 2023.08.27 |
---|---|
안드로이드 취약점 진단/모의해킹 전 알아야 할 이론 (0) | 2023.08.26 |