[Android Hacking] 환경 세팅
이번 포스팅에서는 안드로이드 해킹 환경을 어떻게 세팅하는지 소개하겠습니다.
1. Tools
안드로이드 해킹 환경에서는 기본적으로 Nox나 Android Studio와 같은 에뮬레이터를 활용합니다.
물론, 루팅된 실제 기기를 사용하는 것도 좋은 선택입니다.
이번 포스팅에서는 Android Studio를 활용한 환경 구축 방법을 소개하겠습니다.
Android 스튜디오 및 앱 도구 다운로드 - Android 개발자 | Android Studio | Android Developers
Android Studio provides app builders with an integrated development environment (IDE) optimized for Android apps. Download Android Studio today.
developer.android.com
두 번째 툴은 Burp Suite입니다.
Burp Suite는 네트워크 패킷을 가로채고 분석하는 데 사용됩니다.
Professional / Community 2025.3.3
We've upgraded Burp's browser to Chromium 135.0.7049.96 for Windows & Mac and 135.0.7049.95 for Linux. For more information, see the Chromium release notes.
portswigger.net
다운로드가 완료되면 pip install frida-tools 명령어를 입력하여 설치해주시면 됩니다.
Frida는 실행 중인 앱을 실시간으로 후킹하고 조작할 수 있게 도와주는 동적 인스트루멘테이션 도구입니다.
간단히 말해, 앱이 어떻게 동작하는지 내부를 들여다보고, 필요한 부분은 마음대로 바꿀 수 있게 해주는 도구입니다.
2. Android Emulator 세팅
Android Studio를 실행하면 아래와 같은 화면이 표시됩니다.
여기서 More Actions를 클릭한 뒤, Virtual Device Manager 항목을 선택해주시면 됩니다.
에뮬레이터는 + 버튼을 눌러 새로 추가할 수도 있습니다.
저는 현재 Pixel 4, API 35 버전을 사용 중입니다.
3. Rooting
Google Play 버전 에뮬레이터는 루팅이 불가능합니다.
따라서 rootAVD를 사용하여 루팅된 에뮬레이터를 구성해야 합니다.
GitHub - newbit1/rootAVD: Script to root AVDs running with QEMU Emulator from Android Studio
Script to root AVDs running with QEMU Emulator from Android Studio - newbit1/rootAVD
github.com
에뮬레이터를 실행한 후,
rootAVD를 설치하고 나서 rootAVD.bat 파일을 (Windows 기준) CMD에서 실행해줍니다.
rootAVD.bat ListAllAVDs
위 명령어를 입력하면 현재 실행 중인 모든 AVD 목록이 표시됩니다.
AVD ( Android Virtual Device )
그 다음, 아래와 같은 화면이 나타납니다.
여기서 적절한 안드로이드 시스템 이미지를 선택한 후, 아래 명령어들을 통해 루팅 및 추가 설정을 적용할 수 있습니다:
추가 옵션에 대한 자세한 내용은 위에 소개한 GitHub 저장소에서 확인하실 수 있습니다.
다음과 같이 명령어를 입력하여 루팅을 진행합니다.
rootAVD.bat system-images\android-35\google_apis_playstore\x86_64\ramdisk.img
중간에 아래와 같은 선택 창이 나타날 수 있지만, 별다른 조작 없이 그대로 기다리시면 됩니다.
[?] Choose a Magisk Version to install and make it local
[s] (s)how all available Magisk Versions
[1] local stable '25.2' (ENTER)
[2] stable 28.1
[3] canary 427a1ca4(28104)
[4] alpha ()
이후 아래와 같은 메시지가 출력되면 루팅이 성공한 것입니다.
이때 에뮬레이터가 자동으로 종료되는데, 당황하지 마시고 다시 실행하시면 루팅된 상태로 구동됩니다.
[-] Success
[-] Shut-Down and Reboot [Cold Boot Now] the AVD and see IF it worked
[-] Root and Su with Magisk for Android Studio AVDs
[-] Modded by NewBit XDA - Jan. 2021
[*] Huge Credits and big Thanks to topjohnwu, shakalaca and vvb2060
[-] Trying to shut down the AVD
[!] If the AVD doesnt shut down, try it manually!
이제 adb shell에 접속한 후 su 명령어를 입력해보면, 루팅이 정상적으로 적용된 것을 확인할 수 있습니다.
3. Burp Suite 설정 및 프록시 연결
CMD에서 ipconfig 명령어를 입력하여 PC의 내부 IP 주소를 확인해주세요.
서브넷 마스크, 게이트웨이, IPv6 주소는 모두 가려두었습니다.
먼저 프록시를 사용하기 위해 안드로이드 기기의 설정으로 들어가 주세요.
그 다음 네트워크 및 인터넷 → 인터넷 항목으로 들어가면, 현재 연결된 Wi-Fi 목록이 표시됩니다.
사용 중인 Wi-Fi 네트워크를 선택한 후, 연필 모양 아이콘(편집)을 눌러 설정을 수정합니다.
그 다음, 아래와 같이 설정을 진행해줍니다.
이제 에뮬레이터 화면 오른쪽에 있는 ... (더보기) 버튼을 클릭한 뒤, 아래와 같이 설정을 변경해줍니다.
그 다음, Burp Suite를 실행한 후 Proxy 메뉴로 이동해줍니다.
그리고 Proxy settings을 눌러줍니다.
Proxy Listeners 목록에서 Add 버튼을 눌러 새로운 리스너를 추가해줍니다.
자신의 PC IP 주소를 선택한 후, 포트는 8080으로 설정하여 바인드하면 됩니다.
이제 에뮬레이터에서 Chrome 브라우저를 열고, http://<자신의 PC IP>:8080 주소로 접속해봅니다.
해당 페이지에서 CA Certificate라고 적힌 부분을 클릭하면, .der 형식의 인증서가 다운로드됩니다.
다운로드가 완료되면, 다운로드 폴더로 이동하여 파일 이름을 cacert.cer로 변경해줍니다.
또는 아래 명령어를 사용하여 이름을 변경할 수도 있습니다:
adb shell
cd /sdcard/Download/
mv ./cacert.der ./cacert.cer
이제 다시 설정으로 들어가서,
인증서 설치 → CA 인증서 항목을 선택해줍니다.
그 다음, cacert.cer 파일을 선택하면 인증서가 설치됩니다.
이제 Chrome에서 아무 웹사이트에 접속한 후, Burp Suite에서 Intercept 기능을 활성화하면
패킷이 정상적으로 캡처되는 것을 확인할 수 있습니다.
3. Frida
먼저 CMD에 아래 명령어를 입력하여 CPU 아키텍처를 확인합니다.
저는 x86_64 아키텍처가 출력되었습니다.
adb shell getprop ro.product.cpu.abi
frida 설치
pip install frida
pip install frida-tools
Frida가 정상적으로 설치되었다면,
이제 자신의 아키텍처에 맞는 Frida Server 버전을 다운로드하여 설치해줍니다.
Releases · frida/frida
Clone this repo to build Frida. Contribute to frida/frida development by creating an account on GitHub.
github.com
압축을 해제한 후, /data/local/tmp 경로에 파일을 push해줍니다.
adb push ./frida-server-16.7.14-android-x86_64 /data/local/tmp
그 다음 adb shell에 접속한 뒤, 아래 명령어를 입력해줍니다.
adb shell
su
cd /data/local/tmp
chmod +x ./frida-server-16.7.14-android-x86_64
./frida-server-16.7.14-android-x86_64
그 다음 CMD에서 frida-ps -U 명령어를 입력했을 때, 아래와 같이 프로세스 목록이 출력되면 성공적으로 연결된 것입니다.
이것으로 이번 포스팅을 마치겠습니다.
읽어주셔서 감사합니다!