lunes, febrero 26, 2024

Enseñando hacking ético a través del aprendizaje basado en retos

El próximo 5 de marzo impartiré por undécima edición consecutiva un RootedLab en RootedCON. En esta ocasión estaré para dar un taller sobre Hacking Ético, el cual se lleva dando durante dos ediciones con un enfoque basado en retos y escenarios para enseñar técnicas de hacking ético actuales. Un lab intenso donde, después del lab, dispondrás de una semana extra para consultar preguntas y seguir jugando con los escenarios propuestos para tu aprendizaje. Esa semana extra se llevará a cabo a través de una sala de chat en la plataforma de MyPublicInbox.
Además, si quieres venir a RootedCON, te recuerdo que puedes comprar tu entrada de RootedCON 2024 con Tempos, ya que se han puesto 50 entradas a la venta que puedes comprar con 10.000 Tempos, así que solo debes ir a tu cuenta de MyPublicInbox y conseguirlas con este precio especial.


Y ahora, centrándome en el RootedLab de Hacking Ético, hay que remarcar que la finalidad que nos hemos marcado en este lab es el de enseñar Hacking Etico a través de retos que facilitan el entrenamiento y la adopción de metodología de pentesting. Se proporciona un aprendizaje de técnicas del día a día del pentester a través del uso de diferentes escenarios reales y clasificados por las diferentes técnicas y por nivel. 

Los objetivos que tiene este RootedLab es:
  • Aprender metodología para hacer un pentesting práctico y resolver problemas.
  • Enfrentarse a entornos reales.
  • Resolver escenarios a través de un entrenamiento práctico.
Docker como plataforma de pentesting

En el artículo de hoy quiero enseñar cómo es un escenario de hacking a través de plataformas como Docker, el cual es perfecto para disponer de recursos para poder enseñar: enumeración, reconocimiento, escaneos, identificación de vulnerabilidades, explotación, escaladas de privilegios, pivoting, movimientos laterales, etcétera.

En otras palabras, son perfectos para disponer de escenarios reales y poder entrenar a equipos de pentesting. Estos entornos pueden montarse de forma local en una red propia o en los propios equipos de los pentesters.


Es más, se puede montar de forma sencilla un tipo de CTF o Capture The Flag. En este caso, se mostrará cómo con un poco de conocimiento de Docker se puede construir lo necesario para crearse escenarios y poder jugar con todo ello. Ya lo comentaron en este artículo titulado "Cómo montar un entorno de pentesting desde cero con Docker", nuestros compañeros Rafael Troncoso  y Fran Ramírez.

¿Qué cosas tenemos que tener en cuenta? 

A la hora de crear un entorno para entrenamiento de pentesting se debe tener en cuenta lo siguiente:
  • La imagen con las vulnerabilidades y las configuraciones preparadas.
  • El volumen para datos que deben permanecer y mantenerse tras la creación y destrucción de los contenedores.
  • Las redes gestionadas, idealmente, a través de un docker-compose.
  • La gestión de puertos entre entorno físico y contenedores.
La creación paso a paso del docker-compose o de la tecnología que se quiera usar de Docker la dejamos para otro artículo, pero se puede ver en la siguiente imagen lo fácil que puede ser levantar un entorno dónde se dispone de diferentes de máquinas, el cual puede tener diferentes tipos de redes y diferentes tipos de servicios.

Figura 5: Docker compose up

Se puede leer un mensaje que dice “i am kalilinux (pentester machine)”. Se proporciona una máquina al pentester para “jugar” con el reto, aunque también podría darse acceso a su máquina a la red o conjunto de redes. Los escenarios pueden ser lo grandes que se quieran, ya que los diseñamos e implementamos nosotros.

En una formación como el RootedLab de Hacking Ético, cada escenario (y se hacen varios) propone un conjunto de conceptos a estudiar que son técnicas de hacking orientadas a pentesting. Por ejemplo, imaginemos que queremos enseñar pentesting a través de varios escenarios, una de las posibilidades sería:
  • Enseñar primero qué es la fase de reconocimiento, de enumeración, de escaneos. Usar herramientas en varios ejemplos y retar al alumno a llevar a cabo la práctica a través de un escenario dónde se le propone un reto.
  • Se le está retando, es decir, puedes utilizar cualquier herramienta que te permita lograr el objetivo marcado.
  • El objetivo marcado será una flag o una característica que tengas que lograr.
Bien, después se puede montar otro escenario dónde se tenga que identificar diferentes tipos de vulnerabilidades que pueden ir desde una versión de software obsoleta, una mala configuración de un servicio, un proceso de fuerza bruta, una vulnerabilidad web, etcétera. 

Como se puede ver, se hace foco en lo que se pretende enseñar. Se enseña, pero después, vamos a proponer el reto al alumno para que él lo luche. De esta forma el alumno experimentará lo que es el aprendizaje basado en el reto: un camino en el que fallará mucho, pero acabará conociendo muchas cosas y logrará su éxito.

Figura 7: Reto e1

Ciertamente, se puede montar de todo en un entorno con Docker, haciendo un paralelismo con el mundo real. Además, se pueden incluir máquinas virtuales dándoles acceso a algunas de las redes de los escenarios que se quieran montar, por lo que la personalización de los entrenamientos es infinita.

Otros entornos basados en Docker y máquinas virtuales

Hay repositorios en Github, como el de VulHub, que proporcionan imágenes de Docker personalizadas para probar ciertos entornos vulnerables. Es un repositorio muy interesante de cara a poder aprender sobre una vulnerabilidad concreta.


También tenemos a Vulnhub que proporciona máquinas virtuales con vulnerabilidades y son retos interesantes de trabajar. 

Figura 9: Writeup de retos de VulHub

Se pueden encontrar writeup por Internet sobre ellos, los cuales son formas también de aprender cómo otros han resuelto retos.

Recapitulamos sobre el RootedLab

Antes de finalizar el artículo sobre cómo ha evolucionado la enseñanza del Hacking Ético en una formación al uso de entornos o escenarios prácticos que dispongan de realidad y los alumnos puedan usar técnicas reales sobre ellos, vamos a mostrar algunos aspectos sobre el RootedLab de Hacking Ético del día 5 de marzo. El taller se divide en varias partes:
  • Parte I: Se enseñan diferentes técnicas de enumeración de máquinas y redes: En esta primera parte del lab, se resuelven escenarios de enumeración y se muestra el uso de técnicas y herramientas sobre ellos.
  • Parte II: Identificación de vulnerabilidades y explotación de éstas: El alumno recorrerá diferentes escenarios viendo cómo se detectan vulnerabilidades y cómo éstas se pueden explotar (con diferentes herramientas y con técnicas manuales). Esta parte cubre un amplio abanico que puede ir desde la generación de un exploit propio hasta el uso de herramientas automáticas. Todo ello sobre un escenario.
  • Parte III: Post-explotación: En esta parte se tratarán técnicas de escalada de privilegios, pivoting, técnicas de movimiento lateral, extracción de credenciales, etcétera. Todo a través del uso de escenarios reales (a los que un pentester se puede enfrentar en su día a día).
Los escenarios pueden contener diferentes máquinas (GNU/Linux), por lo que el enfoque es más global y real. Se estudiarán escenarios con vulnerabilidades en diferentes entornos, se utilizarán técnicas de post-explotación para poder elevar privilegio o pasar a otra máquina. El objetivo es claro: ¡Conseguir la flag! Por último, dejaremos la agenda con los conceptos que se impartirán:
  • MakeLab: Escenarios de entrenamiento preparados
    • Metodología de Pentesting
    • Mochila del pentester
    • ¿Qué debo tener a mano en un Red Team?
    • ¿Qué debo tener a mano en un pentest?
    • Distros & Tools
  • Fase 1: Enumeración y reconocimiento
    • Escenario: Enumeración
    • Técnicas de enumeración
    • Herramientas
    • Información relevante
    • Existencia de vectores de ataque
    • Escenario propuesto
  • Fase 2: Identificación de vulnerabilidades y explotación
    • Escenario: Identificación y explotación
    • Técnicas para identificar vulnerabilidades
    • Técnicas de explotación vulnerabilidades
    • Bind. Reverse
    • Herramientas
    • Escenario propuesto
  • Fase 3: Post-Explotación
    • Escenario: Post-Explotación
    • Recopilación de información
    • Escalada de privilegios
    • Pivoting
    • Herramientas
    • Escenario propuesto
  • Resolución escenario final
Antes de acabar, añadir que en todo entorno de formación y aprendizaje basado en reto debemos disponer de un dashboard dónde el alumno debe ir validando sus hitos. Contamos con un dashboard para insertar las flags de las máquinas que se van consiguiendo.

Figura 10: El Dashboard para las flags de los retos

Además, estaremos en el evento con charlas sobre Web3 y sobre Inteligencia Artificial. Puedes ver más información en la web del evento. Nos vemos en RootedCON 2024, donde además estará 0xWord con todos nuestros textos de hacking & ciberseguridad y estaré firmando libros. 
Además, con la compra de tu entrada de RootedCON 2024 conseguirás 100 Tempos de MyPublicInbox gratis. Basta con que entres en tu cuenta de MyPublicInbox con el mismo correo electrónico que te registraste en RootedCON 2024 y tendrás tus 100 Tempos una entrada gratuita de OpenExpo Europe 2024: que tendrá lugar en Madrid el 13 de Junio de este año. Y recuerda que con tus Tempos, podrás conseguir los códigos descuentos, y pagar parcial o completamente tus libros de 0xWord, y recogerlos en RootedCON 2024, o hacerlo allí mismo en el momento.
 
Saludos,

Autor: Pablo González Pérezescritor de los libros "Metasploit para Pentesters", "Hacking con Metasploit: Advanced Pentesting" "Hacking Windows", "Ethical Hacking", "Got Root",  “Pentesting con Powershell” y de "Empire: Hacking Avanzado en el Red Team", Microsoft MVP en Seguridad y Security Researcher en el equipo de "Ideas Locas" de la unidad CDCO de Telefónica.  Para consultas puedes usar el Buzón Público para contactar con Pablo González

Contactar con Pablo González

No hay comentarios:

Entrada destacada

10 maneras de sacarle el jugo a tu cuenta de @MyPublicInbox si eres un Perfil Público

Cuando doy una charla a algún amigo, conocido, o a un grupo de personas que quieren conocer MyPublicInbox , siempre se acaban sorprendiendo ...

Entradas populares