드로이드PPPwn
PPPwn_cpp_android를 사용하는 Android 프런트엔드
- 여기에는 arm-android 및 x86-android용으로 특별히 컴파일된 GUI, PPPwn_cpp 바이너리와 지원되는 모든 펌웨어(7.00-11.00)에 대한 stage1.bin + stage2.bin이 포함되어 있습니다.
- 펌웨어 9.00, 9.60, 10.xx, 11.00의 경우
stage2.bin
Sistr0 저장소에서 가져옵니다. 즉, GoldHEN 페이로드를 로드할 수 있습니다. - 펌웨어 7.0x, 7.5x, 8.0x, 8.5x, 9.03, 9.04의 경우
stage2.bin
EchoStretch ps4-hen-vtx-pppwn
에서 가져옵니다. 즉, PS4HEN 페이로드를 로드할 수 있습니다. -
adb push stage2.bin /sdcard/
통해 자체 stage2.bin
외부 저장소 루트 폴더에 배치할 수 있습니다.
요구사항
-
root access
권한이 있는 Android 기기, 최소 버전 Android KitKat 4.4 - OTG USB 케이블 또는 어댑터
- USB 이더넷 어댑터
- 이더넷 케이블
또는 기기에 내장된 이더넷 포트가 있는 경우 Android TV 박스의 경우처럼 이를 사용할 수 있습니다.
용법
- 이 저장소에서 최신 릴리스를 다운로드하여 Android 휴대폰에 설치하세요.
- PS4에서: 원래 PPPwn의 지침에 따라 이더넷 연결을 구성합니다.
- DroidPPPwn 애플리케이션을 시작하고 PS4 펌웨어를 선택하세요.
-
Test Internet Connection
화면에서 앱의 Start
버튼과 컨트롤러의 X를 동시에 누르세요. - 익스플로잇이 4단계에 도달하고 메시지가 모니터에 인쇄될 때까지 기다리세요.
- 익스플로잇이 실패하면
Start
버튼을 다시 클릭하여 중지하고 마지막 단계를 다시 반복하세요.
여기에서 실행 예: https://youtu.be/SQT7AgTtrDY
PPPwn 바이너리 빌드 및 패키징 정보
이 패키지에 제공되는 바이너리에 대한 몇 가지 설명입니다.
실행 권한을 얻기 위해 기본 앱 비공개에서 모든 바이너리를 추출하기 위해 가짜 pppwn.jar
(zip, app/libs 프로젝트 폴더에서 찾을 수 있음)을 포함하여 Android Studio 패키징 시스템을 속여야 했습니다. 폴더 /data/data/it.deviato.droidpppwn/lib/
. 설치 직후에 추출된 4개의 파일을 찾을 수 있습니다. 이 파일은 libXXX.so
라는 가짜 라이브러리이며 실제로는 zip 아카이브이기도 하며 각 파일에는 서로 다른 아키텍처에 대한 바이너리(및 다양한 stage1
및 stage2
파일 포함)가 포함되어 있습니다.
앱을 처음 열면 아키텍처를 인식하고 적절한 바이너리를 추출합니다. 4개의 파일과 관련 아키텍처는 다음과 같습니다.
- armeabi-v7a/libpppwnkk.so -> for 32bit armv7l, minimum sdk 19 (KitKat 4.4), libc shared build (cannot link static due to some ndk bugs)
- armeabi-v7a/libpppwn.so -> for 32bit armv7l/armv8l, minimum sdk 21 (Lollipop 5.0), static build
- arm64-v8a/libpppwn.so -> for 64bit armv8a+, minimum sdk 21, static build
- x86/libpppwn.so -> for 32bit x86 minimum sdk 21, static build
- x86_64/libpppwn.so -> for 64bit x86 minimum sdk 21, static build
모든 바이너리는 안드로이드 4.4를 지원하는 최신 버전인 공식 안드로이드 NDK r25c를 통해 컴파일됩니다.
이 버전이 마음에 들지 않거나 잘 작동하지 않으면 위에서 언급한 폴더에 있는 pppwn
바이너리를 원하는 버전으로 바꾸면 됩니다.
직접 빌드하고 싶다면 원래 xfangfang 저장소를 포크하고 CMakeLists.txt
를 수정하여 Linux 시스템의 NDK 또는 장치의 Termux 앱을 사용하여 Android용으로 컴파일할 수 있도록 했습니다. 지침은 PPPwn_cpp_android의 포크 자체에 있습니다.
알려진 버그
변경 내역
1.4.1
- 모든 바이너리를 최신 pppwn_cpp 버전 1.1.0으로 다시 컴파일했습니다.
- pppwn_cpp에서 새로운 "old-ipv6"(-old) 매개변수를 선택하는 옵션이 추가되었습니다(익스플로잇이 실패한 경우에만 사용됨).
- 모든 10.xx 펌웨어에 대한 새로운 GoldHEN 버전으로 stage2.bin을 업데이트했습니다.
1.4
- 시작 시 백그라운드 서비스로 익스플로잇을 자동으로 실행하는 옵션이 추가되었습니다. 또한 공격이 성공한 후 장치를 자동으로 꺼야 하는지 여부도 결정할 수 있습니다. 참고: Android 시스템/기기에 따라 앱이 자동으로 시작되도록 권한을 부여해야 할 수도 있습니다(예: Xiaomi의 경우 설정->앱->권한->자동 시작으로 이동하여 DroidPPPwn을 확인하세요).
- 코드를 정리하고 몇 가지 사소한 버그를 수정했습니다.
1.3.1
- ps4-hen-vtx 페이로드에 대한 모든 stage2.bin 파일을 최신 버전의 EchoStretch(PPPwn-1.0310)로 업데이트했습니다.
- 이제 7.0x 펌웨어에도 Hen 지원이 추가되었습니다.
1.3
- Android x86_64 아키텍처용 새로운 pppwn 바이너리 빌드를 추가했습니다.
- 나머지 모든 펌웨어에 대해 PS4HEN에 대한 지원이 추가되었습니다. 이제 7.0x 버전만 페이로드 지원 없이 기본 PoC만 지원됩니다.
- pppwn에 대한 선택적 매개변수 -nw(시작하기 전에 PADI를 한 번 더 기다리지 않음) 및 -rs(더 정확한 수면 시간을 위해 CPU 사용)를 설정하기 위해 GUI에 두 가지 옵션을 추가했습니다.
- x86 32비트에 대한 잘못된 빌드를 수정했습니다.
- 표준 및 64비트 전용 시스템 모두에 대한 단일 apk 패키지로 설치 프로그램을 통합했습니다.
1.2.3
- 이전에 작동하지 않았던 일부 PS4-slim을 활성화하는 최신 버전의 pppwn_cpp로 업데이트하여 모든 바이너리를 다시 컴파일했습니다.
- 표준 GoldHen stage2와 LightningMods 버전 사이를 전환할 수 있는 확인란을 통해 11.00 펌웨어에 대한 Linux 페이로드에 대한 지원이 추가되었습니다. 나는 표준 페이로드 로더를 유지하고 ps4-linux 페이로드를 stage2.bin에 통합하지 않고 2GB, 3GB, 4GB 버전을 선택하도록 하는 것을 선호했습니다. 페이로드를 선호하는 하드코딩된 ps4-linux 로더로 자신의 페이로드로 바꾸려면 /data/data/it.deviato.droidpppwn/lib/linux.1100 파일을 자신의 stage2로 덮어쓰십시오.
1.2.2
- stage2.bin 파일을 최신 버전으로 업데이트했습니다. 이제 9.60용 GoldHen도 사용할 수 있습니다.
- 다른 시스템의 경우 현재 각 펌웨어에 포함된 stage2.bin은 다음과 같습니다.
- From 7.00 to 8.52 -> PoC by EchoStretch
- 9.00 -> GoldHen by Sistr0
- 9.03 / 9.04 -> LightningMods + ps4-hen-vtx payload by Sistr0 (NEEDS TESTING)
- 9.50 / 9.51 / 9.60 -> GoldHen by Sistr0 (maybe only 9.60 working?)
- 10.00 / 10.01 -> GoldHen by Sistr0
- 10.50 / 10.70 / 10.71 -> LightningMods + ps4-hen-vtx payload by Sistr0 (NEEDS TESTING)
- 11.00 -> GoldHen by Sistr0
- 평소와 마찬가지로 언제든지 자신만의 stage1.bin 및 stage2.bin을 내부 또는 외부 저장소의 루트 폴더(/storage/emulated/0 또는 심볼릭 링크 /sdcard가 참조하는 폴더)에 넣을 수 있습니다.
1.2.1
- 일부 구형 시스템에서 잘못된 결과를 제공하던 장치 아키텍처 인식 방법을 변경했습니다.
- 32비트
armv7
용 바이너리가 하나 더 추가되었습니다. 이제 공유 libc로 빌드된 Android 4.4용 바이너리와 Android 5.0+용 armv7l
/ armv8l
용 바이너리(정적 링크)가 하나 더 추가되었습니다. -
real
정적을 사용하여 다른 모든 바이너리를 다시 컴파일했습니다(이전 버전에서는 오류가 있었습니다). - 몇 가지 사소한 개선 사항
1.2
- Android x86 및 고정 32비트 arm-v7a 및 64비트 arm-v8a 빌드에 대한 지원이 추가되었습니다(더 이상 bus_error 없음).
- Termux 환경 대신 android NDK를 사용하여 모든 바이너리를 다시 컴파일했습니다(더 깔끔한 결과).
- 선호하는 네트워크 인터페이스를 검색하고 선택하는 옵션이 추가되었습니다.
- 이전 Android 버전이 설치된 기기에 바이너리가 설치되지 않는 문제가 해결되었습니다.
1.1
- pppwn의 분리된 바이너리를 사용하여 32비트 arm-v7a에 대한 지원이 추가되었습니다.
- 전체 프로젝트를 minSdk를 버전 19로 낮추어 리팩터링하여 이제 Android KitKat 4.4 이상에서 실행할 수 있습니다.
- 페이로드 로드를 허용하기 위해 지원되는 펌웨어의 stage2.bin을 Sistr0 저장소의 펌웨어로 대체했습니다.
- 자신만의 stage2.bin을 사용할 수 있는 가능성을 추가했습니다.
- 기타 작은 수정 사항
1.0