23 ene 2023

RootedLab: Pentesting a SmartContracts & Web3


Estamos a poco más de un mes de la RootedCON. Uno de los congresos de ciberseguridad más importantes a nivel europeo se celebra, en una edición más, en Madrid. Ya he contado en otras ocasiones las participaciones que he disfrutado en RootedCON, tanto a nivel de taller como a nivel de ponencia, por lo cual solo puedo sentir orgullo. Para este año, quería llevar un taller que me hiciera sudar y que me sacase de la llamada zona de confort. Hace tiempo que estoy interesado en el área del pentesting a Web3, especialmente a los SmartContracts. 

Hay que decir que, desde mi opinión, la Web3 abre un nuevo mundo lleno de oportunidades a los perfiles de Ciberseguridad. Para mí la ciberseguridad es una disciplina transversal a cualquier tecnología, ya sea nueva o no tan nueva. En cuanto una tecnología es utilizada y aporta un bien a la sociedad, la ciberseguridad la acompañará en su desarrollo, ya que sin ésta no podrá evolucionar o ganar la confianza de la gente. Dicho esto y observando el mundo laboral que nos rodea, se puede observar dos estrategias:

- Empresas del paradigma Web3 que buscan perfiles de Ciberseguridad para fortificar y auditar sus proyectos.
- Empresas del paradigma Web3 que forman a sus empleados en Ciberseguridad.

¿Qué camino creéis que es el adecuado? Si nos hacemos la pregunta de otra forma sería, ¿Es más sencillo que alguien del mundo Web3 aprenda todo lo necesario sobre Ciberseguridad? O, por el contrario, ¿Es más sencillo que a alguien con perfil Ciber se le enseñe Web3? Parece que los "tiros" van por el camino de "mejor traer gente con las habilidades de Ciberseguridad y enseñarles el entorno Web3". Para mí es el camino adecuado o el camino más corto para disponer de personas formadas y con conocimientos en Ciberseguridad en dichas empresas (y me consta que algunas empresas optan por ese camino). Dejamos el debate abierto, ya que cada uno puede exponer sus argumentos. 

Bien, dicho esto, el taller que se celebra el día 8 de Marzo en horario de 9.00 a 18.00 (quizá más, dependiendo cómo estemos de metidos haciendo pentesting a los SmartContract). Es un taller nuevo que se llevará a cabo por primera vez en RootedCON. Es un taller en el que el alumno podrá disfrutar de cero a conocer el mundo Web3. Es decir...

¿Qué ocurre si no tengo conocimientos previos, pero quiero conocer? 

El taller puede llevarlo a cabo cualquier persona, ya sea que tengas conocimientos previos en el tema o no. Tenemos la suerte de disponer de diferentes tipos de pruebas y de ejercicios por nivel, los cuales se pueden adoptar a cada alumno, en función de las necesidades técnicas de cada uno. De lo más básico a lo más avanzado. Dependerá del alumno!




Agenda


1- Introducción a web3 (blockchain, wallet/EOA, smart contract, transacciones, dapps, etc) 
    1.1- Relación web2 y web3 

2- Montaje entorno de pruebas y laboratorio 
(Montaremos un laboratorio de 0 en pocos minutos para ir realizando el taller sobre dicho laboratorio) 

3 - Clasificación de vulnerabilidades 
(éstas se explicarán de forma esquemática y se explicarán a través de contratos de ejemplo. Además, en algunos casos se ejecutarán dichos contratos en blockchain local para que el alumno pueda ver la vulnerabilidad paso a paso). 
Ejemplos de vulnerabilidades: Re-Entrancy, Denegación de servicio, Gas DOS, Tx.Origin, Ice-Phishing, Signature Replay, etc.

4 - Pruebas que verificar con análisis estático 
(aquí se estudian las pruebas mediante el uso de herramientas OpenSource como, por ejemplo, mythrhil o slither y se muestran ejemplos. También se estudiará el bytecode, los Opcodes y el ABI). Todo con enfoque práctico. 

5 - Pruebas que verificar con análisis dinámico 
(aquí se despliegan contratos sobre blockchain local o testnet y se lleva a cabo el uso de metodología para detectar vulnerabilidades a través de técnicas de interacción con las funciones, fuzzing, etc)

6- Durante las últimas 3 horas (o 4 horas si vamos bien de tiempo) se llevará a cabo ejercicios a través de plataforma CTF. Se disponen de diferentes tipos de pruebas para auditar contratos y diferentes escenarios. ¡Pentesting!


Anexo de info y contenidos

  • En este taller se mostrará cómo llevar a cabo un pentesting a SmartContracts (y web3) y cómo detectar vulnerabilidades realizando pruebas de tipo SAST y de tipo DAST. Se mostrarán propuestas de estándares y metodología para llevar a cabo estas auditorías. 
  • Además, se mostrarán algunas de las principales herramientas OpenSource para aplicar metodología en el mundo web3.
  • Se mostrará de forma práctica un entorno local dónde desplegar una blockchain, utilizar un Wallet y disponer de la posibilidad de desplegar de manera sencilla contratos. La idea es que el alumno se familiarice rápidamente con el laboratorio y con todas las herramientas (opensource) necesarias para crear el laboratorio. 
  • La base y la comprensión entre el cambio del mundo web2 al mundo web3 es importante, por eso se dota al taller de esta transición (mostrando paralelismos). La mayoría de los proyectos (en el mundo real) serán web2.5, dónde se juntan tecnologías web2 con tecnologías web3. El pentester deberá conocer ambos mundos para poder aplicar sus conocimientos sin las barreras de entrada de estos mundos.
  • Se expone una parte de metodología con el objetivo de facilitar las bases de auditoría y conocer las principales vulnerabilidades que existen en estos proyectos de web3 (focalizando energía en los SmartContract). Se explicarán técnicas de detección de vulnerabilidades basadas en SAST y DAST. 
  • Además, se utilizará una plataforma nueva (un CTF) para llevar a cabo algunas pruebas y ejercicios en el taller. Todas las pruebas son desarrolladas por el docente. Se expone una parte de metodología con el objetivo de facilitar las bases de auditoría y conocer las principales vulnerabilidades que existen en estos proyectos de web3 (focalizando energía en los SmartContract). Se explicarán técnicas de detección de vulnerabilidades basadas en SAST y DAST. 

¿Quieres saber más?

Si tienes dudas de la dinámica del taller, pregúntame! @pablogonzalezpe. Con muchas ganas de estar en este Lab y ver este aprendizaje guiado por retos. No dejes para el final tu plaza. Plazas limitadas ¡A por un gran día de entrenamiento y hacking!

18 ene 2023

RootedLab: Mi primera revisión de Directorio Activo desde el punto de vista ofensivo

Como ya hiciera mi compañero Pablo hace unos días, el próximo 6 de marzo comienza una nueva edición de RootedCON Madrid y, con ella, la opción de seguir formándonos en cualquiera de los ámbitos de la ciberseguridad. Al igual que el año pasado (gracias Luis y Helena por vuestra ayuda), tengo el placer de poder impartir un RootedLab sobre auditorías en entornos de Directorio Activo desde un punto de vista ofensivo, aunque, esta vez, emprendo el camino en solitario.

Pero... ¿Qué es un RootedLab? 

Para aquellos que aún no lo sepáis, las formaciones con formato RootedLab son talleres de 8 horas realizados a lo largo de un único día en el que los alumnos obtienen el conocimiento teórico y práctico. Normalmente, suelen estar divididos en dos secciones, una primera parte teórica y una segunda parte más práctica. Cortita y al pie, como se suele decir. La teoría, para casa. 

Vale, vale, deja de venderme la moto... ¿Qué incluye el labo?

En el caso que nos atañe, el taller de este año está orientado a todos aquellos perfiles que quieran tener  un primer contacto sobre entornos de Directorio Activo desde una perspectiva de un atacante. A lo largo del taller, podréis conocer qué es y por qué elementos está formado un Directorio Activo, cómo enumerarlos, cómo identificar las vulnerabilidades y fallos de configuración más comunes y sencillos que se pueden encontrar y entenderán los riesgos que pueden implicar en sus respectivas organizaciones. Además, dispondrán del conocimiento necesario para corregir (o mitigar) estas vulnerabilidades en entornos reales.


¿Cómo está estructurado?

El labo está dividido en dos partes:

  • Una primera parte teórica de 4 horas
    • Módulo I - Breve introducción a Windows Active Directory 
      • Qué es un Directorio Activo
      • Agrupación de un Directorio Activo
      • Protocolos de un Directorio Activo
      • Estructura y elementos de un Directorio Activo
      • Objetos principales, GPOs y ACLs 
    • Módulo II - PowerShell: Uso y manejo desde un punto de vista ofensivo
      • Qué es PowerShell
      • Conceptos básicos
    • Módulo III - Reconocimiento y enumeración en un Directorio Activo
      • Estructura de un Controlador de Dominio
      • Enumeración básica con comandos nativos de Windows 
    • Módulo IV - Abusos básicos y vulnerabilidades clásicas de un Directorio Activo
      • Secretos en parámetros de objetos
      • Enumeración de carpetas compartidas
      • Password Spraying
      • Replicación de cuentas 
    • Módulo V - Cómo desplazarse por un Directorio Activo: técnicas comunes de movimiento lateral
      • Protocolos nativos de Windows de administración remota
      • Repaso de las principales herramientas: usos y condiciones

    • Una segunda parte práctica de 4 horas en formato CTF
      • Laboratorio emulando una empresa con Directorio Activo con varias máquinas para realizar una serie de ejercicios prácticos con el objetivo de afianzar los conocimientos explicados durante el taller. Se trata de un entorno controlado donde poder ejecutar comandos y herramientas, así como, familiarizarse con este tipo de entornos. Está dividido a su vez en dos partes, una primera parte con una serie de preguntas para ir enumerando el directorio y una segunda parte más "libre" para comprometer el dominio. 
      • A lo largo del taller práctico, todos los alumnos tendrán acceso a una máquina del entorno para poder utilizar todas las herramientas tratadas durante la parte teórica como, por ejemplo, BloodHound y la suite de Sysinternals. Por último, se os facilitará un WriteUp con la solución del entorno y las respuestas a todos los ejercicios propuestos.

    No tengo conocimientos previos, ¿podré aprovechar el taller?

    El taller está orientado para cualquier tipo de persona, tenga conocimientos previos o no. En base a los perfiles presentes, podemos adaptar el nivel de dificultad y entrar en técnicas más avanzadas, ¡eso solo depende de vosotros!

    Recordad que las plazas son limitadas y el tiempo apremia. En caso de tener cualquier duda, podéis contactar conmigo por Twitter @MrSquid. ¡Nos vemos en el taller!


    16 ene 2023

    RootedLab: Ethical Hacking Training - Metodologia y entrenamiento resolviendo máquinas

    Se acerca una nueva edición de RootedCON. Uno de los eventos más importantes de Europa ha llegado en una nueva edición. En Madrid, un año más, y puede ser el décimo año que imparta un RootedLab. Para mí es como lograr un hito. He tenido la suerta de estar 9 años impartiendo talleres en RootedCON en Madrid, 6 años en la Rooted de Valencia y 1 año en la Rooted de Málaga. He podido crecer, personal y profesionalmente a lo largo de estos años de viajes y de talleres impartidos. En esta ocasión, quiero que sea especial, porque no se hacen 10 años de talleres de Rooted todos los días y quiero que este taller sea especial. 

    El mundo ha ido cambiando y la ciberseguridad y la forma de enseñarla también. No queremos slides y profesores que nos enseñan a través de la teoría y que juegan muy poco o nada con la práctica. El alumno debe estar motivado, debe ser retado y debemos darles las bases (lo más práctico posible) para poder interiorizar y hacer suyo el conocimiento. Por esta razón, al observar muchas certificaciones del mercado en el área de pentesting o hacking ético nos encontramos que los exámenes son prácticos, poniendo a prueba lo que el alumno ha aprendido durante el estudio y las pruebas que ha ido realizando. Retar y motivar es algo importante en ciberseguridad. El aprendizaje fluye.


    Desde hace un par de años he evolucionado los talleres para que sean guiados o basados en el reto. Es decir, disponer de entornos reales con máquinas que proponer un escenario realista de cara a afrontar situaciones de pentesting y de proyectos de hacking ético. En otras palabras, en esta formación el alumno se encontrará escenarios montados (y que se podrá llevar para su posterior estudio) y que le retarán a través de las diferentes fases de un pentest. 

    Ahora viene el momento publicidad. El Lab se llevará a cabo el próximo 7 de marzo tiene una duración de 8 horas (más 1 de comida). Se lleva en modo intenso con el objetivo de que el alumno adquiera el mayor conocimiento posible. Además, durante un tiempo después del Lab se podrá consultar dudas con el docente sobre los escenarios del Lab, ya que los escenarios son proporcionados a los alumnos y podrán llevárselos. 

    El lab consta de diversos escenarios para ir explicando de forma muy práctica la metodología y las diferentes fases que un pentester puede llevar a cabo. Así como el uso de herramientas cotidianas o técnicas que pueden ser de sumo interés. No todo serán escenarios, habrá instantes en el que juguemos con máquinas virtuales y podamos aprender mucho en 8 horas. 

    En este enlace dispones de la información sobre todo lo relacionado con el Lab y con las posibilidades que este proporciona a los alumnos. Los objetivos marcados son:

    - 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


    ¿Cómo funciona el lab?

    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).


    Agenda

    - 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
      Overflow
      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

    NOTA: Si tienes dudas de la dinámica del taller, pregúntame! @pablogonzalezpe. Con muchas ganas de estar en este Lab y ver este aprendizaje guiado por retos. No dejes para el final tu plaza. Plazas limitadas ¡A por un gran día de entrenamiento y hacking!