Creación de un Laboratorio

Una Máquina Virtual (VM) suele entenderse como una emulación de un sistema informático. Las VM se basan en arquitecturas de computadores y ofrecen la mayoría de las funcionalidades de los dispositivos físicos que emulan. Su implementación puede requerir de hardware (Ej. Instrucciones específicas del procesador) y/o software especializado (Ej. Hipervisor).

Tipos de VM
Existen diferentes tipos de VM, cada una con diferentes funcionalidades: 

  • Máquinas virtuales del sistema: También conocidas como VM de virtualización completa, permiten sustituir en la práctica un dispositivo físico. De este modo, aportan toda la funcionalidad necesaria para poder ejecutar sistemas operativos completos. Un hipervisor (hypervisor) emplea ejecución nativa para compartir y gestionar el hardware del dispositivo anfitrión (host), permitiendo la ejecución simultánea de múltiples entornos aislados entre sí en la misma máquina física. Los hipervisores modernos emplean virtualización asistida por hardware (Ej. Intel VT-x, AMD-V), la cual es suministrada generalmente por la CPU del host (Ej. VMware Workstation, VMware ESXi, Microsoft Hyper-V, Oracle VirtualBox, QEMU, Parallels Desktop).
  • Máquinas de procesos virtuales: Estas máquinas están diseñadas para ejecutar aplicaciones en entornos independientes de la plataforma (Ej. Java Virtual Machine).

Algunas máquinas virtuales, como QEMU, están diseñadas para emular diferentes arquitecturas, lo que permite ejecutar sistemas operativos y aplicaciones escritos para otra CPU o arquitectura.

El software de virtualización se implementa mediante un hipervisor, o VMM (Virtual Machine Monitor). Consiste en una capa de abstracción entre el hardware del dispositivo físico, referido como anfitrión (host) y la VM, conformada por hardware y software virtualizado. Por tanto, funciona como un intermediario entre lo real y lo virtualizado.

Tipos de hipervisor
El hipervisor maneja, gestiona y arbitra los recursos principales de un ordenador (Ej. Procesador, memoria RAM, soportes de almacenamiento, NIC), lo que le permite poder repartir dinámicamente dichos recursos entre todas las VM ejecutándose concurrentemente en el dispositivo.

Existen dos tipos de hipervisores:
  • Hipervisores Tipo 1: Este tipo de virtualización se denomina también virtualización en modo nativo o baremetal y se caracterizan por tener que instalarse el hipervisor directamente sobre el dispositivo, haciendo las funciones tanto de sistema operativo como de hipervisor. Es el tipo más empleado en entornos empresariales, donde se disponen de los recursos económicos necesarios para poder dedicar exclusivamente uno o más servidores a la virtualización de sistemas. Entre los más conocidos destacan: Microsoft Hyper-V Server, VMware ESXi, VMware ESX Server, Xen y Citrix XenServer.
  • Hipervisores Tipo 2: Se denominan también software de virtualización alojado (hosted) y se caracterizan por tener que instalarse en un dispositivo que disponga previamente de un sistema operativo (Ej. Microsoft Windows, Linux, macOS X). Es el tipo más empleado en entornos domésticos, educativos y de laboratorio, pues resulta ideal para probar software (sistemas operativos y aplicaciones) con riesgo mínimo de afectar al host. Su rendimiento es menos eficiente que los de Tipo 1, pero permite utilizar en paralelo otras aplicaciones instaladas en el sistema operativo del host. Entre los más habituales se encuentran Oracle VirtualBox (para Microsoft Windows, Linux y macOS X), VMware Workstation y VMware Player (para Microsoft Windows y Linux), VMware Fusion (para macOS X) y Parallels Desktop (para macOS X).

La utilización de Máquinas Virtuales ofrece varias ventajas sobre los equipos dedicados:

  • Se pueden utilizar simultáneamente varias Máquinas Virtuales disponiendo de un único equipo físico. Además, configurarlas es bastante sencillo: es posible cambiar la cantidad de memoria asignada, cambiar la configuración de la red, agregar discos duros virtuales y asignar más núcleos del procesador de manera gráfica.
  • Las Máquinas Virtuales se pueden duplicar de manera rápida y sencilla, de manera que es posible generar varias VM nuevas con las mismas características que una ya existente. 
  • Las Máquinas Virtuales se pueden exportar, tanto de manera individual como en conjunto, de modo que se puedan instalar de manera sencilla en otro equipo.
  • Los sistemas de virtualización permiten tomar instantáneas del estado en que se encuentra una Máquina Virtual, de modo que se pueda revertir en caso de no querer guardar los cambios realizados o se haya producido algún problema.

Con respecto al hardware necesario para trabajar con Máquinas Virtuales, es muy recomendable disponer de un equipo con un buen procesador y con una buena cantidad de memoria RAM, sobre todo si se va a trabajar con varias Máquinas Virtuales simultáneamente. Existen diversas alternativas para virtualizar.

  • VMWare Workstation.
  • Hyper-V.
  • VirtualBox (La que utilizaremos).

La instalación es sencilla, basta con descargar la versión adecuada para el host que se utilice y seguir los pasos indicados en el sitio web de VirtualBox (https://www.virtualbox.org/wiki/Downloads).

Distribuciones para Pentesting:
Para llevar a cabo las labores de pentesting se necesita un buen arsenal de herramientas, que se pueden instalar manualmente en el sistema operativo cuando se vayan necesitando o se puede emplear algunas de las distribuciones específicamente creadas para esta tarea. La segunda opción es la mas recomendable y la más empleada ya que facilita enormemente el trabajo y ahorra una gran cantidad de tiempo. Entre las distribuciones disponibles destacan las siguientes:

  • Kali Linux: Distribución de seguridad basada en Debian desarrollada por la empresa Offensive Security. Dispone de numerosas opciones de instalación. Tambien dispone de un enorme repositorio de paquetes donde se incluyen nuevas herramientas con cada nueva versión, Lo que facilita la instalación automatizada de estas.
  • ParrotOS: Distribucion de seguridad basada en Debian. En 2022 comenzó una alianza con HackTheBox para mejorar su desarrollo e incluirla en la plataforma a través de la web.
  • TailsOS: Acrónimo de "The Amnesic Incognito Live System" es una distribución de Linux basada en Debian que se ejecuta desde una unidad USB o un DVD. Su objetivo principal es proporcionar a los usuarios una forma segura y anónima de utilizar Internet, minimizando las huellas digitales dejadas en el proceso. Las características clave son:
    • Privacidad y Anonimato: Tails canaliza todo el tráfico a través de la red Tor, lo que garantiza el anonimato al ocultar la ubicación y la identidad del usuario.
    • Modo Amnésico: Tails no almacena ninguna información de sesión después de apagar el sistema. Esto significa que no deja rastro en el dispositivo que estás utilizando, proporcionando un nivel adicional de seguridad.
    • Herramientas de Criptografía: Tails viene con herramientas de cifrado integradas, como GnuPG, que permite a los usuarios cifrar y firmar digitalmente sus correos electrónicos y documentos.
    • Navegación Segura: La combinación de Tor Browser y la configuración de seguridad predeterminada garantiza una experiencia de navegación segura y privada.
    • Uso Temporal de Hardware: Tails está diseñado para ser utilizado en cualquier computadora sin dejar rastros en el hardware. Esto permite a los usuarios llevar su entorno seguro a donde vayan.
  • BlackArch: Distribución de seguridad basada en Arch Linux con mas de 2800 herramientas en sus repositorios.
  • CommandoVM: Es un conjunto de herramientas para convertir el sistemas operativo Windows en una distribución de seguridad ofensiva. Creada por la empresa "Mandiant".

CONFIGURACIÓN DE UNA VM OFENSIVA

La forma más simple de preparar una máquina ofensiva es utilizar una distribución de seguridad. Una de las más extendidas es Kali Linux, que está disponible en distintos formatos. Aunque se pueden descargar Máquinas Virtuales preconfiguradas para utilizar en VMWare y VirtualBox es recomendable descargar la imagen ISO aunque el proceso sea más largo, puesto que con esta imagen se podrá instalar Kali directamente en el equipo o crear una Máquina Virtual propia, evitando futuras molestias con las redes o con las distribuciones del teclado, entre otras.

Se descargará del repositorio oficial de Kali (https://www.kali.org/downloads/) una de las imágenes denominadas installer, de 32 o 64 bits.

  • Una vez descargada la imagen ISO se creará una nueva Máquina Virtual en VirtualBox cuando se abra la ventana emergente se introducirá el nombre y el tipo de Sistema Operativo.


  • En el siguiente paso se indicará la memoria RAM y la cantidad de Nucleos de Procesamiento que se quiere dar a la Máquina Virtual. La cantidad dependerá tanto de la memoria disponible y de nucleos en el host como del número de Máquinas Virtuales que se quieran utilizar de manera simultánea. Para una distribución Kali Linux de 64 bits con 2 GB y 2 Nucleos serian más que suficientes para obtener un buen rendimiento, aunque se podría recortar en caso de necesidad.

  • En el tercer paso se indicará si se quiere utilizar un disco duro existente o crear uno nuevo. Lo normal en una instalación limpia será crear uno nuevo. Aunque VirtualBox indique que el tamaño recomendado es de 8GB, es recomendable asignar un tamaño mayor. Con 240 GB dinámicos es más que suficiente para esta distribución. El resto de las opciones se pueden dejar con sus valores por defecto.



Una vez creada la estructura de la Máquina Virtual, es necesario configurar la red e indicar dónde se ubica la imagen ISO para la instalación.
 




El siguiente paso a dar una vez finalizada la configuración de la Máquina Virtual es la instalación del sistema operativo en la misma.

CONFIGURACIÓN DE UN LABORATORIO

A la hora de practicar las acciones de pentesting es necesario disponer de un laboratorio con distintos equipos, de modo que se disponga de distintos Sistemas Operativos y aplicaciones con vulnerabilidades diferentes. Dado que montar un laboratorio con equipos físicos seria muy costoso y dificil de mantener, es bastante habitual optar por la virtualización, puesto que con unos recursos más limitados se puede disponer de equipos suficientes para practicar, con la ventaja añadida de que si se dañan se pueden revertir al estado inicial sin tener que reinstalarlos desde cero.

Existen plataformas que ponen a disposición del público entornos virtuales en los que practicar. Esta seria la mejor opción de cara a practicar, dado que suelen ir montando las Máquinas Virtuales con cierta regularidad y, además, algunas de ellas proporcionan laboratorios que simulan redes, de modo que se puede utilizar un equipo vulnerado para pivotar y acceder a la red interna hasta lograr tomar el control de todos los equipos. Como inconveniente principal, estos entornos son generalmente de pago, salvo pases temporales o laboratorios reducidos, por lo que hay que habrá que considerar si el presupuesto permite optar por esta opción.

Las posibilidades son múltiples: se pueden utilizar Máquinas Virtuales independientes descargadas de internet o crear Máquinas Virtuales propias, utilizando aplicaciones y/o configuraciones vulnerables; se puede crear un laboratorio con varios equipos en una misma red para practicar los movimientos laterales o, incluso, crear un dominio Windows con su controlador de dominio y diferentes servidores y clientes. La limitación en este caso viene dada por el procesador y por la cantidad de memoria disponible en el equipo utilizado, aparte de por el presupuesto disponible para las licencias de Windows, si se opta por esta opción.

Repositorios de máquinas vulnerables
Para practicar y mejorar nuestras habilidades disponemos de multitud de entornos de pruebas que simulan escenarios reales y que han sido diseñados para ser explotados.

Los retos de captura la bandera o Capture The Flag (CTF) consisten en la obtención de un código oculto (flag) en el reto, que solo es accesible para aquellos que descubren la vulnerabilidad o el punto débil del reto. En este tipo de retos prima el resultado sobre el proceso, por lo que no hay que dar explicaciones de cómo se ha logrado resolver. Basta con obtener la bandera para demostrar que se tienen las habilidades que llevan a su resolución. Para evitar que puedan hacer trampas existen códigos de conductas que se deben respetar. El más importante es no hacer pública la solución a un reto, denominado writeup o walkthrough, hasta que el reto deje de estar activo.

¿Por que los CTF son la mejor vía para aprender Hacking Ético?

Aprender hacking Ético no consiste únicamente en estudiar teoría o memorizar herramientas: se trata de pensar como atacante para defender como profesional. En este contexto, los Capture The Flags (CTF) se han consolidado como una de las formas más efectivas, practicas y motivadoras para adquirir habilidades reales en ciberseguridad.

Los CTF son competiciones o laboratorios gamificados donde los participantes deben resolver retos de seguridad informática como explotación de vulnerabilidadesanálisis forensecriptografíaingeniería inversa o pentesting web con el objetivo de obtener una "bandera (flags)". Este enfoque convierte el aprendizaje en una experiencia activa, muy cercana a situaciones del mundo real.

Una de las principales ventajas de los CTF es que fomentan el aprendizaje práctico. En lugar de limitarse a leer sobre vulnerabilidades, el estudiante las explota en entornos controlados y legales, comprendiendo no solo el cómo, si no tambien el por qué de cada fallo de seguridad. Este aprendizaje basado en la práctica acelera la curva de conocimiento y fortalece la retención a largo plazo.

Además, los CTF promueven una mentalidad analítica y creativa. Cada reto requiere observar, investigar, probar hipótesis y, muchas veces, pensar "fuera de la caja". Estás habilidades son esenciales para cualquier profesional del hacking ético, ya que los ataques reales rara vez siguen un manual paso a paso.

Otro punto clave es su accesibilidad y progresión. Existen CTF para todos los niveles, desde principiantes hasta expertos, lo que permite aprender de forma gradual y medible. Varias plataformas ofrecen rutas de aprendizaje estructuradas que acompañan al usuario en su evolución técnica.

Por ultimo, los CTF fomentan la comunidad y el aprendizaje colaborativo. Compartir soluciones, discutir enfoques y trabajar en equipo ayuda a desarrollar habilidades blandas tan importantes como la comunicación y el trabajo bajo presión, muy valoradas en el sector de la ciberseguridad.

En conclusión, los CTF no solo enseñan hacking ético: entrenan la mente, fortalecen la ética profesional y preparan para escenarios reales. Por eso, hoy en día, son considerados una de las mejores puertas de entrada al mundo de la ciberseguridad.

Existen numerosas plataformas de internet donde se puede practicar todo este tipo de retos, algunos de ellos son:
  • Atenea: Plataforma creada por el CCN-CERT que tiene numerosos retos en distintas categorías. Además se pueden consultar todos los retos d años pasados. Tiene una sección "Academia" donde se explican conceptos teóricos y prácticos de las distintas disciplinas.
  • Academia Hacker: Creada reciente por el INCIBE, dispone de una sección de retos descargables organizados en diferentes niveles de dificultad. Además, ofrece el solucionario (writeup) de todos ellos. Las academia ofrece la posibilidad de inscribirse en talleres temáticos que se convocan a lo largo del año y también organiza una competición CTF para descubrir talento y seleccionar al equipo nacional que forma parte de las competiciones de hacking que se organizan a nivel europeo y mundial.
  • PicoCTF: Es una plataforma de retos creada por la Universidad Carnegie Mellon. Realiza una competición anual orientada a estudiantes de secundaria y educación superior, con retos realmente exigentes. En su web también ofrece una sección con recursos de aprendizaje. En la plataforma de retos se encuentran accesibles todos los retos de las competiciones realizadas desde 2019 por lo que es un buen lugar para entrenar y poner en práctica nuestra habilidades.
  • CTF Time: Es la web de referencia para buscar eventos CTF que se van a realizar en el futuro o que ya se han realizado. Incluye clasificaciones de equipos y enlaces a las soluciones de los retos ya realizados en los CTF.
Por otro lado, existen plataformas orientadas principalmente a la resolución de máquinas, pero pueden incluir otro tipos de retos. Las mas relevantes son:
  • HackTheBox: Esta empresa fundada en 2017 por James Hooker, Haris Pylarinos y Aris Zikopoulos, tiene más de dos millones de usuarios y es el referente de este tipo de plataformas, ya que la dificultad y grado de profesionalidad de sus máquinas en un aspecto a destacar. Dispone de un conjunto de unas 20 máquinas cativas de dificultades easy, medium, hard e insane, cuya resolución otorga puntos al usuario que en función del numero y nivel de máquinas vulneradas a adquiere un ranking (rank). Cualquier usuario registrado puede enfrentarse a estas máquinas que tras un cierto tiempo se retiran por otras nuevas.
  • TryHackMe: Esta plataforma ofrece laboratorios de aprendizaje, llamados room, con una serie de tareas guiadas que explican el proceso paso a paso para aprender nuevos conceptos, manejar una herramienta, explotar un servicio o una máquina completa, etc..., Por lo que es un lugar excelente para aprender y practicar. Además, existen otros laboratorios de tipo CTF que consisten en máquinas vulnerables donde no se ofrece ninguna pista para obtener las banderas, donde es posible poner a prueba nuestro nivel. También dispone de redes de máquinas (networks). Existen laboratorios de acceso gratuito y otros solo accesibles mediante suscripción.
  • Vulnhub: Es un repositorio de máquinas virtuales vulnerables creadas por la comunidad de acceso gratuito. Hay más de 700 laboratorios para descargar, normalmente en formato OVA (VirtualBox). Actualmente, el proyecto está promocionado por la empresa Offensive Security.
  • HackMyVM: Otro repositorio de máquinas virtuales vulnerables libres que se ha creado recientemente. Existe la opción de destacar las imágenes de forma anónima o registrarse en la plataforma para enviar las banderas obtenidas y registrar nuestro progreso. Hay más de 200 máquinas con tres niveles de dificultad: fácil, media y difícil.
  • Proving Grounds: Plataforma creada por la empresa Offensive Security con dos versiones, Play (gratuita) y Practice (de pago). PG Play es una plataforma online que incluye las maquina de la plataforma VulnHub con tres horas diarias de acceso, mientras que PG Practice no tiene limitación de tiempo, incluye máquinas con SO Windows y máquinas especiales creadas por los expertos de la empresa.
  • Thehackerslabs.
  • Vulnyx.
  • Dockerlabs.
  • Bugbountylabs.
Es posible encontrar otras VM virtuales fuera de estas paginas, algunas de las cuales han sido desarrolladas por los creadores de la herramienta Metasploit. Por la cantidad de vulnerabilidades que presenta, a efectos didácticos y de asimilación de conceptos y metodología es interesante utilizar Metasploitable2, teniendo en cuenta que muchas de sus vulnerabilidades son muy antiguas y no se van a encontrar en entornos reales a día de hoy.

Otra VM vulnerable interesante es Metasploitable3, puesto que es una de las pocas que tienen una versión con el sistema operativo Windows.

Damn Vulnerable Web App (DVWA) es una aplicación virtual vulnerable a los ciberataques web más conocidos y utilizados por hackers. El propósito de esta aplicación es entender cómo funcionan estos ataques y, además, aprender a identificar fallos de seguridad en otros sitios web. No obstante, DVWA es un entorno legal y seguro, en donde puedes practicar estas técnicas todo lo que desees.

Una vez configurado el laboratorio con la Máquina Virtual Atacante y las Máquinas Virtuales Vulnerables (Victimas) se puede comenzar a practicar.

Puedes ver la lista de mis soluciones, scripts y notas relacionadas con retos de CTF (Capture The Flag) haciendo click aquí.
 
¡¡¡Happy Hacking!!!