Skip to content

This page will how on how to setup and host your own exploit host. โ€‹

NOTE

Explained by al-azifs github page. Link to the repo can found here. All credit goes to her.

What is this? โ€‹

  • This is an easy way for anyone to host their own exploit for the PS4/PS5/Vita/Wii/Switch/etc on their LAN. Features include:

    • Hosts your choice of exploit
    • Allows caching of exploits for offline use (Device dependant)
    • Sends your choice of payload after a successful exploit
    • Blocks update/telemetry domains from resolving
    • Serves a specific firmware update to your device (Device dependant)
    • Server side application works on just about every platform
    • Static Website builder. Compiles the host into a static website to run on HTTP server of your choice (You lose some features using this method, DNS, updater, etc)

Requirements โ€‹

  • If you are not using a binary release you will need Python 3.

  • Root privileges on non-Windows machines.

How to download? โ€‹

  • Download the zip on the releases page

  • Download with Git, be sure to grab the submodules. This does not include any exploits or payloads. This is for experts only, download a release if you have issues.

    • git clone --recursive https://github.com/Al-Azif/ps4-exploit-host.git

How to run? โ€‹

    1. Download the files (As shown in the "How to download" section above).
    1. Double click the executable (exploit-host.exe, exploit-host.py, etc). If it starts with no errors, note the IP given.
    • Alternatively run it from the command line (exploit-host.exe, ./exploit-host, python exploit-host.py, etc)
    • If you are not root when running on a non-Windows machine you need to use sudo
    1. Follow the Using remote DNS section substituting your DNS IP given noted in the previous step for both primary and secondary DNS IP addresses.
    1. When done use Ctrl+C to cleanly close the application.

NOTE

Note: You can edit settings.json to modify the hosts behavior. There is a section below with more info.

##Running on Raspberry Pi

  • While the "How to run" section applies to the Pi as well there are some more complex options people may want to use for the Pi like running without any network whatsoever.

    • To run as a standalone device that you plug directly into your device though ethernet go here (Supports any Pi with a ethernet port)

    • To run as a WiFi access point for your device go here (Officially supports RPi 3 currently, may work on others with WiFi adapter)

Modifying settings.json โ€‹

  • It's good idea to make a backup of the default settings.json just in case. Any invalid settings will throw a warning and use a default value.

  • Use valid json formatting. Boolean values should be lower case, integers should not be quoted, etc.

SettingNotesType
DebugWill print debug info from the DNS/HTTP serversboolean
Root_CheckWill skip the root user check for Linux/OSX, only disable if you are sure you don't need it. Will cause port errors if set wrongboolean
PublicIf the server is listening on a public IP (Disabled payload sending other than "Auto_Payload and disables viewing/editing settings remotely)boolean
DNSIf the DNS server should be runboolean
HTTPIf the HTTP server should be runboolean
HTTPSIf the HTTPS server should be runboolean
DNS_InterfaceThe IP of the interface to bind the DNS server tostring (IP Address)
DNS_PortThe port to bind the DNS server toint (1-65535)
HTTP_InterfaceThe IP of the interface to bind the HTTP server tostring (IP Address)
HTTP_PortThe port to bind the HTTP server toint (1-65535)
HTTPS_InterfaceThe IP of the interface to bind the HTTPS server tostring (IP Address)
HTTPS_PortThe port to bind the HTTPS server toint (1-65535)
Compression_LevelEnables gzip compression on the HTTP server, 0 being disabled, 9 being most compressedint (0-9)
UA_CheckIf the UA should be checked against values in the Valid_UA settingboolean
ThemeWhich theme to use, themes must be located in the themes folderstring
Sticky_CacheWhether the appcache manifest should be included in itself or notboolean
Auto_PayloadPayload to send to any IP that accesses server at /success. Payload must be in the payloads folderstring
Payload_TimeoutThe timeout, in seconds, to try and send a payload through the payload menu before timing outint (1-999)
DNS_Rules [Redirect IP]The IP address to redirect URLs listed in the Redirect rules tostring (IP Address)
DNS_Rules [Redirect]Array of domains to forwards to DNS_Rules [Redirect IP]array of strings (regex)
DNS_Rules [Block]Array of domains to blockarray of strings (regex)
DNS_Rules [Pass_Through]Array of IP addresses to not modify DNS requestsarray of strings (IP Address)
Valid_UAUser-Agents to allow access to exploits, only used if UA_Check is enabledarray of strings (regex)
Update [PS4_No_Update]The PS4 version (and lower) listed here will not be served update filesfloat

About offline caching โ€‹

  • Redirect/Theme info is cached automatically.

  • Redirect/Theme info updates and refreshes automatically.

  • Exploits can be cached on a per firmware basis or all cached at once with the dropdown menu and/or [Cache All] button on the exploit selection menu.

  • Exploit updates must be "manually" updated by clicking cache button an update is available or checking the "About" option in the exploit's dropdown menu.

  • You will be told if there is no update when clicking the button.

  • If you are offline the caching buttons will be hidden as will exploits that require a network connection or are not cached.

Autoloading โ€‹

  • About autoload

  • Exploits can be automatically selected by clicking "Autoload" in the exploits dropdown menu.

  • When you open the exploit selection it'll automatically select that exploit.

  • This can be disabled by clearing your browser's cookies.

What if a new exploit is released? โ€‹

  • You should just be able to place the exploit files in the exploit directory. The exploit will automatically add the exploit to the menu.

    ex. exploits/firmware_version/exploit_name/index.html