기존에 Nox를 사용하면 WSL를 동시에 사용하지 못해 Bluestack 5를 이용해 WSL2 + Bluestack 5 환경에서 앱 진단 환경을 구성하는 방법에 대해 설명하겠습니다.
WSL과 Nox로 인해 고생하고 계시는 분들에게 도움이 되었으면 합니다.
사전 준비
1. Bluestack conf 수정
C:\ProgramData\BlueStacks_nxt 폴더의 bluestack.conf 파일을 열어 아래 설정 항목을 0에서 1로 수정 후 저장한다.
bst.feature.rooting="0" -> bst.feature.rooting="1"
bst.instance.Pie64.enable_root_access="0" -> bst.instance.Pie64.enable_root_access="1"2. Enable R/W
C:\ProgramData\BlueStacks_nxt\Engine\Pie64 폴더의 Android.bstk.in, Pie64.bstk 파일을 열어 아래와 항목의 Readonly를 Normal로 수정한다.
<HardDisk uuid="{...}" location="fastboot.vdi" format="VDI" type="Readonly" />
<HardDisk uuid="{...}" location="Root.vhd" format="VHD" type="Readonly"/>
<HardDisk uuid="{...}" location="fastboot.vdi" format="VDI" type="Normal" />
<HardDisk uuid="{...}" location="Root.vhd" format="VHD" type="Normal"/>Android.bstk.in, Pie64.bstk 각각의 파일을 모두 수정해야 된다.
3. Kitsune Mask APK설치
Kitsune Mask APK 를 Bluestack에 설치한다.

Kitsune Mask 앱 실행 후 아래와 같이 진행하여 루팅하여 준다.



정상적으로 마무리 되면 Bluestack을 종료한다.
4. Bluestack conf 수정 및 SU shell 활성화
1단계에서 진행했던 C:\ProgramData\BlueStacks_nxt 폴더의 bluestack.conf 파일을 기존 설정대로 변경하고 Bluestack을 실행하여 준다.
bst.feature.rooting="1" -> bst.feature.rooting="0"
bst.instance.Pie64.enable_root_access="1" -> bst.instance.Pie64.enable_root_access="0"앱을 실행 후 앱 설치를 통해 앱을 설치하여 준다.

이후 슈퍼유저 메뉴로 들어가 [SharedUID] 셸 항목을 활정화 시켜준다.

5. ADB 활성화 및 루팅 여부 확인
Bluestack 설정에서 Android 디버그 브리지(ADB)를 활성화 한다.

간혹 adb가 바로 접근이 안될때 adb connect 127.0.0.1:5555 명령어를 통해 연결 후 접근 시도해준다.
adb를 통해 root 셸에 정상적으로 접근되는지 확인한다.
PS C:\Users\USER> adb shell
taimen:/ $ whoami
shell
taimen:/ $ su
taimen:/ # whoami
root6. BurpSuite 인증서 설치
우선 Burpsuite를 실행하여 인증서를 받는다.

추출한 der 파일을 openssl을 이용해 pem 파일로 변형해준다.
openssl x509 -inform DER -in burp.der -out burp.pem
openssl x509 -inform PEM -subject_hash_old -in burp.pem | head -1
9a5ba575
mv burp.pem 9a5ba575.0adb push를 통해 pem 파일을 업로드 후 system 인증서 위치에 pem 파일을 옮겨준다.
adb push 9a5ba575.0 /sdcard
9a5ba575.0: 1 file pushed, 0 skipped. 5.8 MB/s (1330 bytes in 0.000s)
adb shell
taimen:/ $ su
taimen:/ # mount -o rw,remount /system
taimen:/ # mv /sdcard/9a5ba575.0 /system/etc/security/cacerts
taimen:/ # chmod 644 /system/etc/security/cacerts/9a5ba575.0
taimen:/ # chown system:system /system/etc/security/cacerts/9a5ba575.0Bluestack을 재실행해준다.
7. Bluestack Proxy 설정
Bluestack은 Proxy 설정을 막아놓았기 때문에 일반적인 방식이 아닌 다른 방식을 통해 Proxy 설정을 해야된다.
여러 방법이 존재하지만 가장 간단한 방법을 통해 진행하는 방법을 설명하겠다.
현재 내 아이피로 adb 명령어를 입력해주면 된다.
ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.10 netmask 255.255.255.0 broadcast 192.168.1.255
ether 14:4f:8a:16:65:25 txqueuelen 1000 (Ethernet)
RX packets 1504 bytes 2353039 (2.2 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 652 bytes 52090 (50.8 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
adb shell settings put global http_proxy 192.168.1.10:8888비활성화 시 아래 명령어 입력
adb shell settings put global http_proxy :0WSL2 + Bluestack 5를 같이 사용할 수 있게 된다.

8. Frida 설치
Frida github에서 frida-server-android를 다운 받아 adb를 통해 업로드 후 실행 해주면 된다.
adb push frida-server-android-x86_64 /data/local/tmp
frida-server-android-x86_64: 1 file pushed, 0 skipped. 34.8 MB/s (110713240 bytes in 3.031s)
adb shell
taimen:/ $ su
taimen:/ # cd /data/local/tmp
taimen:/data/local/tmp # chmod 777 frida-server-android-x86_64
taimen:/data/local/tmp # nohup ./frida-server-android-x86_64 &이후 pip를 통해 frida, objecton 설치 후 frida-server와 통신이 되는지 확인한다.
pip install frida objection
frida-ps -U
PID Name
---- --------------------------------------------
3486 Google Play 게임즈
3222 Google Play 스토어
2772 Home
3924 Kitsune Mask
1920 RTVboxGuestService
3170 Store
4756 adbd
2430 android.ext.services
1899 [email protected]
1900 [email protected]
1901 [email protected]
1902 [email protected]마무리
다음은 환경 별 SSL Pinning 우회 방법으로 돌아오겠습니다.👍