sábado, julio 31, 2021

Bio Hacking: Chips NFCs en tus uñas con Smart Nails

Desde hace unos años la tecnología Contactless o "Sin Contacto" se ha convertido en una de las más utilizadas para todo, desde tarjetas de credenciales para acceder a edificios, hasta chips que se pueden introducir en teléfonos y otros dispositivos como relojes inteligentes para poder operar con aplicaciones de banca digital sin utilizar tarjetas de crédito. Hoy en día son muy pocos los establecimientos o entidades bancarias que no operen con este tipo de tecnología, de hecho, las grandes tecnológicas como Apple o Samsung también han apostado por lanzar sus propias aplicaciones para gestionar nuestras tarjetas y los pagos que realizamos con ellas.

Figura 1: Bio Hacking: Chips NFCs en tus uñas con Smart Nails

La primera vez que oímos hablar de esta tecnología fue en el año 2007 cuando la empresa de banca online Barclaycard lanzó la primera tarjeta contactless en Reino Unido, esta tecnología llamó tanto la atención que ese mismo año se lanzó en Nueva York el Nokia 6131, el primer móvil de la historia en incorporar un chip NFC. En apenas un año algunas compañías de restauración comenzaron a incorporar esta tecnología como forma de pagos.

Figura 2: Nokia 6131 con NFC.

Con el paso de los años cada vez se ha vuelto más común el uso de chips RFID o NFC, en ambos casos estas tecnologías cuentan con un chip que almacena la información y una antena con la que transmitir la información de este. Hoy en día es raro encontrar una entidad bancaria o una compañía tecnológica que no utilice esta tecnología en sus smartphones o wereables, de hecho, esta tecnología también se utiliza en los chips identificadores de las mascotas. Esta tendencia al uso del pago contactless aunque resulta mucho mas cómoda que introducir nuestra tarjeta de crédito en los datafonos en algunas ocasiones, su pérdida o robo puede suponer un aumento de las posibilidades de sufrir una estafa. El libro de Salvador Mendoza  (Nexting) llamado "Show me the (e-)money: Hacking a sistemas de pagos digitales NFC, RFID, MST y Chips EMV" recoge todas las técnicas de ataque a este tipo de medios de pagos digitales.

Figura 3: Show me the (e-)money. Hacking a sistemas de pagos digitales
NFC, RFID, MST y Chips EMV por Salvador Mendoza (Netxing)

Hasta hace poco esta tecnología seguía siendo bastante insegura, de hecho, para pagos inferiores a 20 € no se solicita que ingresemos el PIN de nuestra tarjeta. Por suerte, con el aumento de proveedores de banca digital que ofrecen la posibilidad de pagar con el móvil y de aplicaciones de cartera virtual como son Apple Pay o Samsung Pay también ha aumentado la seguridad del pago sin contacto. A la hora de realizar cualquier pago, independientemente de su importe, nuestro smartphone o smartwatch nos solicitarán que utilicemos la biometría, o en su defecto una contraseña para confirmar que somos nosotros los que estamos pagando.

Smart Nail: Uñas con NFC

Hace unos días se convirtió en noticia un salón de belleza de Dubai que acaba de añadir a su catálogo un nuevo tratamiento que ofrece la posibilidad de incorporar chips NFC en las uñas de sus clientes cuando les realizan una manicura. Con este tratamiento, que ha recibido el nombre de Smart Nail ya es posible almacenar información en las uñas de sus clientes sin que nadie lo sepa. Por el momento el tratamiento solo se utiliza para almacenar información como identificadores de perfiles en redes sociales, tu número de teléfono o incluso tarjetas de visita, pero su fundador quiere ir mas allá y utilizar esta nueva técnica para almacenar la información de las tarjetas de crédito de sus clientes y que así puedan realizar pagos contactless con las uñas.

Figura 4: Tratamiento Smart Nail con chip NFC.

Nour Makaren, el director del salón Lanour Beauty Lounge de Dubái asegura que no fue para nada fácil encontrar chips adecuados para implantar en las uñas ya que era necesario que fuesen pequeños y muy livianos para mantener el aspecto natural de la uña. Implantar el chip es muy sencillo, se utiliza un pegamento para colocarlo en su sitio y después se cubre con una capa protectora que se aplica igual que el esmalte de uñas, tras hacer esto se puede pintar encima de la uña y el chip queda totalmente oculto.

Nour asegura que su salón de belleza ya ha realizado más de 500 tratamientos y que se está convirtiendo en toda una tendencia en Dubái. Por el momento el tratamiento Smart Nail tiene un precio de 250 dirham, el equivalente a unos 60 €, y ofrece 2kb de almacenamiento, lo que lo convierte en una opción mas asequible y menos invasiva que los chips intradérmicos que se implantaron en Suecia y de los que os hablo ahora mismo.

Chips intradérmicos

Y ese que, aunque esta idea suene a ciencia ficción no es la primera vez que se implantan chips NFC en seres humanos, de hecho, hace tan solo 2 años esto se convirtió en una moda en Suecia. Una empresa llamada Biohax implanto chips intradérmicos a mas de 4000 personas en el país nórdico. Los chips son fabricados por DSruptive una empresa con sede en Suecia, pero fundada por Juanjo Tara, un ingeniero almeriense que ha sido de las primeras personas en España en implantarse un chip NFC bajo la piel de su mano. 

Figura 5: Implantando chip intradérmico de DSruptive.

DSruptive ofrece desde hace un par de años un kit que incluye el chip y material esterilizado para implantarlo por tan solo 200€ y que se puede comprar a través de su página web. Eso sí, recomienda acudir a un estudio de tatuajes o piercings para que el chip se implante correctamente y en un lugar adecuado para no sufrir ningún tipo de infección.

El chip se suele implantar entre los dedos pulgar e índice para que sea cómodo y para evitar dañar las terminaciones nerviosas de la mano al implantarlo, por el momento estos chips solo permiten almacenar 2kb de información, pero se puede grabar en ellos lo que se quiera y para acceder a la información es necesario utilizar un lector o un smartphone con NFC y una aplicación para su lectura. 

Bio Hacking

Las técnicas de Bio Hacking ya llevan tiempo entre nosotros. Son muchos los humanos que han decidido implantarse chips, sensores, y unidades de almacenamiento en su cuerpo. Desde dispositivos que vibran cuando suben las mareas hasta chips que almacenan tu vida. La decisión de mejorar las capacidades de los los llamados cyborgs solo está empezando. Nuestro compañero Gabriel Bergel habló del Bio Hacking en una charla que merece la pena que veas.


Estos tratamientos de Bio Hacking pueden resultar muy funcionales, ya que olvidarnos la cartera en casa o el coche no es muy habitual, pero puede suceder, olvidarse de llevar una uña o la propia mano es algo imposible. Sin embargo, estaríamos poniéndonos en la misma tesitura que antes, al llevar nuestras tarjetas de crédito implantadas en la uña o en la mano no resultaría muy difícil acercar un lector NFC o un datáfono y cometer un robo de información o una estafa sin que nos diésemos cuenta ya que en estos casos no contamos con un doble factor de autenticación.

Saludos,
 
Autor: Sergio Sancho, Security Researcher en Ideas Locas.

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 “-aaDLL 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,

jueves, julio 29, 2021

Una historia de Blade Runners & Virtual Replicants (Parte 2 de 5)

Como vimos en la primera parte de este artículo, tanto para construir una DeepFake con FaceSwapping como para crear una GAN entrenada para crear un Virtual Replicant que utilizar en vídeo conferencias, necesitamos utilizar los servicios cognitivos de visión artificial, que hace unos años ya consiguieron alcanzar la paridad humana en muchos de los aspectos en los que utilizamos la visión los seres humanos, como el reconocimiento de objetos, el reconocimiento de personas, etcétera.

Figura 8: Una historia de Blade Runners & Virtual Replicants (Parte 2 de 5)

Los investigadores de Microsoft Research construyeron en el año 2017 un modelo de Inteligencia Artificial entrenado con 1 millón de fotografías de 100.000 celebrities de todo el mundo - entre las que se encuentran entre otros Chema Alonso y Kevin Mitnick - capaces de reconocerlos en cualquier fotografía, incluso si Kevin se pone el gorro de Chema Alonso y Chema se pone las gafas de Kevin Mitnick como podemos ver en esta fotografía.


Esta capacidad de crear un modelo de inteligencia artificial capaz de reconocer a una persona de manera acertada cuando se tienen suficientes fotografías de ella, es lo que permite tener una GAN funcional, ya que el Discriminador será el que se encuentre entrenado con las fotos originales, haciendo que el Generador deba trabajar duro para engañarla con una DeepFake.

Engañar al Discriminador con una cara falsificada en un vídeo de DeepFakes es una cuestión de grado de certeza en el reconocimiento. Si se baja el nivel, será más fácil que el Generador engañe al Discriminador pero al mismo tiempo será menos realista y puede que no engañe a las personas. Un ejemplo de esto es el modelo de Inteligencia Artificial de Microsoft para recocer si dos caras en dos fotografías son las mismas, donde una fotografía de Chema Alonso fue capaz de confundir al modelo y hacer que pensara que George Clooney eran la misma persona.

Figura 11: ¿Son Chema Alonso y George Clooney la misma persona?

Al final, la base de todo lo que rodea a los DeepFakes es la visión artificial, y en concreto, como ya hemos dicho, los servicios cognitivos de reconocimiento facial. Este procedimiento de reconocimiento de caras es bastante sencillo con pocas líneas de código utilizando OpenCV por ejemplo y el clasificador Haar Cascade como podemos ver en este sencillo ejemplo ejecutado sobre Google Colab:

Figura 12: Ejemplo de utilización de detección de caras con OpenCV.

Los diferentes algoritmos de reconocimiento de caras han ido evolucionando y también las posibles aplicaciones prácticas. Y claro, una de estas aplicaciones es el reconocimiento de personas que se podría integrar en cámaras de seguridad y así detectar cuándo una persona entra por ejemplo a una habitación o ha sido grabada en un acto delictivo. Esto, por supuesto, también puede ser una violación de nuestra privacidad, debido a tres factores. 

El primero de ello es la aparición de las cámaras de gran resolución que son capaces de captar grandes espacios de una ciudad con una sola instantanea, capturando la vida de muchas personas. Puedes ver un ejemplo de esto en esta fotografía de 195 Megapíxeles en 360º de la ciudad de Shanghai

En segundo, porque como hemos visto en el caso de George Clooney y Chema Alonso, los modelos han alcanzado la paridad humana, pero no la perfección, y por tanto, como los humanos se pueden equivocar. Y el tercero se basa en la garantía de que los datos que se han utilizado para su entrenamiento son correctos, y de qué ha aprendido correctamente, lo que no siempre es posible, como vimos en el modelo de IA que tendía a aclarar la piel en las imágenes de poca calidad - como las que se utilizan en muchas cámaras de seguridad -.


Por supuesto, también podemos pensar en la gran cantidad de aplicaciones prácticas y útiles que tendría. Usando el ejemplo de Google, los servicios cognitivos de visión artificial permiten detectar gestos, emociones, etcétera, pero si además, si eres algún tipo de personalidad, existen aplicaciones que te detectan y reconocen como hemos visto en el ejemplo anterior.

Toda la tecnología que rodea a la detección de caras seguirá evolucionando y estará cada vez más en aplicaciones que usaremos día a día. No debemos olvidar que todos llevamos encima un potente ordenador capaz de hacer una foto de alta resolución y enviarla a cualquiera de estos servicios en tiempo real y casi sin latencia con la llegada del 5G y así saber con quién estamos hablando o a punto de encontrarnos.

2018 – Faceswapping Axl Rose y Chema Alonso

Conociendo esto, decidimos explorar las posibilidades, sobre todo en el mundo de las Fake News, y en el año 2018 comenzamos a trabajar con el concepto de FaceSwapping, donde vimos de los riesgos que podían suponer para la sociedad, para las organizaciones y los estados. La tecnología avanzaba muy rápido y nosotros hicimos una pequeña prueba de concepto de cara a nuestro evento anual de la antigua ElevenPaths - ahora Telefónica Tech - llamado Security Innovation Day.

En este primer contacto con las técnicas de Faceswapping trabajamos con autoencoders y cambiamos el rostro de Axl Rose por el de Chema Alonso en un vídeo de unos segundos para hacer una Fake News. Aprendimos que en el caso de las DeepFakes, con la finalidad de mezclar caras, entrenar dos autoencoders de forma separada no tendría ningún sentido, pues la representación de los espacios latentes aprendidos por cada uno sería totalmente diferente y no podrían ser usadas al mismo tiempo.

(Hoy en día se ve pobre, pero en 2018 ya se veía su pontencia si mejoraba).

La tecnología de FaceSwapping es posible si se codifican dos clases diferentes de datos de entrada en una misma representación latente. Esto se ha conseguido construyendo dos redes neuronales que comparten el mismo encoder pero usan dos decoders diferentes. En la Figura 7 de la primera parte de este artículo se puede ver claramente el funcionamiento. Esto se hace por cada fotograma del vídeo en el que se quiere hacer la suplantación de las caras.

2019 – GAN de Chema Alonso

En el año 2019, con una aceleración brutal de todas las tecnologías de DeepFakes y FaceSwapping,  comenzamos un trabajo en el que se quería comprobar las posibilidades de llevar a cabo una estafa del CEO a través del aprendizaje por parte de una IA a hablar como él y a ser capaz de generar una imagen de vídeo de la persona a suplantar en tiempo real. Para esto comenzamos trabajando con GANs con el objetivo de poder crear imágenes falsas de una persona, en este caso, como no, le tocó otra vez a  Chema Alonso, y poder ver los posibles resultados. 

Además, decidimos realizar el estudio para sintetizar una voz usando un modelo de Inteligencia Artificial que reprodujera las frases como de la forma más parecida posible a la forma en la que lo haría Chema Alonso, aunque tuvimos que usar el inglés, debido a que es en esta lengua donde estaban más avanzadas las tecnologías en estos servicios cognitivos de visión y voz que necesitábamos.

Otro tema interesante es que se quería hacer con recursos de bajo coste y Open Source para demostrar que en ese momento, principios del año 2019, todo estaba en Internet y accesible a cualquier usuario. Eso sí, la complejidad de montar todo y de trabajar el entrenamiento de los modelos no era sencillo. Es decir, queríamos demostrar que con dos redes neuronales enfrentadas se puede generar una imagen resultante que puede engañar a cualquier ojo humano en tiempo real, y sin necesidad de grandes recursos.

Figura 16: Enrique Blanco controlando la GAN de Chema Alonso

Para este caso se utilizaron los siguientes requisitos, que aplicaríamos sobre un vídeo elegido. En nuestro caso un vídeo en el que nuestra "víctima" habla a la webcam como si fuera una vídeo-conferencia y explica cosas con un fondo más o menos blanco. Nos pareció bueno para hacer la simulación y extraer de él los rostros necesarios para traerlo a la vida como si fuera nuestra marioneta. En el vídeo anterior podéis ver a nuestro compañero Enrique Blanco controlando la GAN de Chema Alonso.
  • PC con una NVidia como GPU
  • Anaconda / Python 3.5
  • OpenCV 3.0
  • Dlib 19.4
  • Pix2pix-tensorflow
  • CUDA 8.0
  • CUDNN 6.0
  • Drivers aplicables a la GPU
La librería para generar este tipo de caso se puede encontrar en el siguiente Github y se llama face2face-demo. Con ella se creó la GAN de Chema Alonso para controlarlo en tiempo real, y que abría las posibilidades, más que reales, de que aparecieran los Virtual Replicants.

2019 – Generación Voz MS Custom Voice

La siguiente prueba consistía en crear un modelo de inteligencia artificial que crease, mediante un servicio cognitivo de text-to-speech, frases realistas que suplantaran a la víctima. En nuestro caso, para la generación de audio de esta prueba se utilizó el servicio Custom Voice de Microsoft con el que se puede entrenar una IA para que a través de texto y audios se pueda enseñar al modelo de inteligencia artificial a hablar como una determinada persona.
Tuvimos que hacerlo en inglés, ya que, como hemos dicho antes, los idiomas disponibles eran inglés y chino (simplificado). En este caso nos surgió un problema ya que teníamos audios de Chema Alonso de sus charlas en DefCON, Blackhat y demás dadas en inglés, pero necesitábamos los textos. 

Figura 18: Datos completos para entrenar la voz

Para ello, utilizamos otro servicio cognitivo basado en inteligencia artificial, en este  el servicio cognitivo de Google Cloud Speech-To-Text para transformar los audios a texto. Con esos textos y los audios asociados, en fragmentos de 30 segundos, ya podíamos pasarle la info a MS Custom Voice y poner a entrenar la IA. El resultado era bueno, aunque con un toque metálico que se podía trabajar en post-producción, como veremos luego.

 2019 – Ataque CDO por Skype

Juntando la parte de vídeo con el ejercicio de la GAN y la parte del audio y el entrenamiento de la IA y la voz con MS Custom Voice se montó la prueba de concepto del ataque de CDO (hoy CDCO) como si de una llamada de Skype se tratase. En esta demo se puede ver al Virtual Replicant de Chema Alonso  con su voz solicitando que se haga una transferencia desde un bar.


2019 - Ataque de CEO real con Voz generada por IA

Ese mismo año, el día 30 de Agosto, el Wall Street Journal contó que este tipo de ataque del CEO utilizando Inteligencia Artificial ya se comenzó a utilizar con éxito - al menos que se conozca - en una empresa del Reino Unido en la que la voz de un CEO fue reconstruida en un modelo de IA que se utilizó para solicitar a un empleado de la firma que hiciera una transferencia de 220.000 €.

Figura 20: Noticia en el Wall Street del ataque del CEO usando IA

Por supuesto, mucho ha llovido en estos dos años, y tanto los esquemas de ataques, como las herramientas, como los estudios de Inteligencia Artificial en este área no han parado de aumentar, pero eso lo veremos en la siguiente parte de este artículo.

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

martes, julio 27, 2021

Ciclismo: Escáneres e Impresión 3D en los Juegos Olímpicos y un NFT del mallot de campeón del mundo

Hace apenas una semana os hablamos de cómo una start-up de Seattle proponía una interesante solución para salvar a los rinocerontes de la extinción utilizando la impresión 3D. Hoy toca volver a hablaros de la tecnología 3D, pero en esta ocasión aplicada al deporte y al prototipado de piezas mas eficientes para obtener mejores resultados en los Juegos Olímpicos, utilizando diseño generativo, como ya vimos en otras industrias, ahora que estamos en medio de la realización de los mismos.

Figura 1: Ciclismo: Escáneres e Impresión 3D en los Juegos Olímpicos
y un NFT del mallot de campeón del mundo

Desde su comienzo hace mas de 120 años los Juegos Olímpicos de han convertido en el mayor evento deportivo multidisciplinario a nivel mundial. La idea de estos juegos era, en cierto modo, recuperar la tradición de las Olimpiadas de la antigua Grecia, algo que fue posible gracias al Barón de Coubertín que en el año 1894 fundó el Comité Olímpico Internacional haciendo que los primeros Juegos Olímpicos de la era moderna tuvieran lugar dos años después en la ciudad de Atenas.

Figura 2: Primera edición de los juegos olímpicos (de la edad moderna).

Tras su gran éxito, poco a poco, se fueron añadiendo nuevos deportes y también surgieron los Juegos Olímpicos de Invierno y los Juegos Paralímpicos para ofrecer a cualquier deportista la posibilidad de representar a su país en la cualquier disciplina deportiva. Desde entonces cada cuatro años se han seguido celebrado de manera ininterrumpida cada cuatro años a pesar de haber sufrido boicots por parte de algunos países en diversas ocasiones, como los de EE.UU. y la Unión Soviética durante la guerra fría, hasta esta última edición que ha tenido que ser pospuesta durante un tiempo debido a la crisis de la COVID-19.

¿Pero que tiene que ver el escaneo y diseño 3D con las olimpiadas?

Las técnicas de Impresión 3D se pueen aplicar a funciones básicas de la mecánima humana, como hace la ONG Ayúdame 3D - impulsada por el joven emprendedor Guillermo M. Gauna-Vivas - realizando prótesis en 3D que mejoren la calidad de vida de las personas, pero... ¿por qué no aplicarla también al mundo del deporte de forma profesional?


Hace unos días se supo que el equipo de ciclismo italiano había estado realizando pruebas para mejorar la aerodinámica de su equipamiento para obtener mejores resultados durante las olimpiadas. En este caso la selección italiana de ciclismo recurrió a la empresa 3DiTALY para escanear a sus deportistas en acción y transmitir esa información a los ingenieros de Pinarello, el fabricante de bicicletas. 

La idea de estos escaneos es que los ingenieros de la marca fueran capaces de fabricar bicicletas que se adapten a la posición de cada ciclista para conseguir que hombre y máquina actúen como uno solo, y de la forma más aerodinámica posible, ya que en este deporte un equipamiento más ligero y un buen comportamiento aerodinámico pueden suponer la victoria.

Figura 4: Técnico de Thor3D escaneando a un ciclista de la selección italiana.

Uno de los principales socios de 3DiTALY es Thor3D, una de las empresas pioneras en el desarrollo de escáneres 3D, de hecho, en el año 2015 lanzaron el primer escáner 3D inalámbrico del mundo. Desde su comienzo Thor3D ha contado con un gran equipo de expertos matemáticos e ingenieros con los que además de escáneres ha desarrollado numerosas aplicaciones de software con las que trabajar todo tipo de diseños en 3D.

Los escaneos se han realizado utilizando uno de los productos estrella de la compañía, el escáner Calibry. Este escáner se puede utilizar directamente sosteniéndolo con la mano y es capaz de capturar con un gran nivel de detalle la forma y las características de cualquier objeto que se coloque delante suya a una distancia comprendida entre 30 centímetros y 10 metros. Con su pequeño tamaño y gran precisión es capaz de detectar la forma hasta de los objetos mas complicados para el resto de escáneres 3D.


Figura 5: Presentación de Calibry 3D

Por lo general los escáneres 3D suelen tener problemas para identificar determinadas formas o superficies, como es el caso de las superficies de color negro, las superficies de objetos muy brillantes o que emiten destellos al incidir la luz sobre ellos (como por ejemplo los diamantes), los bordes afilados o con aristas muy pronunciadas (tienden a redondear la forma de estas) o en el caso de escanear a una persona el propio cabello suele suponer un problema.

Calibry cuenta con una pantalla táctil que permite comprobar que se ha escaneado, pesa apenas 900 gramos y es capaz de capturar hasta 35 frames por segundo - el equivalente a capturar 3 millones de puntos distintos por segundo -. Estas características lo han convertido en la herramienta perfecta para estudiar el comportamiento aerodinámico de la selección italiana de ciclismo. Junto al software desarrollado por Thor3D se pudo escanear por completo a cada ciclista en menos de 2 minutos obteniendo los modelos de alta resolución que serían estudiados por los ingenieros de Pinarello.

Figura 6: Calibry 3D se ha utilizado para escanear algunas de las esculturas mas famosas que se encuentran en los museos para poder reproducirlas en caso de que la original sufra daños.

La idea de digitalizar a los atletas con su equipamiento surgió del equipo de Hardskin, que junto a Pinarello es una de las principales empresas patrocinadoras de la selección italiana de ciclismo. Las pruebas se realizaron el pasado mes de febrero en el velódromo de Montichiari, la única instalación diseñada para realizar ciclismo en una pista cubierta con techo en todo Italia. Tras tomar los modelos los ingenieros estudiaron diversos parámetros como la posición del atleta, los coeficientes de rozamiento de la equipación o la temperatura del atleta al aumentar la intensidad de la pedaleada. 

Figura 7: Analizando los modelos de cada ciclista con Calibry Nest.

Tras analizar los datos y estudiar la aerodinámica de cada ciclista con Calibry Nest se pudieron diseñar prototipos de manillares a medida para cada miembro de la selección. Con estos manillares fabricados por Pinarello se logra una simbiosis perfecta entre ciclista y bicicleta favoreciendo al comportamiento aerodinámico de ambos y proporcionándoles una ventaja con la que no cuentan otros equipos. Sin duda una idea brillante y que respeta todas las normas de la competición.

Al igual que en este caso aplicado al ciclismo, son muchas las empresas que utilizan técnicas de escaneo e impresión 3D en sus procesos de prototipado. El escaneo 3D ofrece una solución perfecta a la hora de analizar la aerodinámica de un objeto y comprobar que modificaciones en el diseño pueden hacer que se comporte mejor, por otro lado, la impresión 3D ofrece la posibilidad de materializar estos diseños de una forma barata y comprobar que funcionan correctamente en los túneles de viento.

NFTs y ciclismo

Por último, y entrando en otra faceta del escaneo 3D, se ha puesto a la venta en NFT (Non-Fungible Token), el mallot en 3D de Alejandro Valverde de Campeón del Mundo de Ciclismo en ruta , que puedes comprar hasta el 12 de Agosto en OpenSea.

Figura 8: NTF del mallot de campeón del mundo de Alejandro Valverde


El mundo del ciclismo siempre ha sido una revolución en tecnología, desde la mítica Espada de Miguel Induráin, hasta las nuevas bicicletas diseñadas utilizando las nuevas tecnologías de hoy en día.

Saludos,
 
Autor: Sergio Sancho, Security Researcher en Ideas Locas.