Configurando un laboratorio adecuado para CTF.

Carlos Medina
Hemisferios
Published in
6 min readApr 5, 2020

--

Desde que empece este proyecto he recibido muchos correos (solo dos) pidiéndome recomendaciones para construir un laboratorio optimo. Las preguntas que he han hecho van desde temas de hardware, software hasta seguridad para poder desarrollar de forma adecuada los retos CTF. Para buscar una mejor respuesta a esas dudas he hecho esta pequeña guía.

Lo más importante de esta guía es que esta enfocada a que el laboratorio sea con poco presupuesto, sea de fácil entendimiento para todos y a que pueda servir en diversos campos de la seguridad informática.

Antes de empezar, quiero dejar claro que no me considero experto en seguridad informática o networking y por tal razón esta guía pude tener fallas y solo cubre los aspectos básicos. Si identifican una, por favor indicarmelo.

Porqué configurar un laboratorio:

Practica, solo eso, practica. Las funcionalidades técnicas pueden ser:

  • Simulación
  • Investigación
  • Desarrollo
  • Practica
  • Central de pruebas

Hardware:

Para decidir qué tipo de hardware se debe considerar, primero hay que mirar temas de presupuestos y funcionalidades, pero en nuestro caso solo usaremos un laptop, un monitor y un DD externo (opcional).

Las especificaciones minimas que sugiero son:

  • Un procesador que soporte visualización. La gran mayoría de procesadores actuales lo soportan, cualquiera entre i3 hasta i9 o cualquier AMD con máximo 6 o 7 años de antigüedad. Tener en cuenta que hay varios procesadores Intel que no soportan esta funcionalidad, Celeron o Atom.
  • 16 gb de memoria RAM si piensas configurar varias maquinas o opcional 8GB de memoria RAM si solo piensas tener un linux y la maquina víctima . Todas las suites de virtualización consumen memoria de forma importante, recomiendo al menos 2 GB para un cliente windows, 4 GB para un windows server y 4 GB o 6 GB para la distribución de linux preferida. (En realidad el cliente linux puede funcionar con menos memoria, pero ya que es mi herramienta principal me gusta tenerla bien equipada)
  • 300 GB de disco duro lo lograran bien. Las maquinas virtuales no son muy exigentes en temas de disco duro, por eso si tienes 300 GB libres considero que es mas que suficiente. Siempre es recomendable que sean SSD, pero no es 100% necesario.
  • Disco duro externo (opcional), esto servirá si deseas ejecutar las maquinas vituales desde allí y no ocupar el espacio de tu disco interno.
  • Monitor, actualmente hay tanta ofertas en monitores que lo mas basico que recomiendo es cualquiera que llegue a 720p (1368x768).
  • Teclado y mouse.

Actualmente la configuración de mi laptop es la siguiente:

Software:

Para software debemos ir por pasos ya que hay muchos items por tratar:

SO Host: Este será el sistema operativo del host en donde se virtualizarán las maquinas y se tienen varias opciones dependiendo si tu laptop soporta (o te gusta) el dual boot:

  • Si tu laptop sí es compatible con dual boot sugiero que tengas Windows para las tareas diarias y una distribución de linux en dual boot.
  • Si tu laptop no soporta dual boot o simplemente no te gusta, sugiero que el SO Host sea con el que mas te sientas a gusto.

En mi caso, estoy con MacOS Mojave sin dual boot.

Software de virtualización: Existen bastantes alternativas ahí afuera para virtualizar, todas tienen pros y contras, lo ideal es escoger una de acuerdo a las necesidades.

  • Virtual box: Es gratis y de código abierto. Tiene todas las funcionalidades que se necesitan como snapshots o networking, aunque a veces presenta fallas y para reproducir maquinas que fueron creadas en otra plataforma se deben realizar pasos adicionales.
  • VMware player: Como su nombre lo dice, solo sirve para reproducir las maquinas virtuales que han sido creadas en cualquier ambiente VMware. Esta opción también es gratuita y cumple con su objetivo, aunque le han falta características como los snapshots.
  • VMware Workstation: Esta es la opción mas completa para virtualizar de forma casera, sin embargo es un producto licenciado, pero tiene todas las funcionalidades necesarias, se basa en estándares y tiene un avanzado modulo de networking el cual es muy necesario para el laboratorio. Su homónimo para MacOS se llama VMware Fusion.
  • Parallels: Es solo para MacOS y tiene las mismas funcionalidades que VMware. También es pago.

En mi caso, estoy con VMware Fusion.

Maquina atacante: Muchas personas usan entornos prefabricados para probar nuevas herramientas, comparar resultados entre herramientas, comparar el rendimiento de las herramientas o, para probar y descubrir nuevos métodos para explotar vulnerabilidades conocidas.

Sin embargo, si todo esto es muy complejo para tu nivel y todavía estás aprendiendo lo básico, es mejor optar por tener un entorno diseñado específicamente, que se haya creado a propósito para tal tarea. Entre esas opciones tenemos:

  • Kali: Es la distribución de linux mas popular para ataques. En su pagina oficial encuentran el archivo ISO para la instalación, o si quieres ya la maquina lista, tambien se puede descargar para VMware o VirtualBox.
  • BackBox
  • Pentoo
  • Samurai

Maquina víctima: En realidad la o las maquinas victima pueden ser lo que tu quieras. En la parte donde hablaba de memoria RAM hacia unos pequeños cálculos con algunas opciones, sin embargo, lo ideal es siempre tener alguna distribución de windows vieja, un windows server y las maquinas CTF que desees.

Networking

Antes de configurar las maquinas virtuales, es importante primero ocuparse de la división de redes y la seguridad entre ellas. Por favor tener en cuenta que es MUY MUY peligroso ejecutar las maquinas CFT sin una debida segmentación de redes o firewall ya que no se sabe quién las hizo o con qué objetivos.

El ejemplo a continuación de como dividir una red lo hago con VWware Fusion, sin embargo todos los software de virtualización tienen capacidades para hacerlo.

Vamos a tener tres redes en nuestro laboratorio:

  • WAN: La WAN va a ser la conexión que tendra nuestro host hacia el router de internet. Le voy a asignar el segmento 192.168.1.0/29
  • LAN: Esta red será en donde estará nuestro host y una interfaz de la maquina atacante. Esta interfaz debe ser la que tenga del GW para poder tener conectividad a internet. Le voy a asignar el segmento 192.168.2.0/29
  • Solo host: En esta red estarán todas las maquinas CTF y las que querremos atacar. Le voy a asignar el segmento 192.168.3.0/29

El diagrama de red debe ser similar a este:

En el editor de red de VMware las redes deben estar asi:

LAN:

Solo host:

Seguridad

Para ejecutar este tipo de investigaciones o desafíos, siempre es necesario contar con precauciones básicas de seguridad, ya que como dije antes, es MUY MUY peligroso ejecutar las maquinas CFT sin una debida segmentación de redes o firewall ya que no se sabe quién las hizo o con qué objetivos.

Si la seguridad que entrega VMware son su red de “solo host” no es suficiente para ti y quieres hacer algo mas, siempre puedes optar por un firewall de código abierto como pfSense o Endian Firewall Community (EFW).

Consideraciones adicionales

  • Como vieron, para poder seguir los consejos aquí dados es necesario tener conocimientos básicos de redes y virtualización.
  • La maquina atacante debe tener dos interfaces. Importante. Si no saben como configurar la segunda interfaz pueden ver estas instrucciones.

Espero que si alguien leyó toda esta guía le haya sido util para empezar con la configuración de su laboratorio, si tienen alguna duda siempre pueden responder esta nota o escribirme por alguna red social o correo. Los datos estan en la parte superior.

Las lecturas que tome como referencia para hacer esto fueron:

Saludos.

--

--

Hago retos hacking tipo CTF en Medium y me gusta hablar de música en Instagram. https://chmedina.com