
Servidor PwnAdventure3
¡Bienvenido a Pwnie Island!
Pwn Adventure 3: Pwnie Island es un MMORPG verdadero de mundo abierto en primera persona, de lanzamiento limitado, ambientado en una hermosa isla donde cualquier cosa puede pasar. ¡Eso es porque este juego es intencionalmente vulnerable a todo tipo de hacks absurdos! Volar, dinero infinito y más están a un cambio de cliente o proxy de red de distancia. ¿Estás listo para el caos?!
Esta configuración es parte de una serie de videos que cubre los diferentes hacks y desafíos de este juego.
Excluyendo el casual Let's Play al inicio, toda la serie cubre todos los desafíos de Pwn Adventure 3 en menos de 4 horas.
Del README oficial:
Hay varias formas de construir y desplegar tu propio servidor.
Una opción es descargar y seguir las instrucciones incluidas en el README de los archivos oficiales. La descarga se puede encontrar en el sitio web oficial aquí http://www.pwnadventure.com/#server.
@Beaujeant creó una excelente guía paso a paso fácil de seguir. También fue la base para construir la imagen docker de la Opción 3. La guía se puede encontrar aquí: https://github.com/beaujeant/PwnAdventure3/blob/master/INSTALL-server.md.
Esta opción es súper fácil, siempre que docker y docker-compose estén instalados en un host. Facilita ejecutar y desmontar un servidor, sin hacer cambios en el sistema host real.
Primero, reúne todos los archivos necesarios:
git clone https://github.com/LiveOverflow/PwnAdventure3.git
cd PwnAdventure3
wget http://pwnadventure.com/pwn3.tar.gz
tar -xvf pwn3.tar.gz
Para ejecutar el servidor, docker y docker-compose deben estar instalados. Docker está avanzando rápidamente, por lo que es buena idea seguir los pasos oficiales actuales para la instalación (que también podrían incluir eliminar una versión anterior del sistema de docker):
docker-compose: https://docs.docker.com/compose/install/docker con: sudo usermod -a -G docker $USER. reinicia o vuelve a iniciar sesión y verifica con id que el usuario sea parte del grupo docker.Luego simplemente construye la imagen y lanza el servidor maestro y del juego:
docker-compose build
docker-compose up
docker-compose up también puede ejecutarse en modo separado/fondo con -d.
Primero descarga el cliente desde el sitio web oficial aquí: http://www.pwnadventure.com/#downloads
Para conectar un cliente al nuevo servidor, se debe modificar el server.ini del cliente. El servidor lanzado con docker espera que se usen los hostnames master.pwn3 y game.pwn3 (Estos podrían teóricamente cambiarse en los archivos docker/configuración).
El server.ini para el cliente debe verse algo así:
[MasterServer]
Hostname=master.pwn3
Port=3333
[GameServer]
Hostname=game.pwn3
Port=3000
Username=
Password=
Instances=
Asegúrate de que el cliente pueda alcanzar estos hosts, por ejemplo añadiéndolos al archivo /etc/hosts. En este ejemplo, el servidor se está ejecutando en 192.168.178.57 y la entrada para ellos sería:
192.168.178.57 master.pwn3
192.168.178.57 game.pwn3
Advertencia: ¡Usar una IP como Hostname en el server.ini no funciona! Pasé 2 horas tratando de averiguar qué estaba mal.
Para detener el servidor, simplemente escribe docker-compose down.
Advertencia: El archivo de base de datos no es persistente: al detener el contenedor se reinicia todo. Así que haz una copia de seguridad primero.
$ 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
R: Obtén más espacio en disco.
$ docker-compose build
Building init
ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?
R: Probablemente tu usuario no es parte del grupo docker o el servicio docker no se está ejecutando. sudo usermod -a -G docker pwn3, verifica con id. O service docker restart.
Verifica si el archivo está corrupto
$ md5sum pwn3.tar.gz
d3f296461fa57996018ce0e4e5a653ee pwn3.tar.gz
$ sha1sum pwn3.tar.gz
022bd5174286fd78cd113bc6da6d37ae9af1ae8e pwn3.tar.gz
Error de conexión: No se puede conectar al servidor maestro
Esto probablemente significa que el MasterServer no es accesible.
[MasterServer] en el server.ini del clientemaster.pwn3 desde el host de tu sistema?/etc/hosts?3333?sudo netstat -tulpn
tcp6 0 0 :::3333 :::* LISTEN 31913/docker-proxydocker ps si los dos contenedores están activos
880f93374070 pwn3server "/opt/pwn3/setup/mas…" 0.0.0.0:3333->3333/tcp, 5432/tcp pwnadventure3_master_1Esperando en la cola de conexión...
Esto significa que el MasterServer es accesible y está esperando un GameServer libre que pueda asignarse al cliente. Esto probablemente significa que ningún GameServer se está ejecutando, o no pudo conectarse al MasterServer.
3000-3005?sudo netstat -tulpn
tcp6 0 0 :::3000 :::* LISTEN 32160/docker-proxypwnadventure3_game_1 se está ejecutando? Verifica con docker ps -a
84343f81034f pwn3server "/opt/pwn3/setup/gam…" 0.0.0.0:3000-3010->3000-3010/tcp, 5432/tcp pwnadventure3_game_1docker-compose up: line 1: 7 Killed ./PwnAdventure3Server; pwnadventure3_game_1 exited with code 137
Estas versiones se usaron durante las pruebas como 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
Los verdaderos héroes son las personas que construyeron el juego <3
Pwn Adventure 3 es obra de Rusty Wagner. Es responsable de la idea, la planificación y casi toda la ejecución (programación, diseño de niveles, misiones, etc.). ¡Sin él, no habría juego! Un agradecimiento especial también a los organizadores de Ghost in the Shellcode por su apoyo durante el desarrollo y las pruebas.
Por Vector35 - https://vector35.com/ (la empresa detrás del popular desensamblador Binary Ninja)