Windows en Docker y Proxmox: Mi laboratorio ‘Inception’ para Ciberseguridad
Hay días en los que uno se levanta con ganas de complicarse la vida, y eso debió pensar el autor del siguiente proyecto. La verdad, ha sido de los trabajos más interesantes que he visto en muchos tiempos.
Para los apasionados de la Virtualización y la Ciberseguridad nos ha dado una alegría. Os dejo el proyecto y sigo explicando como implementarlo y en qué consiste:
- PROYECTO: https://github.com/dockur/windows
- OBJETIVO: Windows dentro de contenedor Docker
Si te mueves en el mundo de la virtualización y la infraestructura de sistemas, seguro que conoces esa sensación de: “¿Y si intento meter esto dentro de esto otro?”. De hecho, en este blog hemos hablado varias veces en como ejecutar contenedores Linux en Windows o la diferencia entre contenedores Linux vs Windows.
En seguridad, el mayor riesgo es la persistencia y el movimiento lateral, aquí, al encapsular Windows en un contenedor Docker sobre una VM aislada en Proxmox, generamos una ‘caja de arena’ (sandbox) con fronteras de hardware y software muy definidas. Si un proceso sospechoso intenta escapar, se topa con un muro de capas donde el hipervisor controla los recursos y el contenedor limita los privilegios, permitiéndonos ejecutar, analizar y destruir el entorno en segundos sin que nuestra infraestructura principal llegue a enterarse de que hubo fuego en la habitación de al lado.
La verdad, este proyecto simplifica todo esto…
¿Cómo ejecutar container Docker Windows sobre Debian / Proxmox?
Os voy a explicar como podemos llegar a lanzar un container Windows 11 u otro Windows sobre nuestra infraestructura.
Para el ejemplo usaré:
- Infraestructura Proxmox (yo he usado mi clúster en 9.1.1)
- Máquina Virtual Debian 12 (no un LXC). Va a ejecutar un Windows, así que mínimo 16GB, disco SSD y unos 100GB para que esté cómoda.
- Instalado Docker en la máquina virtual
- Virtualización anidada configurada en la máquina virtual (modo nested)
Importante, para soportar la virtualización anidada, la máquina virtual tiene que usar la CPU del tipo “Host“:
Acordaros de los parámetros extras:
Accedemos a la máquina y lanzamos “ls -l /dev/kvm” para verificar que no tendremos problemas, ya que el container está creado para ejecutarse bajo plataformas KVM como Proxmox:
Ahora lanzamos la instalación del container Docker con el siguiente comando:
|
1 2 3 4 5 6 7 8 9 10 11 |
docker run -it --rm \ --name windows \ --privileged \ -e "VERSION=11" \ -p 8006:8006 \ --device=/dev/kvm \ --device=/dev/net/tun \ --cap-add NET_ADMIN \ -v "${PWD}/windows:/storage" \ --stop-timeout 120 \ docker.io/dockurr/windows |
Comienza un proceso de descarga, que cuanto más y mejores recursos tengamos mejor:
Ahora para acceder a la consola no lo podemos hacer vía Proxmox, sino que directamente vamos al navegador con la IP de vuestra máquina virtual y usa el puerto de VNC 8006:
- http://IP-DEBIAN:8006
El proceso es lento…pero acaba terminando, así que paciencia. Yo elegí de primeras Windows 11 y al final es una instalación como cualquier otra de Windows:
Acabaremos teniendo un Windows bajo Docker totalmente funcional:
El usuario por defecto es “Docker” y password “admin”, pero podemos definirlo nosotros con el siguiente parámetro:
|
1 2 3 |
environment: USERNAME: "elblogdenegu" PASSWORD: "virtualizacion" |
Ahora accedo por el puerto 8006 vía web o por Escritorio Remoto (RDP) para tener fluidez total (parámetros que eliges al lanzar el contenedor). Tengo un Windows 11 que puedo levantar y tirar en segundos, con la seguridad de que mi red principal está a salvo tras varias capas de virtualización.
Y no es que sólo podamos hacer Windows 11, es que podemos lanzar también Windows Servers de casi cualquier versión (además de la versión ARM que tiene su propio proyecto):
Si te gusta el cacharreo de sistemas, montar este tipo de laboratorios es el mejor gimnasio posible. Aprendes sobre sistemas de archivos, permisos de hardware y, sobre todo, sobre cómo securizar tus entornos de prueba.
Este proyecto es, literalmente, Inception aplicado a la ciberseguridad, capas dentro de capas, donde cada nivel añade una barrera extra de protección. Al levantar Windows con dockur/windows no solo estamos virtualizando un sistema operativo, estamos construyendo un auténtico búnker digital.
Si un malware consigue colarse en Windows, en realidad no ha llegado muy lejos, sigue atrapado dentro del contenedor Docker. Si intenta ir un paso más allá, se topa con el kernel de la VM Debian. Y, por encima de todo, está Proxmox, el hipervisor, vigilando desde el nivel superior. Cada “realidad” tiene sus propias reglas y límites.
Esta arquitectura de realidades virtuales encadenadas hace que cualquier cosa peligrosa que ocurra en el fondo del laboratorio se quede exactamente ahí. Nos permite analizar amenazas, experimentar y romper cosas con tranquilidad, sabiendo que, aunque algo “despierte” dentro, no hay riesgo real para la infraestructura física que está fuera de alcance.
¿Te ha gustado la entrada SÍGUENOS EN TWITTER O INVITANOS A UN CAFE?
Blog Virtualizacion Tu Blog de Virtualización en Español. Maquinas Virtuales (El Blog de Negu) en castellano. Blog informática vExpert Raul Unzue













