01 - Page Assets Layers
커스텀 소개 매인페이지
보안/보안일지 int iron

Frida 오프라인 설치 (AOS)

Frida 오프라인 설치 (AOS)

이번에 앱 점검을 해야 하는 상황인데 툴 반입은 되지만 내부망만 사용해야 할 상황이 생겨서 한번 정리해보고자 기록을 남겨봅니다.

그리고 온라인 설치 방법이나 IOS에 설치하는 것을 알고 싶은 분은 예전에 제가 Github blog에 작성한 Frida 사용기를 참고 바랍니다.

Frida는 악용할 경우 법적인 문제가 발생할 수 있으니 저처럼 계약된 모의해킹 및 보안 점검 목적으로만 사용하고 괜히 이상한 곳에 사용하다가 법의 심판을 받지 말도록 항상 건전한(?) 보안 생활을 합시다.
악용해보고 싶다면 개인적으로 앱을 하나 만들어서 본인의 앱을 뚫어보는 걸 추천(?)합니다.

※ 본 글에서 설명하는 내용은 계약된 모의해킹 및 보안 점검 환경에서만 사용된 것입니다.
무단으로 타인의 시스템이나 서비스를 대상으로 사용할 경우 법적 책임이 발생할 수 있습니다.

사전준비

  1. 루팅된 모바일(안드로이드) 기기
  2. python 모듈 설치를 위한 whl 파일 준비
  3. 모바일 기기에 설치할 Firda-server 파일 준비

AOS 설치에 사용할 ADB(설치되어있다고 가정)

AOS에 설치

준비 [AOS 개발자모드 켜기]

"설정"에 들어가서 하단 "휴대전화 정보" 선택

"소프트웨어 정보" 선택

"빌드번호"를 계속 누르면 그림과 같이 "개발설정 완료 N단계 전입니다."와 같은 토스트 메시지가 나오다 "개발자 모드를 켰습니다." 로 변한다.

!

다시 "설정"으로 돌아가면 최 하단에 "개발자 옵션"이 생긴 것을 확인 가능하고 들어가

"USB 디버깅"을 활성화 합니다.

그 후 USB를 연결하면 그림과 같은 PC와 USB 디버깅 모드로 연결허용 여부를 물어보며 허용을 선택한다.

Frida server 설치

adb shell getprop ro.product.cpu.abilist

adb 명령어를 이용하여 모바일 기기의 CPU ABI 정보를 확인한 뒤, 해당 아키텍처에 맞는 frida-server 파일을 선택한다.

adb push frida-server /data/local/tmp/
adb shell
$ su
# cd /data/local/tmp/

adb push 명령어를 이용해 안드로이드 기기의 임시 디렉터리인 /data/local/tmp/ 경로로 파일을 전송한다.
그 후 shell을 이용해서 안드로이드로 접속 후 su 명령어로 root로 들어간다.

# chmod +x frida-server
# ./frida-server &

그 후 chmod 명령어로 실행 권한을 부여한 뒤 백그라운드로 실행한다.

Frida tools 설치

frida tools는 python 모듈로 pip를 사용해서 설치하면 되지만 여기서 중요한건 우리는 오프라인으로 설치할 예정이다.

그러면 그냥 pip를 사용하면 오프라인 상태에서는 못하므로 몇 가지 옵션을 사용해야 하는데

pip install -r requirements.txt --no-index --find-links=./package

이 명령어를 보자면

  1. --no-index: PyPI 저장소를 조회하지 않고 로컬 패키지만 사용(오프라인에서 패키지 파일만 이용해서 설치)
  2. --find-links=$PACKAGE_DIR_PATH: 패키지의 경로를 설정하는 옵션으로 "$PACKAGE_DIR_PATH"에 로컬 경로 입력

결과

frida-ps -Ua

명령어를 입력하여 frida가 동작하는지 확인해보면

잘 동작하는 것을 확인 할 수 있다.

느낀점

python 모듈 오프라인 설치 방법이 있다 듣긴 했는데 처음 해본다.
역시 내부망은 귀찮아...
:wq