miércoles, julio 10, 2019

LeHack: Una noche de hacking en París con Open AI, Python e iBombshell [Parte 2 de 2]

Y toca ahora continuar con la segunda parte de lo que vimos en este seminario con nocturnidad y alevosía en París después de haberos contado lo que vimos en la primera parte de este artículo. En esta parte nos centramos en el puro Ethical Hacking utilizando Python, Metasploit, un poco de PowerShell y nuestra querida iBombShell.


Figura 10: LeHack: Una noche de hacking en París con Open AI, Python e iBombshell
[Parte 2 de 2]

LeHACK. Parte Workshop PyHacking & iBombShell

La parte de PyHacking comenzó explicando las fases de un Ethical Hacking y qué es el PyHacking o cómo lo entendemos nosotros desde un punto de vista divulgativo. La idea era aprender técnicas de hacking a través de la implementación de pequeños scripts que llevasen a cabo diferentes acciones. Esto puede venir bien si eres un desarrollador que entiende bien el código, pero no estás tan metido en el mundo del hacking.

Figura 11: Libro de Ethical Hacking en 0xWord de Pablo Goznález

Por ejemplo, nosotros pensamos que aprender hacking a través de código Python tiene varias cosas de interés:
• Es intentar aprender técnicas de hacking.
• Es hacer pequeños ejemplos y herramientas básicas.
• Es entender cómo las técnicas de hacking funcionan.
• Es conocer, o da pie a ello, las diferentes fases de un Ethical Hacking.
• Es una introducción, o es una vía para ello, al mundo de la ciberseguridad.
En el workshop íbamos a hablar de diferentes fases de pentesting en un Ethical Hacking e íbamos a ir mostrando pequeños ejemplos de código en Python que fuera mostrando cómo conocer e implementar la técnica en sí.

Figura 12: Libro de Hacking con Python en 0xWord

Empezamos por Information Gathering. Aquí se comentaba que es un proceso amplio y profundo de recopilación de información, aunque todos estaban de acuerdo en que uno de los procesos más importantes sería el escaneo de puertos, el fingerprinting en general. Aquí es donde pusimos el foco en los ejemplos. Mostramos tres tipos de escaneos. Dejamos claro que es muy importante conocer la arquitectura TCP/IP y sus diferentes niveles, ya que para el fingerprinting serán vitales.

El primer escaneo lo hicimos de dos formas: a través de un socket puro y duro en Python y a través del uso de la librería Scapy. El primer escaneo fue SYN SCAN. Tras refrescar que era el 3-way handshake se explicó en qué consistía un escaneo de este tipo. Tengo que hacer hincapié en que para mí (Pablo) es todo un reto hacer esto en inglés. Un reto con el que me pego…

Bien la idea era en el primer caso mostrar cómo implementar un escaneo de tipo SYN, previa explicación teórica, y luego mostrar que el pequeño código funcionaba. Después implementaríamos lo mismo, pero simplificando el proceso con Scapy. Este es un trozo de código del script syncapy.py que mostramos.

Figura 13: Ejemplo 2 para Information Gathering

Siempre con cada ejemplo de código que se iba haciendo y mostrando se realizaba una prueba para que los asistentes vieran que era correcto. Que se obtenía lo que se pretendía. El siguiente escaneo mostrado era un ACK Scan.

Con este escaneo se pretendía saber si un puerto estaba filtrado o no. Nada de saber si el puerto está abierto o no. El ejemplo seguía la línea del SynScan con Scapy. El último escaneo de la parte de Information Gathering fue ARP Scan. El objetivo era descubrir máquinas en la red.

Figura 14: Ejemplo 4 de Information Gathering

Ahora llegamos a la parte de detección de vulnerabilidades y análisis. Esta parte quizá fue una de las partes más improvisadas. Empezamos hablando de qué es el análisis de vulnerabilidades y acabamos implementando en directo un código en Python para explotar Shellshock. El escenario era el siguiente:
- Máquina Kali Linux con Python3. 
- Máquina miniLinux con bash vulnerable a Shellshock y servidor web que envía parámetros a bash y pueden ser explotados.
Acabamos juntando la parte de análisis con la parte de explotación de vulnerabilidades con un poco de improvisación. El hacer cosas arriesgadas en directo, creo, que es algo que siempre se agradece.

Figura 15: Ejemplo de explotación de ShellShock

Se fue explicando paso a paso las diferentes peticiones que desde el código en Python podíamos hacer. Un ejemplo, del primer paso es cuando se sube el Meterpreter codificado en base64. El módulo para generar el Meterpreter en base64 se puede encontrar en mi Github. Es un módulo ya antiguo.

Figura 16: Módulo Meterpreter en Base64

Tras esto hablamos de la integración de Python con Metasploit a través de una librería llamada PyMetasploit que es la encargada de hacer de cliente contra msfrpcd. Lo curioso es que pocos conocían a msfrpcd y el potencial de éste. Todo esto ya lo expliqué en otro artículo recientemente.

Figura 17: Integración de Python con Metasploit

Por último, tocó la parte de iBombShell y la post-explotación en Python. De esto os contaremos más cosas próximamente, ya que viene una nueva versión con nuevas funcionalidades y con nuevos módulos. No podía dejar pasar la oportunidad de hablar de los artículos recientes sobre bypasses de UAC y su implementación en Python y Powershell con iBombShell.


LeHACK. Parte Workshop Integración IA con Hacking

Finalmente, y para cerrar y conectar todo el contenido, tanto de IA como de Hacking, explicamos algunas de las utilidades a día de hoy de utilizar Machine Learning dentro de la ciberseguridad. Aplicaciones como la resolución de Captchas, utilizar OpenAI para para testear malware o el reconocimiento de caras como FaceID eran algunas de ellas. También hablamos la Estafa del CEO/CDO mostrando algunos de los vídeos y explicando su funcionamiento.


Figura 19: Nuestro compañero Enrique Blanco suplantado a nuestro CDO con una IA

De esta forma completábamos este seminario que al final se alargó hasta cuatro horas - comenzamos a las 21:00 de la noche y acabos a la 1:00 de la madrugada -  donde nuestro objetivo principal era que los asistentes aprendieran conceptos de IA y ciberseguridad, pero sobre todo que fueran capaces de comprender la gran conexión que existe entre el Machine Learning y la ciberseguridad, todo ello de una manera práctica y lo más sencilla posible.

Una gran experiencia y un gran evento que para nosotros acabó sobre las 2:00, pero que para muchos se extendió hasta las 7:00. Recomendado.

Autores: Pablo González Pérez (@pablogonzalezpe), escritor de los libros "Metasploit para Pentesters", "Hacking con Metasploit: Advanced Pentesting" "Hacking Windows", "Ethical Hacking", "Got Root" y “Pentesting con Powershell”, Microsoft MVP en Seguridad y Security Researcher en el equipo de "Ideas Locas" de la unidad CDO de Telefónica.

Fran Ramírez, (@cyberhadesblog) es investigador de seguridad y miembro del equipo de Ideas Locas en CDO en Telefónica, co-autor del libro "Microhistorias: Anécdotas y Curiosidades de la historia de la informática (y los hackers)", del libro "Docker: SecDevOps" y del blog Cyberhades.

No hay comentarios:

Publicar un comentario