Mobile/Android

안드로이드 보안(2) - Frida 설치

월루이 2022. 7. 14.

 

안드로이드 보안 앱 모의해킹 목차

 

2022.05.13 - [Mobile/Android] - 안드로이드 보안(1) - 녹스 설치 및 ADB 설치(+ Burp suite 프록시 설정)

 

 


 

안드로이드 진단에 필수적인 툴 Frida를 설치해보는 시간을 가져보겠습니다.

폰과 진단 pc에 둘 다 설치해야합니다.

 

Frida란 ?

Ole가 개발한 DBI(Dynamic Binary Instrumentation) 프레임워크로, 파이썬 기반으로 만들어진 툴이기에 파이썬 라이브러리를 주로 사용합니다. 또한 연결된 단말에 대한 분석을 수행하기 위해선 디바이스에 Frida 서버를 추가적으로 구축해두어야 원활하게 작동합니다.

 

Instrumentation이란 ?

앱이 실행 중인 상태에서 코드 명령어를 삽입해 프로세스를 추적, 분석, 디버깅하는 도구를 말한다.

 

실행중인 앱에 특정 Javascript코드를 Injection하여 Windows, macOS, Linux, iOS, Android, and QNX 기반의 Native App에 대한 후킹(Hooking)을 통해 동적 분석을 진행할 수 있는 도구이다.

 

 

 


 

사전설치

프리다는 파이썬 기반으로 동작하기 떄문에 파이썬 설치가 필수이며, 파이썬 버전의 영향을 많이 받기 때문에 버전 관리가 필요합니다. 만약에 python을 하나만 사용할거면 패스하셔도 괜찮습니다.

그렇지만, 나중에 프리다의 버전이 바뀌고 파이썬의 버전이 바뀌면 관리하기 힘들다고 들어 저는 아나콘다를 설치했습니다.

 

 

1. 아나콘다 설치 및 독립된 파이썬 환경 구축

 

https://www.anaconda.com/products/individual

 

Anaconda | Anaconda Distribution

Anaconda's open-source Distribution is the easiest way to perform Python/R data science and machine learning on a single machine.

www.anaconda.com

 

다운 받는 중간에 꼭 환경변수 칸에는 체크 !!

 

 

 

아래 명령어 따라치기

 

python --version

conda create -n py3 python=버전

y

 

#가성환경 활성화
conda activate py3

#가상환경 비활성화
conda deactivate

 

 


 

python 설치가 되어 있지 않다면 ? 

 

아래 사이트에 접속하여 다운로드 해줍니다.

각자 os 맞게 다운받아 주세요.

 

https://www.python.org/

 

Welcome to Python.org

The official home of the Python Programming Language

www.python.org

 

 아래 빨간박스를 꼭 체크해줍니다.

(안 그러면 나중에 환경변수를 따로 설정해주어야 합니다ㅠ)

 

 

 

 

2. pc에 설치

 

아래 명령어로 설치해줍니다.

 

여기서 주의할 점은 pc에 깔린 frida와 기기에 넣어주는 fida 버전이 같아야합니다!!!

저는 기기에 넣어줄 프리다 서버를 15.1.28버전으로 다운받아줄 것이므로, 아래와 같이 작성했습니다.

pip3 install frida==15.1.28

pip3 install frida-tools

 

 

 

 

 

3. Frida 설치 (모바일 기기)

 

1) 아래 사이트에 접속하여 다운받아줍니다.

 

https://github.com/frida/frida/releases

 

Releases · frida/frida

Clone this repo to build Frida. Contribute to frida/frida development by creating an account on GitHub.

github.com

 

 

안드로이드 단말기의 경우 arm

애뮬레이터(nox)의 경우 x86를 각각 받아주시면 됩니다.

저는 갤럭시 a8을 이용하므로, arm 32비트로 받았습니다. 

 

 

 

 

자신의 기기가 32비트인지 64비트인지 모르겠다면 아래 명령어를 넣어주세요.

getprop ro.product.cpu.abi

64라는 단어가 들어가 있지 않다면, 해당 기기는 32bit에 해당됩니다.

( ex) armeabi-v7a )

 

 

 

2) 압축을 푼 다음, 해당 경로로 가서 아래와 같이 명령어를 쳐줍니다.

이때, 아나콘다 가상환경 활성화 후 진행해주세요 !

 

adb push frida다운받은경로/frida파일 /data/local/tmp

adb shell

su 

cd /data/local/tmp

#파일이 정상적으로 들어왔는지 확인
ls -al 

#파일을 확인해보면, 실행 권한이 없으므로 실행권한을 부여합니다.
chmod 777 frida파일 

# &은 백그라운드에서 실행시키겠다는 의미
./frida파일 &

# 실행중인 프로세스(frida) 확인
ps|grep frida

 

이때, Could not listen on address 127.0.0.1, port 27042: Error binding to address 127.0.0.1:27042: Address already in use 에러가 뜬다면

 

1. 프리다 서버 프로세스 아이디 확인 (ps | grep frida)

2.  프리다 서버 프로세스 종료 (kill -9 <확인한 프로세스 아이디 입력>)

을 진행해주세요.

 

 

cmd를 새로 관리자 권한으로 하나 실행시킨다음, 아래와 같이 진행해주세요.

 

activate py3

# USB로 연결된 디바이스에서 실행 중인 앱 목록
frida-ps -Ua

# 연결된 디바이스에서 실행중인 모든 프로세스 목록 출력
# frida-ps -U

 

댓글