Muy buenas a todos!
Esta semana vamos a comenzar una nueva serie de posts, en los que montaremos un pequeño laboratorio para hacer todo tipo de maldades pruebas en entornos Windows. Para ello, utilizaremos Hyper-V Server y Windows Admin Center de forma totalmente gratuita. Te animas a montar el tuyo?
Prólogo
Últimamente, se ha puesto muy de moda crear laboratorios de todo tipo: en la nube, en local, de forma automática utilizando scripts.. Y desde hace ya algún tiempo, quería compartir con vosotros cómo monté yo el mío.
Para recrear el proceso, utilizaré una máquina virtual, en la que instalaré el sistema operativo paso a paso y todas las herramientas necesarias. Además, os contaré que hardware he utilizado yo para montar mi «pequeño clúster» y todas las ventajas e inconvenientes que conlleva este sistema.
A diferencia de cualquier otro laboratorio que hayáis podido ver anteriormente, puede que éste sea uno de los más rápidos, sencillos y estables que podemos encontrar. Si a todo esto, le sumamos que no requiere de ningún tipo de coste (a nivel de software), estamos sin duda ante una de las mejores soluciones posibles para montar nuestro propio Hacking Lab.
Antes de comenzar, es importante comprender que no todo el mundo tiene las mismas necesidades, ni dispone del mismo presupuesto. A muchos otros no les gustan los sistemas que no son Open Source o prefieren tener su laboratorio en la nube. En cualquier caso, te recomiendo que leas el artículo y tú mismo decidas si esto es para ti. En el peor de los casos, habrás aprendido algo nuevo 🙂
En primer lugar, hablaremos del hardware. Como diría mi antiguo yo, el hardware es todo aquello que puedes romper y el software todo aquello que solo puedes maldecir. Durante mi época de SysAdmin, me dediqué principalmente a diseñar, montar, configurar y mantener sistemas de virtualización. Gracias a ello, aprendí muchas cosas sobre este ámbito, que ahora nos ayudarán en nuestro viaje hacía el nirvana de los laboratorios orientados al pentesting.
Hardware
Esta es sin duda, una de las partes más importantes. El «corazón» de este laboratorio, que será el responsable de ejecutar las máquinas virtuales y de hacer que todo fluya como corresponde. Por ello, es importante contar con todos los recursos posibles (dentro de nuestro presupuesto) para que el resultado no sea frustante y no termine siendo una mala experiencia al uso.
En muchas ocasiones, he tenido que montar virtualizadores (de ahora en adelante, hipervisores) con restos de componentes o aprovechando recursos de otros equipos. No soy partidario de desvestir a un santo para vestir a otro, pero a veces no queda más remedio. Partiendo de esa premisa, voy a intentar enfocar este artículo como algo «low-cost» para que sea algo al alcance de todos.
Evidentemente, si quieres montar lo mismo en un hardware mucho más potente, no hay problema. De hecho, el proceso es el mismo, por lo que esta pequeña guía te servirá sea cual sea tu propósito.
Seguramente, muchos de los lectores habrán montado anteriormente algún equipo doméstico, o incluso, algún servidor para uso profesional. Sea o no tu caso, es importante entender la sutiles diferencias que existen entre una máquina orientada a la virtualización y un equipo convencional.
Cuando pensamos en un PC de escritorio, todos tenemos claro lo que necesitamos. Pero, qué necesitamos para poder mover máquinas virtuales correctamente? Puedo utilizar un PC antiguo? Puedo aprovechar cosas que ya tengo en casa?
La respuesta corta es sí, pero hay algunas cosas que tenemos que tener en cuenta:
• No todos los procesadores soportan las instrucciones de virtualización
• Necesitaremos como mínimo, una tarjeta de red cableada
• No es imprescindible contar con una GPU dedicada, aunque podría usarse para crackear hashes
• Necesitaremos una buena cantidad de memoria RAM (mínimo 2GB por máquina)
• La velocidad de acceso a disco es muy importante, se recomienda usar discos SSD
• Si no tienes una máquina potente, puedes usar muchas con poca potencia
Teniendo en cuenta los puntos anteriores, tenemos muchísimas opciones. Podemos usar un servidor de segunda mano, ofrecen mucha potencia bruta y suelen tener bastante memoria RAM. Si no disponemos de discos SSD, podemos juntar muchos discos mecánicos (8 sería una buena cifra) y montar un RAID 10 sobre ellos. De esta forma, ganaríamos bastante velocidad y una tolerancia a fallos más que aceptable.
Por otra parte, podemos utilizar portátiles antiguos, equipos de poca potencia o de bajo consumo, o incluso, equipos de desarrollo o cualquier otra cosa que sea capaz de virtualizar. En cualquier caso, os recomiendo que intentéis montar algo que sea lo más homogéneo posible, intentando no mezclar arquitecturas diferentes ni configuraciones muy dispares entre sí.
Por ejemplo, podríamos usar 4 PC’s viejos o de segunda mano, con 8GB de memoria cada uno para levantar dos o tres máquinas virtuales en cada uno de ellos. También podemos comprar 4 equipos de bajo consumo, o podemos montarlo todo en una workstation muy potente.
Al final, el objetivo de todo esto, es montar algo con lo que ya puedas tener en casa para gastar lo mínimo posible. Recuerdas ese portátil antiguo que está cogiendo polvo en un cajón? Es hora de ponerlo a trabajar!
Software
Ahora que ya tenemos una ligera idea de que hardware queremos usar, nos toca hablar de que software vamos a instalar en él. Esta parte es tan importante como la primera, o incluso más. De nada sirve tener un hardware muy potente si luego el sistema se cuelga, no funciona de forma adecuada o no es capaz de aprovechar los recursos disponibles del equipo. Por ello, se trata de una decisión importante que no podemos tomar a la ligera.
Existen muchos sistemas de virtualización: gratuitos, de pago, de código abierto, de código cerrado.. pero, cuál debo elegir? Este es el quid de la cuestión. A día de hoy, la mayoría de ellos te proporcionarán una experiencia de uso amigable, fácil y sencilla (o quizás no tanto?). Seguramente habrás oído hablar de la mayoría de ellos: VMWare, Hyper-V, Nutanix, Proxmox..
Basándome en mi experiencia, tengo muy claro cuál utilizar en este entorno. Pero antes, os explicaré algunas cosas al respecto sobre estos sistemas:
• Muchos de ellos son de pago
• Los que no lo son, tienen versiones muy limitadas (no permiten hacer backups, usar vSAN, etc..)
• No todos son compatibles con algunos dispositivos (tarjetas de red, controladoras RAID, etc..)
• Existen problemas de compatibilidad con el sistema «guest»
• Algunos tienen una interfaz poco amigable, o son difíciles de configurar
Aparte de intentar evitar todos estos problemas, también vamos a necesitar cumplir algunos requisitos:
• El objetivo es montar un laboratorio con sistemas de Microsoft
• Que tenga un consumo de recursos mínimo
• Que sea lo más estable y fiable posible
• Que permita realizar respaldos en la nube además de en local
• Que funcione de forma híbrida con mis máquinas en Azure
• Que lo pueda instalar en una tostadora (no literalmente)
Debido a esto, la opción a escoger es muy clara: Hyper-V Server
Para todos aquellos que no conozcan este sistema, se trata de una versión gratuita de Windows Server, muy parecida sus hermanos mayores (sobretodo a las versiones sin escritorio). En la que únicamente se encuentra instalado el rol de hipervisor. Ya que no dispone de interfaz gráfica, ni es posible instalar otras características, el consumo del sistema es mínimo, así como la superficie de ataque al mismo.
Eso no implica, que no podamos instalar nada, de hecho, podemos utilizarlo prácticamente igual que el resto de versiones utilizando algunos complementos, que veremos en la próxima entrada al detalle. Además, es compatible con todo el hardware que disponga de drivers para Windows, e incluso, nos permite montar un failover clúster sin problema alguno. Todo esto, además, sin ningún tipo de coste ni de licencia.
Sin duda alguna, este sistema cumple con todo lo necesario para convertirse en el rey indiscutible de la virtualización doméstica, ofreciéndonos un producto sencillo, potente y fiable sin desembolsar un céntimo.
En la próxima entrada, realizaremos todo el proceso de instalación desde cero, habilitaremos la interfaz gráfica y veremos como gestionar este sistema a través de escritorio remoto, desde las herramientas de administración de Hyper-V y desde Windows Admin Center.
Espero que os haya gustado y os animéis a montar el vuestro en el siguiente artículo.
Nos vemos en la próxima!