d0r1

[androgoat] Root Detection 본문

모바일 진단/Android

[androgoat] Root Detection

d0r1 2023. 10. 25. 14:10

nox에서 root를 활성화 하였기 때문에 다음과 같이 Device is rooted 라고 알림이 뜨는 것을 확인할 수 있다

 

우리는 이를 회피하여, Device가 root 상태가 아니라고 인지하도록 하여야 한다.

 

해당 과정을 거쳐서 root인지 아닌지를 파악하는 듯 하다.

arrayofstring와 동일한 폴더 혹은 파일이 체크하고, 그 파일이나 폴더가 존재한다면 root임을 파악하는 듯 하다.

 

기본적으로는 해당 파일이나 폴더가 생성되어있지 않기 때문에

해당 폴더나 파일이 있으면, 당연히 root 사용자임을 알 수 있다.

 

이를 우회하는데에는 두 가지 방법을 파악하였다

1. objection을 통한 root 우회

2. 디컴파일하여 클래스 수정을 통한 우회

 


1. objection을 통한 root 우회

 

ios 취약점 진단을 하면서 사용했던 objection을 윈도우에서도 설치가 가능하다.

설치방법에 대해서는 나중에 정리하겠다

 

우선

(1) objection -g (gadget명) explore -s "Script명" 으로 수행하거나

혹은

objection 안으로 들어가서, 

(2) android root disable

해당 구문을 입력함으로써 root를 비활성화 시킬 수 있다.

 

(1) 

(2) 

 

objection을 통해 비활성화를 진행하였다면

root detection의 check root를 눌러보자

아까와 다르게, device is not rooted라고 출력되는 모습을 확인할 수 있다.

 

2. 클래스 파일 수정을 통한 root 우회

앞서 arrayofstring에 포함되지 않으면 된다고 말했다.

그럼 arrayofstring의 내용을 전부 바꾸면 된다.

 

우선, apk 파일을 decompile 해준다.

해당 파일을 수정한다

arrayofstring에 해당하는 모든 부분을 수정해준다.

나의 경우에는 절대 존재할 수 없을 거 같은 이름으로 변경을 하였다.

그 후, easy apk tool을 통해 컴파일을 수행해준다

해당 명령어를 통해 apk 파일로 변환해준다

이 상태에서 adb install andgoat.apk를 하면 오류가 발생한다

이는 인증되지 않은 파일이기 때문에 그렇다.

그래서 apk signing이 필요하다

apktool의 이 기능을 통해 signing을 수행하고

adb install andgoat를 수행해주면 된다

그러고나서, 해당 앱을 열어준 다음 root detection을 수행해보면

따로 objection을 통해 우회하지 않았음에도 불구하고

abcd~~와 같은 파일 혹은 폴더를 찾을 수 없어서 다음과 같이 root가 아니라고 출력되게 된다.

'모바일 진단 > Android' 카테고리의 다른 글

emulator_properties 우회하기  (0) 2025.04.02
[androgoat] HardCode Issue  (0) 2023.10.25
[androgoat] side channel data leakage  (0) 2023.10.24
[androgoat] Input Validations  (0) 2023.10.24
[androgoat] Insecure Data Storage  (0) 2023.10.23