joe97tab / PI-Pwn-Offline

PS4 PPPwn Offline
5 stars 0 forks source link

PI-Pwn-Offline

I rewrited the script to using device to pwn PS4 for offline mode, most of the idea and the script from stooged.

Test on PS4 Slim FW 10.50.

It can use with raspberry pi, armbian devices, TV Box and some linux system.

For normal version : no need to install additional software, no root required.

For web server version : need pppoe, nginx, php-fpm 8.1 up (8.2 recommend) and nmap, it requires to connect to internet for installation the package, use my pre-built image make it easier.

The image should no graphic interfaces, CLi, current, default, minimal (at least bookworm or jammy).

What is benifit between normal and web server version? (my opinion)

Pi-Pwn-Offline Normal Web Server
Installation easy required internet
How fast faster slower around 15-20 seconds
PPPwn success rate better lower
Kernel panic lower higher
Change config pc ps4 browser or pc
Payloads loader Payload Guest BinLoader or Payload Guest
GoldHEN detection no yes

TheOfficialFloW

Current PPPwn support (FW) : 7.00 - 11.00

The exploit only prints PPPwned on your PS4 as a proof-of-concept.

GoldHEN

Current GoldHEN support (FW) : 9.00, 9.60, 10.00, 10.01, 10.50, 10.70, 10.71, 11.00

You need to place the goldhen.bin file onto the root of a usb drive and plug it into the console. Once goldhen has been loaded for the first time it will be copied to the consoles internal hdd and the usb is no longer required.

hen-vtx

Current HEN support (FW) : 7.00 - 11.00

You need to place the payload.bin file onto the root of a usb drive and plug it into the console. Once hen has been loaded for the first time it will be copied to the consoles internal hdd and the usb is no longer required.

BestPig

Current HEN by BestPig support (FW) : 10.50

No need to place any file onto the root of a usb drive.


How to install :

At PC, Insert SDCARD, create /firmware/PPPwn/ (new raspbian distro /PPPwn/) folder then copy all the files from /PPPwn/ to your SDCARD /PPPwn/ folder.

When boot the device, ssh and installs in terminal with this command :

sudo bash /boot/firmware/PPPwn/install_web.sh
sudo bash /boot/firmware/PPPwn/install.sh

During the install process you will be asked to set some options.

It will create config.sh, pconfig.sh and auto run script for pwn PS4.

Shut down and connect to ps4 and test your pppwn.

On your PS4:

Normally the pwn process will success on first or second attempt.


Ready to use pre-build-image.

Very easy to setup. Write image, change config.sh, pconfig.sh then test your pppwn.

Latest update : 30/08/2024

Normal offline image distro SDCARD Download
Raspberry pi buster (php7.3), up to pi4 4GB or above download
Armbian amlogic bookworm, s912 may not work 4GB or above download
Armbian amlogic jammy, s905x3 may not work 2GB or above download

Latest update : 30/10/2024

Web server offline image distro SDCARD Download
Raspberry pi bookworm (php8.2), up to pi5 4GB or above download
Armbian amlogic bookworm (php8.2), s912 may not work 4GB or above download
Armbian amlogic jammy (php8.1), s905x3 may not work 2GB or above download

If you see Ready for console connection it means your device ready for pppwn, please update the latest script in the section How to update.


How to update

Copy and replace the files /update/run_web.sh and /PPPwn/PPPwn.tar to your /PPPwn/ folder.

Copy and replace the files /update/run.sh and /PPPwn/PPPwn.tar to your /PPPwn/ folder.

Please keep in mind that pwn your PS4 with old IPv6 address is faster than new IPv6.

It's better to use it if your PS4 support.

Update GoldHEN for new firmware

You can manual update GoldHEN if new firmware avialable.

config.sh, pconfig.sh

Config file location : SDCARD/firmware/PPPwn/ (new rasbian distro SDCARD/PPPwn/)

config.sh Description
CPPMETHOD="3" 1 = v1 Old IPv6 Only (fastest speed), 2 = stooged binary, 3 = latest xfangfang binary, 4 = nn9dev binary
INTERFACE="eth0" eth0, eth1, end0, etc
FIRMWAREVERSION="10.71" your current firmware
USBETHERNET=false set to true if using external usb ethernet
STAGE2METHOD="goldhen" goldhen, hen, bestpig (10.50 Only) and flow
SOURCEIPV6="2" 1 = Old IPv6, 2 = New IPv6, 3 = Custom IPv6
CUSTOMIPV6="" Custom IPv6 in xxxx:xxxx:xxxx:xxxx format, SOURCEIPV6="3"
DETECTMODE="2" 1 = Disable, 2 = PS4 Power on, 3 = GoldHEN, 4 = Both Detection
For web server version -
PPPOECONN=true only way to enable it if you accidently disabled in ps4 browser, set to false will enable auto shutdown and auto pwn
PWNAUTORUN=true set to false if you want manually pwn with ps4 web browser
TIMEOUT="5m" a timeout in minutes to restart pppwn if the exploit hangs mid process
PPDBG=false enables debug output from pppwn so you can see the result after exploited

PPDBG should set to false, it will cause slow down on the pppwn process if enable it.

DETECTMODE 2 = Wait PS4 ready for pwn, useful when the device uses separate power, 3 = GoldHEN detection (Web server version only), useful for rest mode but required addition time (15-20 seconds) to check.

STAGE2METHOD If no stage2 avialable it will use the TheOfficialFloW.

STAGE2METHOD Description
goldhen use goldhen, put goldhen.bin to root of usb drive
hen use vtx-hen, put payload.bin to root of usb drive
bestpig use hen by BestPig, FW 10.50 Only
flow anything not in the above list will use the TheOfficialFloW

CUSTOMIPV6 it will used new ipv6 address if no value, incorrect format may cause ps4 shutdown. Custom ipv6 address may add effect the ps4 shutdown and start problem or cure it, change to old or new ipv6 if encounter the problem.

SOURCEIPV6 Description
1 Old IPv6 = fe80::4141:4141:4141:4141
2 New IPv6 = fe80::9f9f:41ff:9f9f:41ff
3 Custom IPv6 = fe80::xxxx:xxxx:xxxx:xxxx

CPPMETHOD If incorrect cpp setup it will use the latest xfangfang binary.

Stooged binary (CPPMETHOD="2") had intregrated stage1, stage2 and hen-vtx into the binary, for hen-vtx, no need to place payload.bin onto the root of a usb drive.

Nn9dev binary (CPPMETHOD="4") added new feature it added spray number, corrupt number and pin number.

CPPMETHOD 1 2 3 4
Binary v1.0.0 xfangfang stooged latest xfangfang nn9dev
Old IPv6 o o o o
New IPv6 x o o o
Custom IPv6 x o x o
wait-after-pin x o o o
groom-delay x o o o
buffer-size x o o o
no-wait-padi x o o o
spray number x x x o
corrupt number x x x o
pin number x x x o

If incorrect pconfig setup it will use default value.

pconfig.sh Description
XFWAP="1" wait-after-pin, set value between 1-20 seconds
XFGD="4" groom-delay, set value between 1-4097 ms
XFBS="0" buffer-size, set value between 0-20480
XFNWB=true no-wait-padi , set to false if encounter a problem
For CPPMETHOD="4" -
SPRAY_NUM="1000" set hex value between 400-1500 (1000, 1050, 1100, 1150,... )
CORRUPT_NUM="10" set hex value 1, 2, 4, 6, 8, 10, 14, 20, 30, 40
PIN_NUM="1000" it's fine to leave this at default

See xfangfang, nn9dev for further details.


Payloads

There are 2 methods to loading payloads, Payload Guest app or GoldHEN BinLoader by using offline ps4 browser (online host if connect to internet).


Tips

PS4 FW GoldHEN HEN-VTX TheOfficialFloW
11.00 o o o
10.71 o o o
10.70 o o o
10.50 o o o
10.01 o o o
10.00 o o o
9.60 o o o
9.51 x o o
9.50 x o o
9.04 x o o
9.03 x o o
9.00 o o o
8.52 x o o
8.50 x o o
8.03 x o o
8.01 x o o
8.00 x o o
7.55 x o o
7.51 x o o
7.50 x o o
7.02 x o o
7.01 x o o
7.00 x o o

Useful Homebrew


Credit to everyone that made it worked.