Android Penetration Testing Basics
Table of Contents
ADB (Android Debug Bridge)
ADB는 모든환경에서 실행이 가능한 실행파일입니다. 구성은 Client, Server, Demon으로 되어 있습니다.
Client 와 Server는 Host Machine 에 설치되어있고, Demon은 안드로이드에서 실행 됩니다.
adb
같은 명령어를 치면 demon이 해당 명령어를 수행하고 서버가 communication을 담당합니다.
ADB Basic Commands
adb devices # List all devices
adb connect # Connect to the device
adb install # install a package
adb logcat # view the system log
adb shell netcat -a # Get interactive shell
adb push # Upload a file to a device
adb pull # Download a file from a device
How to connect the device using ADB (ADB를 이용하여 에뮬레이터 연결)
안드로이드 에뮬레이터를 Kali Linux adb
에 연결시키기 위해서는 먼저 다음과 같은 준비물이 필요합니다.
- Android Studio (윈도우 호스트)
- 디바이스 루팅을 하기위해서, 안드로이드 스튜디오에 구글 플레이스토어 마크가 없는 디바이스를 선택해서 설치를 진행하시면 됩니다.
- Kali Linux (NAT 환경)
다음과 같은 준비물이 완료가 되었으면 Kali Linux와 연결을 시켜주면 됩니다.
Kali Linux에서,
adb connect 10.0.2.2
를 에뮬레이터가 켜진 상태로 해줍니다. 아마 안드로이드 스튜디오를 설치하시고 나시면 해당 디바이스의 IP Gateway가10.0.2.2
로 잡힐것 입니다. 해당 명령어를 치고 나면, 에뮬레이터 창에 연결 팝업창이 뜰텐데 Allow를 눌러주시면 됩니다.adb devices
- 현재 연결된 디바이스를 확인합니다.연결이 되었다면
adb shell
명령어로 Shell을 연결해 줍니다.
How to install frida (Frida 에뮬레이터에 설치하기)
pip install frida-tools
로 해당 툴을 설치 해줍니다.pip install frida
로frida
를 설치해 줍니다.frida-server
를 설치하기전, 에뮬레이터로 가서adb shell getprop | grep -i "cpu"
를 해주어 CPU 버전을 먼저 체크해 줍니다.- 해당 CPU 버전에 따른
frida-server
파일을 다운 받아줍니다. - 다운 받은
frida-server
를 Android Emulator에adb push ./frida-server /data/local/tmp
폴더에 넣어줍니다. - 해당 서버 파일의 권한을
chmod 777 /data/local/tmp/frida-server
로 만들어 줍니다. - ADB환경에서
./frida-server &
명령어를 이용하여 백그라운드로 돌려줍니다. - Frida 서버가 제대로 돌아가는지 다음 명령어를 적용하여 확인해 줍니다.
ps -ef | grep frida
Frida Command (Frida 명령어)
frida-ps -Uai # PID, Name, Identifer 확인
frida -U <Name> ./injectscript.js # 스크립트 인젝션