Welcome to Pwnie Island!
Pwn Adventure 3: Pwnie Island is a limited-release, first-person, true open-world MMORPG set on a beautiful island where anything could happen. That's because this game is intentionally vulnerable to all kinds of silly hacks! Flying, endless cash, and more are all one client change or network proxy away. Are you ready for the mayhem?!
This setup is part of a video series covering the different hacks and challenges in this game.
Excluding the casual Let's Play at the start, the whole series is covering all challenges of Pwn Adventure 3 in less than 4 hours.
From the official README:
It is recommended to use 2-3 instances per CPU core if you have sufficient RAM. You may be able to run 4-5 instances per core, but doing so may introduce slight lag.
The files for the client and server are over 2GB as well, so several GB of free disk space are required.
There are several ways to build and deploy your own server.
One option is to download and follow the instructions included in the README of the official files. The download can be found on the official website here http://www.pwnadventure.com/#server.
@Beaujeant created an excellent, and easy to follow step-by-step guide. It was also the basis for building the docker image from Option 3. The guide can be found here: https://github.com/beaujeant/PwnAdventure3/blob/master/INSTALL-server.md.
This option is super easy, as long as
docker-composeare installed on a host. It makes it easy to run and tear down a server, without making changes to the actual host system.
First, gather all necessary files:
git clone https://github.com/LiveOverflow/PwnAdventure3.git cd PwnAdventure3 wget http://pwnadventure.com/pwn3.tar.gz tar -xvf pwn3.tar.gz
In order to run the server,
docker-composehave to be installed. Docker is moving fast, so it's a good idea to follow the current official steps for installation (which could also include to remove an older system version of docker):
sudo usermod -a -G docker $USER. restart or re-login and verify with
idthat the user is part of the docker group.
Then simply build the image and launch the master and game server:
docker-compose build docker-compose up
docker-compose upcan also run in detached/background mode with
First download the client from the official website here: http://www.pwnadventure.com/#downloads
To get a client connected to the new server, the
server.inifor the client has to be modified. The server launched with docker expects that hostnames
game.pwn3are being used (These could theoretically be changed in the docker/setup files).
server.inifor the client has to look something like this:
[MasterServer] Hostname=master.pwn3 Port=3333
[GameServer] Hostname=game.pwn3 Port=3000 Username= Password= Instances=
Make sure that the client can reach these hosts, for example by adding them to the
/etc/hostsfile. In this example the server is running on
192.168.178.57and the entry for them would be:
192.168.178.57 master.pwn3 192.168.178.57 game.pwn3
Warning: Using an IP as
server.inidoes not work! I spent 2 hours trying to figure out what was wrong.
To stop the server, simply type
Warning: The database file is not persistent - taking down the container resets everything. So backup first.
$ docker-compose build Building init ERROR: Error processing tar file(exit status 1): write /client/PwnAdventure3_Data/PwnAdventure3/PwnAdventure3/Content/Paks/Characters.pak: no space left on device
A: Get more disk space.
$ docker-compose build Building init ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?
A: Your user is probably not part of the
dockergroup or docker service not running.
sudo usermod -a -G docker pwn3, verify with
service docker restart.
Check if the archive is corrupted
$ md5sum pwn3.tar.gz d3f296461fa57996018ce0e4e5a653ee pwn3.tar.gz $ sha1sum pwn3.tar.gz 022bd5174286fd78cd113bc6da6d37ae9af1ae8e pwn3.tar.gz
Connection Error: Unable to connect to master server
This probably means that the MasterServer is not reachable.
[MasterServer]entry in the client's
master.pwn3from the host from your system?
sudo netstat -tulpn
tcp6 0 0 :::3333 :::* LISTEN 31913/docker-proxy
docker psif the two containers are up
880f93374070 pwn3server "/opt/pwn3/setup/mas…" 0.0.0.0:3333->3333/tcp, 5432/tcp pwnadventure3_master_1
Waiting in connection queue...
This means the MasterServer is reachable and is waiting now for a free GameServer that can be given to the client. This probably means that no GameServer is running, or was not able to connect to the MasterServer.
sudo netstat -tulpn
tcp6 0 0 :::3000 :::* LISTEN 32160/docker-proxy
pwnadventure3_game_1container running? Check with
docker ps -a
84343f81034f pwn3server "/opt/pwn3/setup/gam…" 0.0.0.0:3000-3010->3000-3010/tcp, 5432/tcp pwnadventure3_game_1
line 1: 7 Killed ./PwnAdventure3Server; pwnadventure3_game_1 exited with code 137
These versions were used during testing as a host:
$ uname -a Linux ubuntu 4.4.0-31-generic #50~14.04.1-Ubuntu SMP Wed Jul 13 01:07:32 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux $ docker-compose version docker-compose version 1.19.0, build 9e633ef docker-py version: 2.7.0 CPython version: 2.7.13 OpenSSL version: OpenSSL 1.0.1t 3 May 2016 $ docker --version Docker version 17.12.1-ce, build 7390fc6
The true heroes, are the people who built the game <3
Pwn Adventure 3 is the brainchild of one Rusty Wagner. He's responsible for the idea, the planning, and nearly all of the execution (programming, level design, quests, and so forth). Without him, there would be no game! Special thanks also goes to the Ghost in the Shellcode organizers for their support during development and testing.
By Vector35 - https://vector35.com/ (the company behind the popular disassembler Binary Ninja)