Laboratorio de seguridad · 002

SupportDesk

Un servicio en C que guarda punteros que ya no le pertenecen. Fuga, corrupción y shell.

  • Difícil
  • Linux
  • C
  • Heap
  • Pwn
1 h por sesión2 flags por descubrir40 puntos posibles

Descripción del reto

Un servicio de soporte escucha en el puerto 1337 y guarda tus notas en el heap. Libera una y sigue usándola: la memoria no perdona. Necesitas una fuga para saber dónde estás y una escritura para decidir a dónde saltas. Después, el camino a root pasa por lo que el sistema ejecuta solo.

Tu objetivo: shell como support y, desde ahí, root. Cada evidencia está en el home de su usuario.

Objetivos

0 / 2

User flag

20 pts

Consigue un shell como support y lee /home/support/flag.txt.

○

Root flag

20 pts

Escala desde support y lee /root/root.txt.

○

Las flags son únicas para tu sesión. Inicia la máquina para poder validarlas.

Antes de empezar

  1. 1
    Inicia la máquina

    Pulsa «Iniciar máquina». Tarda alrededor de un minuto en estar lista.

  2. 2
    Conéctate al servicio

    Cuando arranque, tendrás una IP pública. El servicio escucha en el puerto 1337: nc <ip> 1337.

  3. 3
    Entrega las dos evidencias

    Primero el shell de support; después escala y lee la de root.

Contexto técnico

Reto propio, sin CVE: un servicio en C compilado con -O0 y PIE sobre Debian 13 (glibc 2.41). Se ataca por la red, como un servicio real: antes de entrar no tienes el binario.

Para cuando tengas la fuga: el puntero del unsorted bin apunta a main_arena+96, que en esta libc es libc+0x1e5b20; system está en libc+0x53090.

BeriaBox

Introducción al laboratorio

Bienvenido a BeriaBox

Sesión marcada

Hemos detectado una solución asistida.

Hemos detectado el patrón: has llegado demasiado rápido y sin fallar una sola vez. La flag cuenta, pero la sesión queda marcada como asistida.

Laboratorio 001 · PHP2Shell

¡Reto completado!

Las dos evidencias son tuyas. La máquina se ha detenido.