[모의해킹] Frida를 통한 안드로이드 루팅 탐지 우회(루팅 우회 , Frida 안티디버깅 우회)

cielo ru·2024년 7월 20일
0

모의해킹

목록 보기
5/14
post-thumbnail

➰ 루팅이란?

루팅(Rooting)이란 안드로이드 기기에서 최고 권한(root)을 얻는 것을 의미한다. 루트 권한을 획득하면 사용자는 시스템 파일과 설정에 완전한 접근이 가능해진다. 이를 통해 시스템 내부 저장소 접근, 권한 변경 등 다양한 작업을 수행할 수 있습니다.

안드로이드에서는 기기의 안정적인 동작을 보장하기 위해 일반 사용자에게 루트 권한을 제한하고 있다. 따라서, 앱의 안정성과 무결성을 유지하고, 사용자 데이터를 보호하며, 악성 행위를 방지하기 위해 루팅 탐지가 필요하다.

루팅 우회는 Frida를 통해 이루어지기 때문에 Frida 서버가 먼저 실행중이어야 한다. 기기에 Frida 서버가 있는지 확인을 먼저 해야한다.


➰ Frida 설치 확인

  1. 기기와 PC를 연결한다.
  • 안드로이드 기기로 점검을 진행한다면 USB 케이블로 기기와 PC를 연결한다.
    **usb 디버깅을 켜줘야 한다.

  • PC 에 깔린 Nox Player로 점검을 진행한다면 Root를 켜주고 아래 명령어를 통해 PC와 Nox player를 연결한다.
    *시스템 설정 - 기본 설정 - ROOT 켜기

    
    > adb connect 127.0.0.1:62001
    

  1. 연결을 확인한다.
> adb devices

  1. 애뮬레이터에 접속하여 기기에 프리다 서버 설치 여부를 확인한다.
> adb shell

> cd /data/local/tmp

> ls -al

📍 기기에 프리다 서버가 없다면 설치된 프리다 서버를 기기에 전송해주어야 한다.

3-1. 새로운 cmd 창을 열어서 아래 명령어를 실행한다.
* adb shell 이 아닌 윈도우 cmd에서 진행하여야 한다.

> cd [윈도우에서 frida-server가 설치된 경로]
> adb push frida-server-xx.x.x-android-arm64 /data/local/tmp/
  • 설치된 프리다 서버를 기기에 전송한다.

3-2. 애뮬레이터에 다시 접속하여 기기에 프리다 서버 설치 여부를 확인한다.

> adb shell

> cd /data/local/tmp

> ls -al

3-3. 프리다 서버를 실행하기 위해 실행권한을 부여한다.

chmod 755 /data/local/tmp/frida-server-xx.x.x-android-arm64

기기에 Frida Server가 설치되어 있는 것을 확인하고 실행권한을 부여했다.


🌱 프리다 서버를 이용하여 루팅 우회를 진행하는 과정에서 bypass_root.js 파일이 루트 우회만 하는 스크립트가 작성되어 있다. 따라서 frida 탐지를 하는 Oh bank 앱에서 루트 우회를 하기 전에 frida 우회를 한 후 실행시키고, 루트 우회를 해야 한다. Frida 안티디버깅 우회를 먼저 해보자.

➰ Frida 안티디버깅 우회

안티디버깅 우회란?

안티디버깅은 디버깅을 방지하여 소스코드 분석을 하지 못하도록 하는 기술이다.
안티디버깅 우회를 한다는 것은 애플리케이션이 디버거(Frida 포함)의 존재를 감지하는 방법을 우회하는 것을 의미한다.
Oh bank의 경우 프리다의 기본 포트(27042)를 사용하고 있는지 확인함으로써 Frida 탐지를 하고 있다. 따라서 Frida를 실행할 때 기본 포트를 사용하지 않으면 프리다 감지를 하지 않을 것이다. 이 방법으로 우회를 진행해보자.

  1. 단말기를 컴퓨터와 연결한 경우 adb를 사용해 포트 포워딩을 해주고, NOX player를 사용중인 경우 nox_adb를 통해 포트포워딩 해준다.
> adb forward tcp:17000 tcp:17000

> nox_adb forward tcp:17000 tcp:17000
  • 로컬 머신의 17000번 포트와 안드로이드 기기의 17000번 포트 간에 네트워크 통신이 가능하다는 의미이며, 모두 17000포트를 사용하게 한다는 의미이다.
  1. frida 서버도 17000 포트로 실행시킨다.
> adb shell /data/local/tmp/frida-server-16.1.4-android-arm64 -l 0.0.0.0:17000 &

  • & 는 백그라운드에서 실행시킨다는 의미이다. (생략가능)
  1. 윈도우 cmd에서 frida-server 가 실행중인지 확인한다.
> frida-ps -Ua

-> Oh bank 앱에서 frida-server 가 실행중이다.

➰ 루팅 우회

  1. 아래 링크에서 frida로 루트 우회하는 js 파일을 다운받는다.

    frida-script

    >frida-android-hook > methods > bypass_root.js

    이 외에 다양한 스크립트가 있으니 참고해보면 좋을 것 같다.

  2. 새로운 윈도우 CMD 에서 frida로 루팅 우회하는 스크립트를 실행하여 루팅 우회를 시도한다.

frida -U -f com.app.damnvulnerablebank -l C:\Users\MBD-N-05\Desktop\frida-android-hook-master\frida-android-hook\methods\bypass_root.js

❓ com.app.damnvulnerablebank란?

실행중인 프로세스의 identifier 이다.

> frida-ps -Ua


➰ 참고

profile
Cloud Engineer & BackEnd Developer

0개의 댓글