Retos de iniciación al exploiting: Buffer Overflow
¡¡Hola compañeros!!
Hace algún tiempo que Daniel Sesé y un servidor estamos aprendiendo explotación de binarios a través de la resolución de retos de CTFs. Por ello, hemos pensado que sería buena idea compartir con vosotros lo que hemos ido aprendiendo a través del desarrollo de una serie de pruebas o retos de iniciación al exploiting.
Propondremos la resolución de un reto, que estará subido a la plataforma TryHackMe. Para acceder a la sala donde iremos subiendo los retos, tienes que entrar en http://tryhackme.com/jr/securitygarage y unirte. Pasadas dos semanas desde la publicación del reto, se liberará otro nuevo con un grado de dificultad mayor al anterior, y, además, se publicará el writeup del anterior reto.
Cuando te hayas unido, observaras que existen una serie de tareas que hay que completar.
El primero de los retos se trata de un buffer overflow, es muy fácil y está orientado sobre todo a aquellas personas que no sepan siquiera que es un buffer overflow. El código del binario es el siguiente:
Y está compilado de la siguiente forma:
gcc -o challenge1.c challenge1 fno-stack-protector
El binario corre con socat en el Puerto 9000 de la máquina virtual de TryHackMe. Puedes conectarte al mismo con netcat:
nc <ip_instancia_try_hackme> 9000
Para la resolución de este reto, no es necesario depurar el binario en local, puesto que a la mínima que sepas algo de exploiting, es el propio programa el que te guía para que puedas resolverlo. Sin embargo, es buena idea ver qué es lo que ocurre durante la ejecución con ciertas entradas de datos.
Esperamos que os haya gustado, nos vemos muy pronto en un nuevo artículo en el que se liberará el paso a paso de la solución, y en el que publicaremos un nuevo reto un poco más complejo que este de iniciación.
¡Hasta pronto!