Saltar al contenido
Nuevo

DeepSeek V4.1 Flash gratis por 7 días: 10M tokens al día tras cualquier recarga. Hasta el 30/11.

Cómo funciona

Cómo montar un laboratorio doméstico legal

Monta un laboratorio que puedes atacar: archivo de alcance, puertos de Docker en loopback, red aislada, cuaderno de notas y desmontaje limpio.

Principiante4 min de lecturaPor NotHoly

Un laboratorio doméstico es legal cuando cada sistema que atacas es tuyo o pertenece a alguien que te dio permiso por escrito. Todo lo demás se deriva de esa regla. Tu laptop, una máquina virtual que creaste y un contenedor que iniciaste están dentro del alcance. El Wi-Fi de tu vecino, la red de tu escuela y "ese sitio que parece vulnerable" no lo están, aunque la prueba sea inofensiva.

Escribe la regla antes de instalar nada. Es fácil que la autorización se vuelva difusa cuando una herramienta ya está corriendo y un objetivo parece interesante.

Qué necesitas

  • Un equipo que sea tuyo o que administres.
  • Docker Engine o Docker Desktop, desde la documentación de Docker.
  • Un editor de texto y una terminal.

Los comandos de abajo se ejecutaron en Windows con Docker 29.8.2. Otras versiones pueden mostrar textos algo distintos.

Paso 1: crea la carpeta y el archivo de alcance

Mantén el laboratorio en una sola carpeta para encontrarlo y borrarlo después:

bash
mkdir -p lab/notes
cd lab

Crea scope.md en esa carpeta con los objetivos que te permites probar:

markdown
# Alcance

Objetivos permitidos:
- 127.0.0.1 (contenedores que yo inicié, puertos vinculados a loopback)

No permitido:
- Cualquier otra cosa, hasta tener permiso por escrito de su dueño.

Parece trivial. Aun así evita que apuntes un escáner a una dirección que nunca quisiste probar.

Paso 2: comprueba que Docker funciona

bash
docker --version
text
Docker version 29.8.2, build 7fc2dff

Si el comando falla, instala Docker primero. Si docker info dice que no alcanza el daemon, inicia Docker Desktop o el servicio de Docker y vuelve a intentarlo.

Paso 3: publica puertos solo en loopback

Los contenedores son la forma más sencilla de ejecutar software vulnerable sin instalarlo en tu sistema. El riesgo está en el mapeo de puertos. La documentación de publicación de puertos de Docker dice que un mapeo -p sin dirección deja el puerto disponible fuera del host. Una aplicación vulnerable a propósito no debe quedar así.

Indica la dirección de loopback en el mapeo. Este ejemplo usa la imagen de un servidor web simple en lugar de un objetivo de laboratorio:

bash
docker run -d --rm --name lab-check -p 127.0.0.1:18080:80 caddy:2
docker port lab-check
text
80/tcp -> 127.0.0.1:18080

127.0.0.1:18080 significa que solo tu equipo alcanza el puerto. Compáralo con un mapeo sin dirección:

bash
docker stop lab-check
docker run -d --rm --name lab-check -p 18081:80 caddy:2
docker port lab-check
text
lab-check
80/tcp -> 0.0.0.0:18081
80/tcp -> [::]:18081

Aquí Docker escucha en 0.0.0.0 y [::], que son todas las interfaces. Que otros dispositivos puedan llegar de verdad depende de tu firewall y tu red, así que no confíes en eso. Pon 127.0.0.1 en cada comando del laboratorio y verifica con docker port cada vez.

Paso 4: corta la red cuando puedas

Algunos ejercicios no necesitan red, como leer un script sospechoso o ejecutar un parser sobre un archivo. El driver de red none de Docker deja al contenedor sin red, salvo el loopback:

bash
docker run --rm --network none alpine:3.22 ip -o link | cut -d' ' -f2
text
lo:

Solo existe la interfaz de loopback (lo). Usa --network none para todo lo que no quieras que hable con el exterior, y trata cualquier muestra descargada como hostil hasta que la hayas leído.

Paso 5: lleva un cuaderno de laboratorio

Crea un archivo por sesión en notes/. Anota la fecha, el objetivo, lo que intentaste y lo que pasó, en ese orden, mientras trabajas:

markdown
## 2026-01-15 14:20, primera ejecución
- Objetivo: juice-shop-lab, http://127.0.0.1:3000
- Meta: ver qué devuelve un inicio de sesión fallido
- Comando: curl -i http://127.0.0.1:3000/rest/user/login
- Resultado: (pega lo que viste, no lo que esperabas)
- Siguiente: ...

El cuaderno cumple dos funciones. Te muestra qué hiciste cuando un resultado te sorprende, y es el hábito del que nace un informe de verdad. Registra el comando que ejecutaste y la salida que obtuviste. No pegues la salida de una guía.

Paso 6: desmonta todo

Detén lo que iniciaste y comprueba que no quede nada:

bash
docker stop lab-check
docker ps -a --filter name=lab-check --format '{{.Names}}'
text
lab-check

docker stop imprime el nombre del contenedor. Como se inició con --rm, Docker lo elimina al detenerse, así que el segundo comando no imprime nada. Si también quieres borrar la imagen, usa docker image rm. Borra la carpeta lab solo cuando ya no necesites las notas.

Un laboratorio que puedes rehacer en pocos minutos vale más que uno que te da miedo tocar.

Siguiente paso

Ya tienes una carpeta con alcance, el hábito del loopback y una forma de detener todo. El siguiente artículo, Ejecutar OWASP Juice Shop con Docker, usa esta base para iniciar una aplicación web vulnerable a propósito. Lee antes la página del proyecto OWASP Juice Shop para saber qué vas a ejecutar.

Fuentes

Fuentes

  1. Docker: Get started
  2. Docker: Port publishing and mapping
  3. Docker: None network driver
  4. Docker CLI reference: docker container run
  5. OWASP Juice Shop project

Más en Laboratorios de hacking

Laboratorios de hacking

Cómo escribir un buen informe de pentest

Estructure un informe de pentest y escriba un hallazgo que otra persona pueda reproducir, con evidencia, impacto, vector CVSS v4.0 y remediación.

Intermedio9 min de lectura