분석도구 설치 및 세팅

유서정·2024년 3월 25일

개요

보안솔루션 우회 및 내부 기능에 대한 취약점 식별

📊어플리케이션 분석 도구⭐

주로 사용되는 모바일 분석 도구

보안 취약점 탐지, 소스코드 분석 등 수행 가능

NameDescriptioin
Nox가상 에뮬레이터
Android Debug Bridge (ADB)Device와 통신할 수 있는 CLI 기반 도구
Frida동적분석 도구, Software 개발 및 연구에사용
JADXDex, Java 소스코드Decompile 도구(CLI, GUI)
ScrcpyDevice 미러링 도구
LogcatDevice 실시간 로깅
MobSF정적및 동적 분석자동화도구

⑴ Nox

가상 안드로이드 에뮬레이터

에뮬레이터: 컴퓨터나 다른 장치에서 특정 하드웨어나 소프트웨어의 동작을 시뮬레이트하는 가상 기기

⑵ Android Debug Bridge (ADB)

안드로이드 디바이스와 통신할 수 있도록 지원해주는 명령줄(CLI) 도구

#명령어

함수설명
$adb devices연결된 장비 목록확인
$adb connect [HOST]:[PORT]장비 연결
$adb push {local_file} {remote_path}연결된 장비에 파일 복사
$adb pull {remote_path_file} {local_path}연결된 장비에서 파일 가져오기
$adb shell pm list packages장비에 설치된 앱 패지키명 리스트
$adb shell연결된 장비에 Shell로 연결


⑶ Frida

• 실행 중인 애플리케이션에 연결하여 그 행동을 실시간으로 조작하고 관찰할 수 있는 동적 분석 도구
• JavaScript 사용으로, Code InjectionHooking

Hooking은 메소드 호출 가로채는 것

#명령어

함수설명
$frida –U {app_package_name}연결된 장비에 파일 복사
$frida –U –l {script_file}연결된 장비에서 파일 가져오기
$frida –U –l {script_file} –f {app.package_name}장비에 설치된 앱 패지키명 리스트
$frida-ps –U (실행중인 프로세스 목록)연결된 장비에 Shell로 연결

#-U : USB Connect
#-l : Script
#-D : 연결할 디바이스 ID, [IP ADDR]:[PORT]
#-R : Remote frida server connect
#-H : Remote frida server Host connect
#-P : Hooking PID

FRIDA vs. ADB 구분

  • ADB
    안드로이드 디바이스와 컴퓨터 간의 통신을 위한 도구
    파일 관리, 디버깅 및 셸 액세스와 같은 기능을 제공
  • FRIDA
    애플리케이션의 동적 분석 및 조작에 사용되는 프레임워크
    코드의 실행 중에 변경을 가능하게 함

⑷ JADX

• 동적분석 도구
• Dex, Java 소스코드 Decompile 도구
(Dex 파일 Decompile => Java 소스코드 예측 생성)

FRIDA vs. JADX 구분

  • JADX는 분석 목적으로 사용
    : Dex 파일 Decompile하여 Java 소스코드 예측해 생성해냄

  • FRIDA는 실행 중인 애플리케이션의 메모리에 직접 코드를 주입하거나 수정하여 앱의 동작을 실시간으로 변경

설치 및 세팅

Nox 세팅

멀티 설정 이후 신규 생성

≡ → 시스템 정보 → CPU VT "켜기" 상태인지 확인

윈도우 기능 → Hyper-V / 가상 머신 플랫폼 체크해제

[pip -> python 환경 변수도 설정해주기]
https://blog.naver.com/jaeyoon_95/222228697034

frida 설치

pip install frida

pip install frida-tools

설치 확인 및 버전 확인

안드로이드 버전 확인

JADX 설치

https://github.com/skylot/jadx

JRE 설치
https://www.oracle.com/java/technologies/downloads/#jdk22-windows

ubuntu에 docker 설치
apt-get install docker.io

sudo apt-get install git

doker -v
git -v

[Could not get lock /var/lib/dpkg/lock-frontend 에러 참고]
https://kgu0724.tistory.com/71

nox에 설치 apk 파일

frida adb 서버 세팅

에뮬레이터(Nox)에 adb를 통해 연결

nox_adb.exe connect 127.0.0.1:62025

에뮬레이터(Nox)의 셸을 열고 Frida 서버를 실행

adb shell
/ # su
/ # cd /data/local/tmp
/ # chmod 777 frida-server-16.2.1-android-x86_64

[./ 누른다음 Tab 하면 파일 이름 자동완성]
[뒤에 & 붙여서 백그라운드 실행]
/frida-server-16.2.1-android-x86_64 &
/ # ps -ef | grep frida

frida -U -l test1.js -f com.stl.stllab

특정 Android 애플리케이션(com.stl.stllab)에서 실행될 JavaScript 파일을 Frida를 사용하여 로드하도록 지시하는 명령어.

  • -U: USB를 통해 연결된 장치를 대상으로 작업한다는 것을 나타냄

  • -l test1.js: 로드할 JavaScript 파일을 지정. 즉, 대상 애플리케이션에 삽입될 코드를 정의

  • -f com.stl.stllab: Frida가 대상으로 하는 애플리케이션의 패키지 이름을 지정. 여기서는 com.stl.stllab로 지정되었으므로 이 애플리케이션을 대상으로 Frida 스크립트가 적용.

    리소스 > AndroidManifest.xml 파일에 package 참고

!오류 -> adb 다시 연결

profile
information security

0개의 댓글