Mostrando entradas con la etiqueta metasploit. Mostrar todas las entradas
Mostrando entradas con la etiqueta metasploit. Mostrar todas las entradas

lunes, marzo 03, 2025

Entornos de aprendizaje práctico en Seguridad Ofensiva con Metasploitable 2

La ciberseguridad no sólo se trata de comprender los ataques, sino de anticiparse a ellos. La mejor forma de hacerlo es mediante la práctica de ejercicios de ataque en entornos controlados, donde los profesionales pueden analizar, explotar y mitigar vulnerabilidades sin poner en riesgo sistemas reales. Los ejercicios de Red Team tan importantes para las empresas y los equipos.
Por eso a los estudiantes del Máster en Seguridad Ofensiva del Campus Internacional de Ciberseguridad les incentivamos con ello, e incluso son parte de los Trabajos de Fin de Máster (TFM), como este de Jaime del Puerto.  
Su proyecto se centró en el estudio y la explotación de vulnerabilidades en entornos de aprendizaje utilizando Metasploitable 2, una máquina virtual diseñada específicamente para probar herramientas y técnicas de hacking ético, que es básica para todos los futuros Pentesters & Red Teamers.

¿Qué es Metasploitable 2 y por qué es clave en Seguridad Ofensiva?

Metasploitable 2 es una máquina virtual vulnerable que permite a los profesionales de seguridad informática y a futuros pentesters practicar técnicas de explotación sin infringir la ley - que ya sabéis cómo es la legislación hoy en día con las pruebas de hacking en real -. 
En este entorno se pueden analizar múltiples vectores de ataque, realizar pruebas de penetración y desarrollar estrategias de mitigación. Este entorno incluye:

• Sistemas con vulnerabilidades conocidas, desde servicios mal configurados hasta fallos en el software.
• Pruebas de explotación en un entorno seguro, sin afectar sistemas reales.
• Análisis de malware y técnicas de ataque para comprender cómo operan los ciberdelincuentes.

Lo que les pedimos a los alumnos es que trabajen esos entornos y lo documenten, tal y cómo se hace en los trabajos de pentesting en las empresas. En este caso, Jaime aprovechó este entorno para llevar a cabo un análisis detallado de diversas vulnerabilidades y demostrar cómo pueden explotarse en un escenario controlado, tanto para su aprendizaje, como para compartir con los demás.

El TFM de Jaime: Análisis de vulnerabilidades en Metasploitable 2

El trabajo de Jaime se enfocó en realizar un estudio técnico de las vulnerabilidades presentes en Metasploitable 2 y su aplicación en el aprendizaje de técnicas de seguridad ofensiva, para ayudar a otros a mejorar y aprender también. Sus principales objetivos fueron los de un informe completo hecho por un profesional, que es para lo que se hacen estos TFMs.

1. Análisis de visibilidad: Identificó aplicaciones y servicios vulnerables en la máquina virtual, evaluando los vectores de ataque más comunes utilizados por los ciberdelincuentes.

2. Búsqueda de vulnerabilidades: Utilizó herramientas especializadas como Nmap, Nessus y Metasploit Framework para detectar fallos de seguridad en los servicios expuestos.

3. Explotación de vulnerabilidades: Implementó ataques prácticos sobre los sistemas descubiertos, incluyendo la ejecución remota de código, escalada de privilegios y técnicas de evasión de detección.

4. Análisis de malware y persistencia: Examinó cómo los atacantes pueden mantener el acceso a un sistema comprometido, aplicando técnicas de backdoors y rootkits.

5. Identificación de contramedidas: Tras explotar las vulnerabilidades, Jaime propuso medidas de mitigación, desde configuraciones seguras hasta estrategias avanzadas de detección y respuesta a incidentes.

Figura 4: Metodologías de explotación

Conclusiones del TFM

El trabajo que hizo Jaime no hubiera sido suficiente con la explotación de fallos de seguridad - que es condición fundamental -, sino que tenía que aportar un enfoque educativo sobre cómo las organizaciones pueden fortalecer sus defensas aprendiendo de estos escenarios y manteniendo a sus equipos de ciberseguridad entrenados constantemente. Sus conclusiones destacaron:

• La importancia de los entornos de aprendizaje como Metasploitable 2 en la formación de expertos en seguridad ofensiva.

• La necesidad de mantener una monitorización activa para detectar intentos de explotación de vulnerabilidades.

• La relevancia de la formación en pentesting para comprender cómo piensan y actúan los atacantes.

¿Qué aporta el Máster en Seguridad Ofensiva?

El ejemplo de Jaime es un claro reflejo del enfoque práctico del Máster en Seguridad Ofensiva del Campus Internacional de Ciberseguridad. Este programa, impartido por profesionales de esta profesión, proporciona un entrenamiento intensivo en técnicas de hacking ético, pruebas de penetración y análisis de vulnerabilidades.


Con herramientas reales y escenarios de ataque controlados, los alumnos adquieren las habilidades necesarias para enfrentarse a las amenazas más sofisticadas del sector. La 11º edición comienza el 25 de marzo, si quieres convertirte en profesional de este área tan bonita como es la seguridad ofensiva. 

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


miércoles, marzo 22, 2023

"iBombShell: Revolution". Sólo para Pentesters!

El pasado día 10 de Marzo participamos en RootedCON 2023 dónde tuvimos la oportunidad de presentar el trabajo que hemos trabajado desde hace un tiempo. La idea es la de proporcionar a los pentesters y desarrolladores el potencial de iBombShell y poder integrarlo con sus herramientas. 

Figura 1: "iBombShell: Revolution". Sólo para Pentesters!

De este modo podemos decir que iBombShell o el Core de ésta es una API que permitirá a los usuarios poder integrar lo que ellos quieran. Damos un pequeño repaso a esta presentación, comentando las principales novedades de iBombShell: Revolution.

¿Qué era iBombShell y que ha cambiado?

Ya se ha hablado largo y tendido sobre iBombShell en este blog, desde Euskalhack 2018 dónde mostramos la idea de lo que queríamos hacer, pasando por técnicas de post-explotación y el desarrollo de nuevos módulos para esta herramienta Open Source. Sin olvidarnos de uno de los momentos más importantes para iBombShell que fue la presentación en la BlackHat Eruope 2018 en Londres. O la incorporación de iBombShell a la C2Matrix, un hito más que interesante de este proyecto, el cual nos llena de orgullo y nos rellena la barra de la ilusión para hacer nuevas cosas.

Figura 2: iBombShell en GitHub

iBombShell Legacy tenía dos modos de funcionamiento, el llamado “Everywhere”, que permitía descargar a memoria, en apenas 4 pasos, una consola PowerShell con funciones útiles y dinámicas para un pentester, y que estuviera disponible en cualquier momento y en cualquier lugar.
Y, por otro lado, también se contaba con el llamado modo “Silently” que permitía conectar una instancia de iBombShell a un C2 escrito en Python y que podía ordenar de manera remota instrucciones creadas en los módulos de PowerShell.

Figura  4: iBombShell Legacy y sus modos Everywhere y Silently

Para la renovación de iBombShell, se quería cambiar completamente el modo de trabajo, centrándonos en hacer una herramienta más sencilla, fácilmente extensible, integrable con varios clientes y que fuera un componente que estuviera centralizado, de tal manera que un equipo de trabajo pueda utilizar una misma instancia de iBombShell para realizar sus pruebas. De esta manera, queremos destacar como principales novedades de la versión Revolution:
  • Nuevo iBombShell "apificado": Como se ha comentado anteriormente, iBombShell ahora es una gran API a la que llamamos Core. ¿Cómo interactuar con el Core? Vamos a desarrollar algunos clientes “oficiales” del proyecto, pero cualquier desarrollador o pentester podrá integrar sus necesidades directamente con el Core gracias al uso de la API.
  • Gestión total desde el CORE: El Core gestiona todo lo que sucede en iBombShell, es decir, si hay que cargar un módulo, si hay que ejecutarlo, si llega la conexión de un nuevo warrior, etcétera.
  • Gestión de usuarios: El Core es una plataforma multiusuario, pero de esto hablaremos en otro artículo para explicar cómo funcionan los roles y los usuarios en iBombShell.
  • Autenticación (JWT): Toda acción que deba ser autorizada utilizará un JWT. Esto es algo que creemos que es importante para la gestión de usuarios y lo que cada uno puede hacer.
  • Generación warriors (code / file): La generación de los Warriors, tal como ocurría en la ‘Legacy’ iBombShell se puede hacer tanto en código como en un fichero. Iremos mostrando algunos ejemplos de uso para que se entienda mejor.
  • Nueva consola para los warriors (PowerShell): Se ha implementado una nueva consola en Powershell para interactuar con el nuevo Core.
  • Facilidad de integración.
Arquitectura de iBomShell

La nueva arquitectura de iBombShell cuenta con una pieza central: el core. Este elemento realiza toda la gestión de los usuarios, los módulos, los warriors y las tareas. Para almacenar la información se apoya en una base de datos local SQLite, además de algunos diccionarios para almacenar en memoria los usuarios activos y los warriors en ejecución.


Todo esto es accesible y gestionable desde la API, de tal manera que es posible integrar distintos clientes como web, interfaces gráficas de usuario para distintas plataformas, consolas, o automatizar la generación de warriors y creación de tareas con scripts en Bash, Python, JavaScript…

Figura 6: Arquitectura de iBombShell

La API se ha dividido en 4 principales tags, los mismos que gestiona el core y, a través de la especificación OpenAPI, se puede acceder a su documentación y prueba de la misma. Algunas de las peticiones que se tienen disponibles a través de la API son:
  • /auth: Permite la autenticación de usuarios y la obtención de un JWT para usar la API.
  • /get_modules: Permite obtener los módulos, ordenados por categorías.
  • /generate: Solicita la generación de un nuevo warrior.
  • /create_task: Crea una nueva tarea asociada a un warrior.
  • /get_task_warrior: Solicitado por un warrior para obtener su tarea a ejecutar.
  • /put_task: Utilizado por el warrior para guardar los resultados de una tarea ejecutada.
  • /get_task_results: Utilizado por un cliente para obtener los resultados de una tarea ya ejecutada.
Iremos publicando más información sobre la API y la doc de ésta, cuando se libere el proyecto. A día de hoy, queremos implementar clientes oficiales para que el core de lo mejor de sí. 

Figura 7: Documentación de la API de iBombShell

Para la charla de RootedCON todo lo mostramos de integración fue desarrollado con pocos días para mostrar a los desarrolladores el potencial que la Apificación del Core de iBombShell proporcionaba y cómo podían integrar fácilmente scripts u otro tipo de herramientas.

Workflows

Para darle un sentido a todo, es necesario contar con algunos flujos de trabajo. Por ejemplo, en primer lugar, contar con un Token JWT para acceder a gran parte de la API. Para realizar esto, haremos una petición a /auth con un usuario y contraseña válidos, y obtendremos el JWT que utilizaremos, a partir de ahora, en la cabecera Authorization [Bearer] para hacer el resto de peticiones.



Figura 8: Flujo de trabajo de la autenticación del cliente

A continuación, podemos leer todos los módulos disponibles, definir los valores necesarios para utilizar distintos módulos u optar por generar un nuevo guerrero. Una vez que se dispone de un guerrero en ejecución es posible asignar tareas y esperar a que el warrior descargue las instrucciones para ejecutarse y devolver los resultados.

Figura 9: Flujo de trabajo de creación de nuevas tareas

El workflow del warrior es bastante sencillo ya que se basa en, primero el registro del nuevo warrior, y después hacer peticiones constantes al listener de iBombShell (Core) para consultar si tiene nuevas tareas asociadas a su identificador para descargarlas, ejecutarlas y mandar los resultados de nuevo al listener.

Figura 10: Flujo de trabajo del Warrior

Y esto es, a grandes rasgos, las novedades del nuevo iBombShell. Pronto tendremos más novedades e iremos mostrando algunas cosas. Este año es el año en el que iBombShell se reinventa y viene con la capacidad de dar el control al desarrollador. En el siguiente vídeo tienes una demostración completa de siete minutos de las principales funciones de iBombShell Revolution mezclada con Kali Linux y Metasploit. Sólo para pentesters.



El repositorio oficial de iBombShell en Github mantiene la versión ‘Legacy’ sobre la que no haremos cambios hasta que publiquemos la nueva versión. Y antes de acabar… Gracias Securiters por darnos la oportunidad de presentar nuestro trabajo en vuestro track.

Happy Hacking with iBombShell!

Autores: Pablo González Pérez escritor 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

jueves, marzo 09, 2023

Cinco libros con los que adentrarte desde cero en el mundo profesional de la ciberseguridad

Hola, soy David "Shift", y cualquier persona que me conozca, conoce mi admiración por los libros publicados a través de la editorial 0xWord, ya que no únicamente trabaja con libros sobre temáticas muy específicas relacionadas con la ciberseguridad, además, los autores son profesionales y referentes en el campo del que escriben, por lo que los utilizo y los recomiendo en las formaciones que imparto sobre este mundo profesional.

Figura 1: Cinco libros con los que adentrarte desde cero
en el mundo profesional de la ciberseguridad

Hoy he querido escribir este artículo, en el que os voy a contar cuales son los cinco primeros libros que para mí son imprescindibles si quieres adentrarse en el apasionante mundo de la ciberseguridad. Por si te has hecho esta pregunta alguna vez, que seguro que como lector de El lado del mal habrás visto muchos de ellos por aquí constantemente. A ver si te ayudo.

1.- “Ciberseguridad de tu a tu”

El primero de ellos, y aun que tenga un carácter divulgativo dentro de la línea 0xWord Brain, será de gran utilidad a quien no haya tenido nunca ningún acercamiento al mundo de la ciberseguridad, ya que mucha gente se apunta a cursos o incluso masters y cuando comienzan a ver las temáticas que suelen incluir se quedan algo confundidos. El libro se titula “Ciberseguridad de tu a tu”, escrito por Yolanda Corral. En este podremos ver de manera cercana y no técnica algunas técnicas que utilizan los cibercriminales para realizar sus delitos, además de muchos consejos para proteger nuestra privacidad.


2.- “Ethical Hacking”

El segundo libro tiene como autor a Pablo González, difícil seria encontrar a alguien dentro del mundo de la ciberseguridad que no sepa quién es, referente en muchos campos y profesional, cercano y con una humildad como pocos. El libro se titula “Ethical Hacking”. Con él, nos adentraremos ya en la parte técnica, pero a un nivel básico, un nivel que, con paciencia, esfuerzo y práctica, cualquiera podría entender.


Comienza hablándonos sobre hacking ético, pasando a explicar los tipos de auditorias que podemos encontrar, para ya pasar a temas más específicos que irían desde la realización de un escaneo a la realización de los correspondientes informes que podrían solicitarnos, insisto, todo a un nivel básico y con ejercicios que podremos realizar para una mejor comprensión de las explicaciones.
Y si lo prefieres, este libro lo puedes consumir en formato VBOOK y desde MyPublicInbox pagado en Tempos, así que si lo quieres con las explicaciones y las demos hechas directamente por Pablo González, lo puedes disfrutar en formato "multimedia".

3.- "Pentesting con Kali. Silver Edition" 

Cuando comencéis en este mundillo, os encontrareis diferentes opiniones sobre que herramientas o técnicas utilizar, además de diferentes corrientes de pensamiento sobre el sistema operativo con el que iniciarse, aunque la mayoría os dirá que comencéis con Kali Linux, ya que es un sistema operativo muy intuitivo y que ya cuenta con la mayoría de las herramientas que se utilizan en ciberseguridad, sobre todo para principiantes.

Cómo no, el tercer libro que os recomiendo se titula “Pentesting con Kali”, donde nuevamente nos encontramos como autor a Pablo González, además de grandes profesionales. En este libro comenzaremos solventando uno de los grandes problemas con los que se encuentran las personas que están iniciándose, la instalación del sistema operativo, en este caso Kali Linux. No únicamente veremos como instalarlo en nuestro sistema operativo propietario, también nos explicaran como instarlo mediante una máquina virtual.


¿Has trabajado alguna vez con GNU/Linux? Si no es así, no te preocupes, aunque es recomendable que poco a poco te vayas poniendo las pilas con el uso de comandos, en este libro, los autores te van a guiar paso a paso y comando a comando para que puedas seguir sus explicaciones y aunque continuamos en un nivel de explicaciones para principiantes, ya comenzareis a ver técnicas de fuerza bruta, hacking web o Wi-Fi entre muchas otras. 

Figura 7: Los VBooks de 0xWord están llenos de explicaciones y demos.
Este es un ejemplo del VBook de Pentesting con Kali

Mola, ¿verdad?, pues además del libro, en la web de la editorial disponéis del vídeo book (VBOOK) y en el vídeo anterior tienes un ejemplo de alguna de las explicaciones y demos de las que puedes aprender y disfrutar al mismo tiempo.

4.- “Ataques en redes de datos IPv4 e IPv6" (4º Edición)

El cuarto libro, titulado “Ataques en redes de datos IPv4 e IPv6”, escrito por Juan Luis García, revisado y ampliado por Chema Alonso y Pablo González. Seguro que, en algún momento, aunque no supierais de que se trataba exactamente habéis escuchado los términos sniffing, spoofing hijacking o habéis escuchado hablar de capas. En este libro ya comenzamos a ponernos más serios y a tratar temas más profundos, pero tranquilos, si habéis realizado el itinerario que os estoy proponiendo en este artículo, no vais a tener el más mínimo problema para entender lo que en él se explica. 

JL. Rambla, ampliado y revisado por Pablo González y Chema Alonso

Ya que además de ser explicaciones cortas, pero que van al grano, como en los libros anteriores contareis nuevamente con explicaciones paso a paso y ejercicios prácticos que os ayudaran a asimilar los contenidos. Llegamos al quinto y último libro que os ayudará a adentraros en el mundo de la ciberseguridad, ya no hay vuelta atrás, a estas alturas ya estaréis completamente enganchados y con ansias de más y más conocimientos. 


En este libro, además, Chema Alonso y Pablo González, incluyeron todo el trabajo hecho con Evil FOCA en IPv4 & IPv6 y los ataques presentados en DefCON 21 para hacer mitm en conexiones IPv6 a Internet, de la que podéis ver la charla en Youtube.

Y si quieres disfrutarlo en formato VBook, también puedes, porque Juan Luis Romero lo adaptó al formato para hacer que sea posible aprender viendo las demostraciones y escuchando las explicaciones en formato multimedia.

5.- Metasploit para Pentesters Gold Edition

El quinto libro se titula “Metasploit para Pentesters (Gold Edition)”, escrito por Pablo González con la colaboración de Chema Alonso. En los libros anteriores habréis conocido levemente este framework, pero con este libro lo conoceréis en profundidad. Es cierto que os encontrareis detractores y gente que os dirá que ni lo utilizan ni nunca lo han utilizado….Permitidme que lo dude, todos hemos tocado en algún momento Metasploit. 
Y cómo el libro muy explica en sus primeras páginas, es un framework que se utiliza para pentesting y dispone de una gran cantidad de funcionalidades, las cuales son muy utilizadas en el día a día por los auditores de seguridad. 
Además, debido a la falta de conocimiento de los usuarios, normalmente no se explota lo suficientemente, ya que dentro de él dispondremos de herramientas que nos ayudarán en todas las fases de un pentesting. Así que si te lo acabas, y te quedas con ganas de más... tienes la segunda parte en el libro de "Hacking con Metasploit: Advanced Pentesting".

Y si quieres más ayuda

Espero que este pequeño recorrido por los cinco primeros libros que os recomiendo para comenzar en el mundo de la cinerseguridad - que además puedes pagar con Tempos de MyPublicInbox - haya sido de vuestro agrado y os recuerdo que para cualquier duda o consulta podéis encontrarme a mí o a cualquiera de los autores en nuestros perfiles de MyPublicInbox.

Un saludo,


viernes, julio 30, 2021

aDLL: Análisis de binarios y búsqueda automática de DLL Hijacking

Hace ya unos meses desde que se publicó el artículo "Qué es una DLL y en qué consiste el DLL Hijacking" en el que os hacia una introducción a la razón e la existencia de las bibliotecas de enlace dinámico y al concepto de DLL Hijacking, el ataque que tiene lugar cuando un auditor o un ciberdelincuente tienen la capacidad de suplantar una de estas bibliotecas por otra con código malicioso. Después de explicar los conceptos a nivel teórico se publicaron otros dos artículos más sobre el tema: "Identificando programas vulnerables con Process Monitor" y "Cómo explotar una vulnerabilidad de DLL Hijacking en Slack".

Figura 1: aDLL: análisis de binarios y búsqueda automática de DLL Hijacking

En el primero de ellos hablaba sobre cómo analizar programas para dar con DLLs que no son encontradas en las carpetas donde el programa las busca, lo que podría dar lugar a un caso de DLL Hijacking si se disponía de permisos en dichos directorios para depositar la DLL maliciosa. En el segundo artículo pasábamos a la acción y os demostraba cómo se podría realizar el ataque haciendo uso del mecanismo DLL Proxy.

Figura 2: Máxima Seguridad en Windows Gold Edition
de Sergio de los Santos en 0xWord

Hoy, dentro de las investigaciones de Hacking & Hardening en Windows, continuamos con la serie dedicada al DLL Hijacking para presentaros una herramienta que he desarrollado durante mi paso por el equipo de Ideas Locas de Telefónica y que estará disponible en GitHub como herramienta Open Source, por lo que os animo a probarla y colaborar para hacerla mayor y mejor.

Adventure of Dinamyc Link Library (aDLL)

aDLL nació de la idea de automatizar todo el proceso de búsqueda de las DLL que importa un programa para saber cuáles de todas ellas pueden dar lugar a un ataque de DLL Hijacking. Algo así como lo que se hace habitualmente con Procmon pero a través de terminal y con la posibilidad de analizar de golpe varios ejecutables. Para detectar DLL candidatas a un caso de DLL Hijacking simple lo primero que se necesita conocer es cuáles son las DLL que cargará el programa que estamos analizando. Si recordamos las formas que tiene un programa para cargar una DLL sabemos que existen tres formas principales: en load-time, en run-time y mediante delay-load. 

Figura 3: Funcionamiento general de aDLL

La vinculación de DLL en load-time y delay-load es llevada a cabo por el Linker y las DLL en run-time por llamadas a las funciones LoadLibrary / LoadLibraryEx durante la ejecución de un programa. En el esquema anterior se muestra el funcionamiento general de aDLL para “extraer” todas las DLL que un programa intenta cargar en memoria.

DLL Implícitas y formato PE

A las DLL importadas por el Linker las llamamos de Vinculación Implícita y pueden encontrarse en la información almacenada por el propio binario. Como el objetivo de este artículo no es hacer una descripción del formato PE32/PE32+ que es el que tienen hoy en día los archivos del tipo Portable Ejecutable (PE) de Windows como son los ejecutables y las DLL. Basta con saber que la estructura que tiene un binario ya compilado está estandarizada de forma que esos bytes que forman el binario están organizados en secciones que contienen toda la información que el loader de Windows necesita para ejecutar ese binario correctamente.

Utilizando un lenguaje de bajo nivel como C/C++ podemos cargar un ejecutable como imagen en la memoria, es decir, como un mapa de bits. Con la imagen cargada en memoria se pueden recorrer los bytes mediante punteros (la dirección de la memoria de esos bytes) extrayendo y analizando la información que nos interese. Para calcular con exactitud la dirección de la memoria a la que queremos acceder se debe conocer muy bien cómo está organizado el formato PE y las estructuras de datos que lo forman.

Figura 4: Hacking Windows: "Ataques a sistemas y redes Microsoft"
de Pablo González, Carlos García y Valentín Martín.

aDLL carga la imagen del binario en memoria y busca directamente en la IMPORT TABLE del binario para extraer los nombres de las DLL que se cargaran en load-time y en la DELAY IMPORT NAME TABLE para extraer los nombres de las delay-load DLLs. Una vez “extraídos” los nombres de éstas DLL se almacenan en un buffer para su posterior análisis.

DLL explícitas y Microsoft Detours

Microsoft Detours es una biblioteca diseñada para interceptar llamadas de un programa a la API win32 con la finalidad de que los programadores puedan analizar y debuggear su código. El proceso de interceptar funciones en un proceso de un programa que se está analizando se conoce como hook de una función y tiene lugar cuando se “captura” la función y se desvía el flujo de ejecución normal del programa para que podamos inyectar código antes de que esa función haga su return.

aDLL hace uso de la biblioteca Detours para extraer el nombre de las DLL cargadas por las funciones LoadLibrary, que son las que llamamos DLL de vinculación explícita. Para ello se utilizan las funciones de Detours para generar una nueva DLL con hooks a las funciones LoadLibrary y se crea un nuevo proceso del programa analizado en el que se inyecta esa DLL con los hooks. Cada vez que se “captura” una función LoadLibrary se extrae el nombre o ruta de la DLL que el programador pasó como parámetro a la función (y también las FLAGS que se hayan usado con LoadLibraryEX) y se escriben los datos extraídos en un fichero temporal que luego será leído por el proceso principal de aDLL.

Análisis de las DLL

Una vez que se ha analizado el ejecutable y se han extraído las DLL que importa, aDLL filtra todas aquellas DLL que pertenecen a la lista de Known DLLs (no se buscarán en disco y no darán lugar a un Hijacking) y, de momento, también se filtran las DLL que pertenecen al Api Set schema debido a la complejidad que supone la resolución de la redirección de estas DLL virtuales a la DLL física que contiene sus funciones, y también se filtran aquellas DLL que hacen uso del sistema side by side assembly.

Para aquellas DLL que no han sido filtradas se analizan junto a la FLAG con la que hayan sido importadas si la hubiera y se replica el mecanismo de búsqueda de Windows para conocer la ruta de los directorios donde la DLL será buscada y no encontrada. En la siguiente figura se demuestra cómo aDLL analiza un binario vulnerable a DLL Hijacking, se trata de la versión 2.0.3 de utorrent publicada en exploit-db.

Figura 5: Análisis de la versión 2.0.3 vulnerable de utorrent

Para aquellas DLL que sí son encontradas aDLL dispone de la opción “-r” para hacer una búsqueda recursiva de las dependencias que son importadas a su vez por esa DLL. Una vez se tiene una lista de DLLs no encontradas para el programa analizado, con la opción “-a” aDLL comprobará automáticamente para cada DLL en la ruta en la que no ha sido encontrada si da lugar a un Hijacking, lo que se consigue copiando una DLL maliciosa con el nombre de la DLL legítima en dicha ruta. Si la ejecución de la DLL maliciosa tiene lugar se generará un fichero temporal y aDLL comprobará la creación de ese fichero como demostración de que el Hijacking ha tenido éxito.

Figura 6: Test automático de Hijacking

En los vídeos aparecen distintos casos de uso de la herramienta, cómo el análisis de múltiples ejecutables y un ejemplo de análisis automático en utorrent en el que se selecciona una DLL cuyo payload genera una reverse shell de Meterpreter.


Figura 7: PoC lista de DLLs implícitas en un binario de Windows


Figura 8: PoC análisis de DLLs candidatas a ser vulnerables a DLL Hijacking con addl

Figura 9: PoC de aDLL y explotación con Meterpreter

Espero que te animes a probar la herramienta y en cuanto esté publicada en el GitHub, eres libre de mejorarla y ampliarla, que nos encantará.

Saludos,

miércoles, julio 28, 2021

Bad Ducky: Un ejercicio de Hardware Hacking para Makers con Arduino, Metasploit y Kali Linux

En el artículo de hoy, vamos a realizar un ejercicio de hardware hacking para los Makers de este blog, en el que utilizaremos un clon de un Arduino Leonardo para automatizar la ejecución de acciones en un teclado (virtual), en un sistema, a través de una conexión USB. Para ello realizaremos un Ducky Script que cargará el microcontrolador desde una memoria.

Figura 1: Bad Ducky: Un ejercicio de Hardware Hacking para Makers con Arduino,

Tras la ejecución de las instrucciones, el sistema se verá comprometido ya que un atacante, con una distribución con Kali Linux en este caso, obtendrá una shell con privilegios de administrador. Para realizar este ejercicio se ha requerido el uso del siguiente hardware. Prerrequisito: El layout del teclado se ha seleccionado en idioma inglés.

Figura 2: Hardware necesario

Para ello vamos a utilizar el firmware Bad Ducky. Con Arduino IDE abrimos el archivo bad_ducky.ino descargado del siguiente repositorio bad_ducky. Si quieres sacarle partido al Arduino IDE, la recomendación es que te estudies de principio a fin el libro de Arduino para Hackers & Makers: PocS & Hacks Just for Fun de Alvaro Nuñez-Romero y Alexandra Sánchez.

Figura 3: IDE Arduino – bad_ducky.ino

En este momento se conecta el dispositivo CJMCU en una ranura USB para proceder a su configuración. Para ello se seleccionan las siguientes opciones:
  • Herramientas/Placa: Arduino Leonardo
  • Herramientas/Puerto: COM3 (Arduino Leonardo)
Figura 4: Configuración de Placa y Puerto con el dispositivo conectado

Después de que se hayan realizado las configuraciones anteriores, vamos a verificar el código del fichero bad_ducky seleccionando el “check” que aparece en el IDE de Arduino en la parte superior izquierda y después seleccionamos la flecha, situada a la derecha de la opción verificar, para subir el código a la placa.

Figura 5: Verificamos y subimos el código a la placa

Una vez se haya subido el código se indicará en el log del IDE el resultado de la subida, después vamos a conectar la tarjeta microSD con el adaptador al ordenador y aplicamos el formato FAT32 a la tarjeta. Ahora, situamos el payload escrito en Ducky Script en un fichero .txt llamado payload.txt en la memoria.

Payload:

El propósito principal de este payload consiste en ofrecer una sesión Meterpreter de Metasploit con privilegios de administrador a un atacante. Y está estructurado en tres partes que vamos a ver una a una para entender mejor cómo planemos tomar control todal de la máquina.

Figura 6: Metasploit para Pentesters Gold Edition
de Pablo González en 0xWord

En la primera se desactiva Windows Defender abriendo el menú de Windows, escribiendo “Defender”, introduciéndose en la aplicación de Windows Defender y deshabilitando la monitorización en tiempo real. Cuando salta la alerta de UAC, se realiza el bypass emulando el comportamiento de un usuario seleccionando la opción “Yes”. Este proceso de desactivación del AV se podría haber realizado a través de una Powershell con el comando:
  • Set-MpPreference -DisableRealTimeMonitoring $true
Pero para ello se requeriría modificar la clave del registro del Tamper Protection pero con propósito de que la demostración sea más visual, lo haremos simulando a un usuario que hace clic en YES.

En la segunda parte, abriremos una consola de Powershell con privilegios de administrador de la misma forma que hemos accedido a la aplicación Windows Defender. Para ello, a través del dispositivo, se ejecutarán las instrucciones que pulsan, virtualmente, las teclas CONTROL ESCAPE y que abrirán el menú de Windows. Se introduce “powershell” vía teclado (virtual), se selecciona la opción “Run as an Administrator” y se selecciona la opción “Yes” cuando aparezca el UAC.

Figura 7: Ducky Script Payload

Una vez obtenemos la consola comienza la tercera parte en la que se realiza una petición a un servidor del atacante que descargará un payload y lo alojará en C:\rev.exe. Después, se ejecutará dicho payload, y este proceso iniciará una shell inversa con la máquina atacante. La máquina atacante, en este caso es una distribución Kali Linux que ha sido emulada con VirtualBox teniendo como dirección IP: 192.168.1.40

Preparando el ataque:

La conexión entre la máquina víctima y la atacante será realizada por un ejecutable que se descargará y ejecutará el Ducky Script a través de una Powershell. El ejecutable ha sido generado previamente por el atacante con msfvenom:

Figura 8: Generación del payload con msfvenom.

El payload elegido es una shell de Meterpreter para Windows x86 que realizará una conexión desde la máquina víctima a un handler situado en 192.168.1.40:4444. Para servir el payload se ha levantado un servidor con el módulo de python3 http.server en 192.168.1.40:8000

Figura 9: Servidor levantado en el puerto 8000 en la máquina atacante

Después de levantar el servidor se pone a la escucha el handler utilizando Metasploit configurado con el payload generado con msfvenom anteriormente y con los mismos parámetros LHOST y LPORT:

Figura 10: Handler a la escucha en la máquina atacante

Configuración de la placa:

Una vez tenemos el payload dentro de la memoria, insertamos la memoria en el dispositivo CJMCU y vamos a hacer algo de la parte más Maker. Para configurar la placa debemos regresar al IDE de Arduino y seleccionar Herramientas/Monitor Serial. 

Figura 11: Libros para Makers en 0xWord que deberías tener:

Una vez se haya abierto el monitor serial se han de seleccionar las siguientes opciones de configuración:
  • Modo seleccionado: a (Auto-disarm, este modo ejecutará una vez el payload y luego el dispositivo se podrá volver a configurar.)
  • Lenguaje: Por defecto
  • Payload seleccionado: payload.txt
Figura 12: Configuración del dispositivo CMJCU

Y ahora toca probar enuesto Bad Ducky, así que para verlo funcionando os hemos preparado este pequeño vídeo que explica bien el proceso completo que sigue nuestra PoC para conseguir nuestro objetivo, aquí lo tienes.

Figura 13: Bad Ducky DEMO

El resultado ha sido el esperado, tal y como se aprecia en la demostración podemos ver como se desactiva el antivirus, se lanza una powershell con privilegios de administrador y se descarga el payload para luego ejecutarlo. Una vez ejecutado obtenemos la sesión en Meterpreter de Metasploit.

Figura 14: Resultados después de la postexplotación.

¡Un saludo hackers!

Autor: Luis Eduardo Álvarez, Security Researcher & Software Developer

Entrada destacada

Hacking IA: Jailbreak, Prompt Injection, Hallucinations & Unalignment. Nuestro nuevo libro en 0xWord

Pocas veces me ha hecho tanta ilusión que saliera un nuevo libro en 0xWord como con este libro de " Hacking IA: Jailbreak, Prompt Inje...

Entradas populares