martes, mayo 21, 2019

PowerShell Empire: Cómo pasar sesiones entre máquinas con HTTP Foreign #penstest #pentesting

Quizá PowerShell Empire ha sido una de las herramientas más populares de los últimos años en lo que a Ethical Hacking se refiere, y especialmente en el mundo del Pentesting con PowerShell. Es un proyecto con aire fresco que ha proporcionado alternativas a la post-explotación con Metasploit. El año pasado tuve la suerte de estar por Ekoparty, en Argentina, hablando de Empire y de nuestro iBombShell.

Figura 1: PowerShell Empire.
"Cómo pasar sesiones entre máquinas con HTTP Foreign"

También hemos ido hablando de diferentes acciones de PowerShell Empire y de sus listeners y las posibilidades que éstos ofrecen. Por ejemplo, hemos visto como es su funcionamiento básico en el pentesting en ataques Pass the Hash, hemos trabajado con canales encubiertos para gestionar los agentes con Dropbox, cómo utilizar saltos intermedios entre el agente y el listener y, también, hemos visto cómo integrar herramientas como Metasploit en el uso del Empire y sus listeners.

Figura 2: Pentesting con PowerShell 2ª Edición

Sin duda, una herramienta con bastantes opciones y con más de 300 módulos de acciones disponibles. Hoy vamos a continuar con los listeners en PowerShell Empire, y haciendo algunas demostraciones prácticas con él.

HTTP Foreing

HTTP Foreign es un tipo de listener que permite pasar una sesión de una máquina a otra. El término ‘Session Pass’ es conocido para referirse a esto. Con Empire podemos imaginar un escenario en el que una máquina quiere traspasar una sesión a otra. El concepto clave en este punto es el uso de la misma clave de sesión o Session Key con la que se cifra la comunicación de los agentes con los listeners.

Figura 3: Sesión Pass con HTTP Foreign

Para este artículo podemos pensar en el siguiente escenario:
• Una máquina comprometida, por ejemplo, vía inyección de DLL generada con Empire y apuntando a nuestro listener. La máquina comprometida será un Windows 7, aunque puede ser cualquier otra versión de Windows, por ejemplo, un 10. La llamaremos V.
• Una máquina con un listener que recibe la conexión desde la máquina Windows. Esta máquina será un Kali Linux. La llamaremos M1.
• Una máquina con Kali Linux y Empire instalado. Se generará un listener a la escucha, el cual debe tener el mismo Session Key que el listener de la máquina anterior. La llamaremos M2.
El punto de partida es la sesión creada entre el agente ejecutado en Windows y el listener que está a la escucha en la máquina Kali Linux, la más a la izquierda que se ve en la imagen anterior.

Obteniendo la primera sesión: de V a M1

Vamos a ver la configuración básica del listener HTTP clásico de PowerShell Empire. Con el comando uselistener cargamos el módulo http. No hay mucho que configurar, podemos dejar la conexión a la escucha en el puerto 80 y la dirección IP de la máquina.

Figura 4: Configuración de listener http en PowerShell Empire

Una vez que se obtiene la sesión en la máquina M1, ya se puede interactuar con el agente. Ahora queremos pasar la sesión de M1 a M2. Más que pasarla es compartir la máquina V.

Para realizar la siguiente acción se debe configurar en M1 un listener denominado http_foreign. Este listener tiene algo importante y es que el atributo host debe apuntar a la máquina M2 y no a la máquina M1. Es decir, cuando el agente que se está ejecutando en la máquina V se conecte al listener http_foreign será redireccionado a la máquina M2.

Figura 5: Sesión obtenida en máquina M1 y configuración de http foreing

En otras palabras, tenemos que configurar el atributo host, en este caso para apuntar a http://10.0.0.31:80. Es importante quedarse con el valor del StagingKey o lo que antes hemos llamado Session Key. Esto es algo fundamental para que la redirección de sesión funcione.

Session Pass: Llegando a la máquina M2

Ahora debemos colocarnos en la máquina M2, en este segundo Empire que estamos utilizando. De algún modo debemos pasarnos el StagingKey utilizado en la máquina M1 a la máquina M2. Una vez copiado, se debe ejecutar la instrucción set StagingKey [Valor]. Esto dentro del listener cargado. El listener que debemos utilizar en la máquina M2 es un listener http clásico.

Figura 6: Configurando StagingKey

Una vez configurado el listener en M2 se debe ejecutar y lo tendríamos listo y visible si ejecutamos el comando listeners. A continuación, se muestra la imagen de la configuración del listener y de la configuración del StagingKey.

¿Cómo conseguimos el Session Pass?

Esto es sencillo. Desde la máquina M1 podemos interactuar con el agente a través del comando interact. Desde esa sesión podemos ejecutar el comando spawn. Este comando permite generar una nueva instancia de un agente sobre la máquina V, en este caso.

El detalle es que queremos que la nueva instancia de un agente apunte al listener http_foreign. ¿Por qué? Sencillo, porque cuando la nueva instancia del agente de Empire se conecte al listener http_foreign, éste redirigirá a la M2. En este punto hay que acordarse de la configuración del atributo host en el listener http_foreign.

Figura 7: Comando spawn http_foreign

Cuando se ejecute el comando spawn podemos ver que un módulo es cargado y que éste tiene diferentes opciones. Se puede echar un ojo a lo que se pueda modificar, por ejemplo, la arquitectura. Cuando obtenemos el mensaje de “Agent spawned to http_foreign” sabemos que la nueva instancia de un agente de Empire se está ejecutando.

Figura 8: Instancia de Empire ejecutándose

Si analizásemos con un analizador de tráfico lo que ocurre en la máquina M1 podríamos ver la primera conexión del nuevo agente contra el listener http_foreign.

Si visualizamos lo que ocurre en la máquina M2 veríamos que ha llegado una nueva sesión, la cual viene de la máquina V. La funcionalidad Session Pass ha funcionado y ahora ambas máquinas, tanto M1 como M2, pueden interactuar con la máquina V, cada una desde su agente.

Figura 9: Sesión pasada de M1 a M2

Como se puede ver PowerShell Empire tiene muchas formas de interactuar a través de sus diversos listeners. Una herramienta cada vez más utilizada en el Ethical Hacking y que merece estudiarla y ver todas sus posibilidades. Una herramienta que no debemos quitar de nuestra mochila de pentesting.

Más Referencias de PowerShell Empire

- PowerShell Empire: Postexplotación++ en redes Windows
- PowerShell Empire: El imperio contraataca
- PowerShell Empire: Trabajando el PtH ("Pass the Hassh") con Mimikatz
- PowerShell Empire: Usar Dropbox como canal de hacking en post-explotación
- PowerShell Empire: 'Hop' en Empire para meter saltos en agentes de post-explotación
- PowerShell Empire: Cómo integrar Empire Project con Metasploit
- PowerShell Empire GUI: Un interfaz gráfico al más puro estilo Armitage

Autor: 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.

lunes, mayo 20, 2019

(VdL) Vídeos del Lunes: Biohacking, una AI que escribe Harry Potter y un Oso viendo Eurovisión con Movistar Home y Twitter

Comienza una nueva semana, y para hoy quiero dejaros una lista con los vídeos que hemos ido publicando últimamente y que no os he sacado por este blog, que no quiero que se me olviden. Es verdad que los publico todos en mi canal de Youtube, pero por si no eres de la generación "Youtube", te los dejo por aquí.

Figura 1: (VdL) Vídeos del Lunes: Biohacking, una AI que escribe Harry Potter
y un Oso viendo Eurovisión con Movistar Home y Twitter

Como son vídeos hechos por compañeros de diferentes áreas, dejadme que os los clasifique por temas, para que sea más sencillo.

Aura y Movistar Home

En primer lugar, los vídeos del equipo de Aura y Movistar Home (Home as a Computer), en los que os traemos dos cosas. Lo primero es un vídeo que explica cómo se pueden pasar las vídeo conferencias que recibas en tu Movistar Home a la Televisión de tu casa. Esta es una característica que pusimos en producción en la release anterior, y que ya puedes utilizar en tu casa. Pruébala.


Figura 2: Pasar Vídeo conferencia de Movistar Home a Televisión

El segundo vídeo es un animación hecha con el Dr. Tech y nuestros queridos osos. En este caso se trata de un vídeo que explica otra de las funcionalidades que tiene Movistar Home en producción: La de ver la televisión siguiendo los mejores Twitts en "Second Screen" gracias al acuerdo que anunciamos con Twitter. Esta es otra característica que está disponible ya en tu Movistar Home.


Figura 3: Movistar Home y Twitter

Si quieres un Movistar Home - y eres de Movistar y vives en España -, ya sabes que se puso un precio de 3,29 € al mes, para que se pueda adquirir cómodamente financiado sin ningún coste extra.

LUCA: Big Data, Machine Learning & AI

Dentro del trabajo de divulgación que hacemos en la unidad de LUCA, se han hecho algunos vídeos que os quiero dejar. El primero, que ya os dejé en el post de Paridad Humana, cuenta el trabajo que ha hecho el estudio Botnik para crear un capítulo de Harry Potter con una AI entrenada.


Figura 4: Un capítulo de Harry Potter escrito por una AI

El segundo vídeo es una explicación del trabajo en Big Data que hemos hecho desde LUCA con la empresa PepsiCO. Un caso de estudio que está dentro la enorme lista de proyectos que hemos ido haciendo en este mundo con nuestros clientes. En la web de LUCA os dejamos todas estas experiencias.


Figura 5: LUCA & PepsiCO en Segmentación avanzada

ElevenPaths

Nuestros compañeros de ElevenPaths hicieron una charla de solo 16 minutos centrada el un tema muy interesante: El BioHacking. Compuesto por las palabras “biología” y “hacking”, se trata de una práctica cuyo propósito es el acercamiento de la ciencia a la ciudadanía. Tenemos varios #11PathsTalks anteriores en los que tratamos del tema, y varios post publicados indagando en esta ciencia, sin embargo. nunca hemos hablado anteriormente de aquellos que están destinados a ayudar a personas con algún tipo de discapacidad. 


Figura 6: ElevenPaths Talks Temporada 5. "BioHacking"

En este webinar se ve cómo el mundo del hacking logra cosas maravillosas, capaces de cambiar la vida de las personas. Abordamos esta ciencia desde la robótica, el Biohacking, BCI (Brain Computer Interface), y por supuesto, desde la seguridad en redes inalámbricas y en IoT.

Día de Internet

Ya para terminar me gustaría dejaros algo que se hizo para el Día de Internet, que como sabéis ha sido el día 17 de Mayo, el viernes pasado. En primer lugar me gustaría dar las gracias al jurado y al público que votó para que me dieran el premio a la mejor marca personal en Internet en la categoría de ciencia y tecnología. No pude ir a recogerlo porque me pilló de viaje por Chile, pero grabé un vídeo para estar allí, aunque fueran unos segundos.


Pero quería dejaros sobre todo el vídeo que hicieron nuestros compañeros para explicar cómo es un día sin Internet para muchas personas, algo que para nosotros es casi impensable.


Figura 8: ¿Te imaginas vivir sin Internet?

Y esto es todo por hoy, que tengáis una gran semana, productiva, divertida e inspiradora para que vuestra vida sea una semana más rica.

Saludos Malignos!

domingo, mayo 19, 2019

Una semana llena de actividades de tecnología y cultura: Digital Enterprise Show, AI, Batman, Familia & Tech, Big Data, Ciberinteligencia, IoT y el nuevo orden mundial

Aprovechando que es domingo y que me toca patinar, patinar, patinar, os dejo la lista de los eventos para la semana que viene, donde yo tendré un par de citas en Madrid y Barcelona. Una keynote en el Digital Enterprise Show, y una conferencia en el evento de mis amigos de MGS Seguros. Pero además tenemos muchas más cosas. Os dejo las más importantes que tengo en mente en las que tenemos algo que ver.

Figura 1: Una semana llena de actividades de tecnología y cultura
"Digital Enterprise Show, AI, Batman, Familia & Tech,
Big Data, Ciberinteligencia, IoT y el nuevo orden mundial

Lunes, 20 de Mayo:"Un nuevo contrato social para Internet" [Madrid] [Online]
Web: Para apuntarse y para seguir el evento online
En este nuevo encuentro de nuestro ciclo Tech & Society, debatiremos con José Manuel Alonso sobre la vigencia de los valores que sustentaban la web en sus orígenes, en qué se ha convertido y cómo rediseñarla en el futuro. ¿Podría un contrato social paliar los riesgos a los que estamos sometidos en la web? 
Martes, 21 a 23 de Mayo: Digital Enterprise Show [Madrid] [*]
Ese día voy a hablar de mis cosas de AI. Ya sabéis, de algo parecido a lo que conté en mi charla de AI...AI, AI, AI, AI. Pero en inglés, con alguna demo más rápida, y también metiendo en la coctelera lo que publiqué en el blog de "Human Parity" en Cognitive Intelligence
Figura 2: Stand de Telefónica en el DES Madrid
Además, tendremos un stand de Telefónica para atender a todos los que vengáis sobre nuestras soluciones de ElevenPaths, LUCA, IoT, Cloud o Comunicaciones empresariales. Más información en el blog de Think Big Empresas. 
Martes, 21 de Mayo: Smart Data Spain Summit [Madrid]
Web: 3S Smart Data Spain Summit
El congreso nacional para profesionales de empresas privadas y entidades públicas responsables de implantar o gestionar soluciones de Big Data, Business Intelligence o de gestión de datos en general. Antonio Pita, Head of LUCA Consulting & Analytics particpiará como speaker en la mesa redonda: “Big Data y Reporting: ¿Podemos conseguir un proceso ágil y eficiente en la entrega de datos del negocio?”.
Figura 3: Smart Data Spain Summit 2019

Martes, 21 de Mayo: Batman, felices 80 [Madrid] [G]
Web: Espacio Fundación Telefónica
Un día en el espacio de "Hay vida en Martes" en el que en el Espacio de la Fundación Telefónica en el que recordaremos el 80 cumpleaños del Hombre Murciélago con una debate interesante. Grande. Yo intentaré no perdérmelo.
Figura 4: Batman, Felices 80 años

Miércoles, 22 de mayo, 2019. Latch IoT [Online] [G]
Web: CodeTalk for Developers Latch IoT
Bajo el nombre de Latch IoT encontramos un proyecto relacionado con el hardware hacking gracias a la construcción de un nuevo firmware para el dispositivo Sonoff del fabricante Itead con el que podrás controlar tu hogar. En esta #CodeTalks4Devs: Latch IoT: controlando tu casa desde Latch nuestro compañero Álvaro Núñez-Romero nos explicará los detalles. Anteriormente, ya hemos hecho muchas cosas con Latch en el mundo IoT que es bueno que tengas en mente.
Figura 5: CodeTalk for Developers Latch IoT "Controlando tu casa desde Latch"
Debido a la creación del nuevo firmware para el dispositivo Sonoff del fabricante Itead, hemos creado un proyecto de hacking hardware bajo el nombre de Latch IoT. Este firmware requiere ser flasheado en la memoria del dispositivo de Itead y, a su vez, conectarse a través del protocolo MQTT al dispositivo con un servicio de nuestra herramienta Latch. 

Figura 6: Demo de Latch for MQQT del Concurso de plugins de Latch
Este servicio permite activarse, mediante WebHooks, evitando las llamadas constantes al servicio de Latch para comprobar el estado. Mediante este #CodeTalks4Devs intentamos mostrar una variación de nuestra aplicación Latch en el mundo físico, ideal para montar un entorno domótico.
Jueves, 23 de Mayo: GeoTecnología, nuevo orden Mundial [Madrid][Online][G]
Web: Registro gratuito para Espacio Fundación Telefónica y para ver por Streaming
En el siglo XXI, el poder mundial reside en el dominio de la tecnología y la ciencia, de ahí el empeño de las grandes potencias mundiales en el desarrollo de estos campos. Sin embargo, es necesario ser conscientes de los riesgos que conlleva esta transformación.
Figura 7: Geotecnología, el nuevo orden mundial en Madrid y Online

Viernes, 24 de Mayo: Familia y Tecnología [Madrid] [Online]
¿Qué es lo que realmente nos preocupa a los que educamos en tiempos de Internet? ¿Tiempo de pantalla, adicción, distracción, contenidos inadecuados, sobreexposición, impacto sobre aprendizaje, relaciones desvirtuadas? En este encuentro, reflexionaremos sobre todos estos temas junto a un completo grupo de expertos.

Figura 8: Familia y Tecnología en Madrid y Online

Viernes y Sábado 24 y 25 de Mayo: El futuro de la investigación criminal [Chile]
Web: Futuro de la investigación criminal
El próximo Viernes 24 y Sábado 25 de mayo, la Fiscalía Regional de Aysén y la Policía de Investigaciones de Chile, efectuarán un inédito simposio en el ámbito de la cibercriminalidad, denominado “El futuro de la investigación criminal”, el cual se desarrollará íntegramente en dependencias del cuartel de la PDI camino a Coyhaique Alto y donde se abordarán temas de actual vigencia como las criptomonedas y el lavado de activos o el cibercrimen y las nuevas formas del delito. Entre los ponentes estará nuestro compañero Gabriel Bergel, de ElevenPaths.
Viernes y Sábado, 24 y 25 de Mayo: CiberInteligencia [Alicante]
Web: CiberInteligencia Alicante
Este día nuestros compañeros de ElevenPaths José Manuel Ávalos y Cristina Martínez Aylagas estarán en este simposio para debatir sobre Cibercrimen, Ciberseguridad y Ciberinteligencia. En la ciudad de Alicante.
Y esto es todo lo que os traigo para esta semana que se nos viene. No os dejo información del evento que doy en Barcelona de MGS porque es un evento privado al que solo se puede ir por invitación, así que ... para la próxima.

Saludos Malignos!

sábado, mayo 18, 2019

La Paridad Humana (Human Parity) en Inteligencia Artificial Cognitiva

Hoy sábado os dejo un repost de un artículo que publiqué para el blog de DES Madrid, donde voy a participar con una charla. Para que no se pierda en el tiempo, y quede para siempre en este blog, que es más largo que mi vida. Y de paso le añado algunos enlaces y alguna imagen más, para que quede más completo.

La Paridad Humana (Human Parity) en Inteligenci Artificial Cognitiva

Las tecnologías de Inteligencia Artificial han avanzado mucho en los últimos tres a cinco años. Pero cada día que pasa se alcanza un nuevo logro, especialmente en los servicios cognitivos, que es de lo que quiero hablar hoy.

Figura 1: La Paridad Humana (Human Parity) en Inteligencia Artificial Cognitiva

Dentro de las capacidades de utilizar sistemas de inteligencia artificial para resolver problemas complejos, hay toda una rama dedicada a construir modelos y tecnologías que resuelvan los problemas cognitivos que resolvemos los humanos con relativa facilidad en nuestro motor de inteligencia – el cerebro – utilizando nuestros sensores de entrada y salida de datos: la vista, la voz, el oído, el tacto y el gusto.

Son estas disciplinas de Visión, Habla y Escucha, las que han estado desarrollándose durante los últimos años a una velocidad increíble. Y por una razón, que incluso nosotros mismos en Telefónica tomamos como guía:
“Durante muchos años los humanos hemos aprendido los interfaces de la tecnología y ya es hora de que la tecnología aprenda los interfaces de los humanos.”
Y por supuesto, lo han hecho. Existe una unidad de medición de la calidad de los modelos de Inteligencia Artificial para Servicios Cognitivos que se llama “Paridad Humana”. Es decir, utilizamos la Paridad Humana como tasa de error, por lo que si un servicio cognitivo se equivoca menos que un humano en uno de los problemas, decimos que ese servicio ya ha superado al ser humano.


Figura 2:  Presentación de Movistar Home en MWC 2018

Imaginemos un servicio de atención de llamadas telefónicas para los Estados Unidos. Imaginemos ahora que tenemos un equipo de humanos con Servicios Cognitivos de reconocimiento del habla en inglés para todos los ciudadanos que hablan en esa lengua en ese país. La tasa de veces que ese equipo de humanos falla al reconocer una frase de otros humanos es superior al que tendríamos si pusiéramos una Inteligencia Artificial a reconocerlos. Y es que la Paridad Humana en Speech Recognition en lengua inglesa se superó ya en el año 2017.

Figura 3: Paridad Humana en Speech Recognition

Ejercicios similares han ido pasando a lo largo de los últimos tres años. Fue ya en el año 2015 cuando los servicios cognitivos de visión artificial superaron la Paridad Humana en reconocimiento de objetos. Y hace no más de un año y unos meses, en Enero de 2018 se superó la Paridad Humana en comprensión lectora. Sí, puedes dar un texto a una Inteligencia Artificial y hacer todo tipo de preguntas que se pueden extraer de ese texto en base a la información que en él existe y empezar a preguntarle. Su tasa de error es menor que la de los seres humanos.


Figura 4: Skype Translator powered with AI

En Marzo de 2018 se consiguió superar la Paridad Humana en traducción inglés-chino, y supongo que a todos os emociona ver el uso de esta capacidad en Skype para que en tiempo real dos niñas de México y Estados Unidos se comuniquen sin barrera de idioma de por medio.

Y en este año otra límite ha sido superado. Una Inteligencia Artificial ha superado la Paridad Humana en lectura de labios, como si en una 2001 lo hubieran visto venir. El “pobre” HAL 9000 ya ha sido superado, por el proyecto de MIT Lab “Alter Ego” .

Figura 5: AlterEgo, desarrollado por el MIT Lab

Y esto se está masificando y comoditizando. Por ejemplo, los jóvenes ya no se sorprenden de los sitemas de Visión Artificial que se usan en SnapChat para ponerte orejas de gatito, o que usan los sistemas de Vídeo Conferencia para difuminar el fondo. O de que se reconozca a la gente en las fotografías.


En el caso de Microsoft Azure, hay servicios de Visión Artificial para reconocer a Celebrities, y ni el propio Kevin Mitnick y yo, cambiando sus gafas por mi gorro, fuimos capaces de engañarle. Y solo estamos en 2019. ¿Qué habrá en 2030?

Imaginemos lo que imaginemos para el 2030, está claro que debe contar con sistemas de Inteligencia Artificial con servicios Cognitivos muy superiores a los humanos, y probablemente tendrán incluidas cosas que nos parecen tan nuestras como “el instinto”, “la intuición” o la “imaginación”, que al final tienen un poco o un mucho de Analítica Predictiva de datos. 

Figura 7: No Lusers 171: "Emociones Intelectuales"

El futuro lo construimos – por ahora – nosotros, así que mientras que estas AI no tengan sueños, soñemos nosotros con un mundo en el que la tecnología nos hace mejores humanos.

Saludos Malignos!

PD: Me gustaría completar el artículo con el trabajo de Botnik Studios que ha utilizado una IA para reproducir el estilo de J.K. Rowling y escribir un capítulo de Harry Potter titulado "Harry Potter y el retrato de lo que parecía un montón de ceniza", que muestra cómo una AI puede aprender a escribir tal y como lo hace un humano concreto.



Figura 8: Harry Potter y el retrato de lo que parecía un montón de ceniza

viernes, mayo 17, 2019

TCAV: La lucha de Google contra el aprendizaje con sesgo en Inteligencia Artificial

No han sido pocas las voces que se ha denunciado el sesgo que muestran muchos modelos de Inteligencia Artificial que emplean grandes compañías al haber sido entrenados con datos que ya tenían ese sesgo, algo que es importante vigilar. Ya en una entrada anterior, se veía como Google Translate demuestra un claro sesgo de género con las traducciones de profesiones, pero no es la única herramienta con ese problema.

Figura 1: TCAV: La lucha de Google contra el aprendizaje con sesgo en Inteligencia Artificial

Hace poco surgieron grandes críticas al sistema de reconocimiento facial de Amazon, presente en departamentos de policías y en oficinas de inmigración, ya que esta herramienta presentaba una tasa de error mayor cuando trataba de identificar pieles más oscuras y rostros femeninos.

¿Cuál es el problema para que aparezcan estos sesgos?

Cuando se entrenan modelos de redes neuronales siempre surge el problema de interpretar cuáles son los conceptos que una red neuronal debe comprender para generar predicciones. Para abordar esto es necesario una profunda comprensión de la materia, ya que en la mayoría de modelos, los conceptos que los humanos entendemos como “decisivos” no tienen por qué ser los que una máquina interprete como relevantes.

Figura 2: Sesgos en profesiones en Google Translate


Por poner un ejemplo, un modelo destinado a predecir el cáncer de piel en fases tempranas, si no está correctamente ajustado, podría tomar como concepto relevante el tono de piel, si el algoritmo ignora los tonos de piel oscura podría suponer un fallo de diagnostico y un potencial riesgo de salud para cierto sector de la población.


Figura 3: Google I/O 2019 Keynote

Por esto es muy importante conocer los Conceptos de Activación en los modelos predictivos, tanto es así, que en el pasado Google I/O 2019, el propio CEO de la compañía, Sundar Pichai, dedicó una gran parte de la conferencia a hablar de los peligros que representa el sesgo dentro del mundo de la Inteligencia Artificial.

Figura 4: A more helpful Google for everyone by Sundar Pichai

Fue aquí donde anunció una de las soluciones con las que la compañía de Mountain View va a intentar frenar este problema: usando técnicas de interpretabilidad. Toda estas información que Sundar Pichai anunció, la dejó plasmada en un artículo que puedes leer online.

Definición de TCAV: Testing with Concept Activation Vectors

TCAV son las siglas de “Testing with Concept Activation Vectors” o “Pruebas con Vectores de Activación de Concepto”. Este nuevo método de interpretación permite comprender qué señales usan los modelos de redes neuronales para sus predicciones. Los métodos de interpretabilidad no son algo nuevo, pero la gran diferencia de TCAV es que muestra la importancia de los conceptos de alto nivel (por ejemplo color, género, raza, etcétera) para una clase de predicción frente a los pesos de cada característica de entrada de los métodos de interpretabilidad comunes.

Figura 5: Paper sobre TCAV de Google Research

Las técnicas de interpretabilidad llevan ya tiempo usándose en modelos de Machine Learning. Fundamentalmente, estas técnicas se basan en exploración de los datos antes de construir los modelos o interpretabilidad asociada a un modelo preexistente. El problema viene que la mayoría de modelos de Machine Learning están diseñados para operar con conceptos de bajo nivel como por ejemplo el color de un solo píxel o la relación con los píxeles adyacentes.

Aunque esta forma de generar los algoritmos de Machine Learning pueden ser muy útiles en detección de ataques de red, o técnicas de bypass de soluciones antimalware, como se explica en el libro de "Machine Learning aplicado a Ciberseguridad: Técnicas y ejemplos en la detección de amenazas" que escribieron mis compañeros, esto es radicalmente diferente a los conceptos de alto nivel que los humanos manejamos, como el color de las hojas de un árbol, el número de ruedas de un coche o las rayas de una cebra, y hace que esos algoritmos - especialmente en servicios cognitivios - sean susceptibles de cometer sesgos de género, raza o sexo.

Figura 6: Machine Learning aplicado a Ciberseguridad:
Técnicas y ejemplos en la detección de amenazas

Aquí es donde entra TCAV, una iniciativa del equipo de Google AI que permite una interpretación del estado interno de una red neuronal usando derivadas direccionales para cuantificar el grado por el cual un concepto definido por un usuario es importante para el resultado de una clasificación.

Funcionamiento de TCA

Poniendo el ejemplo que se detalló en la conferencia vamos a ver el funcionamiento interno de TCAV. Supongamos que tenemos un modelo entrenado para detectar cebras en una imagen. Querríamos saber cuales son las variables relevantes en el proceso de clasificación. TCAV nos permitiría entender si las rayas de la cebra son un detalle importante para la predicción del modelo, siendo verdad en este caso.

Figura 7: Modelo para reconocimiento de cebras + TCA

Ahora es donde entramos en el asunto del sesgo, pongamos que vamos a mirar un modelo entrenado con un Dataset de doctores. Si el modelo ha sido entrenado con demasiadas fotos de hombres con batas blancas y estetoscopios puede que determinen el género masculino como un factor relevante, demostrando que existe un sesgo en nuestro set de datos de entrenamiento. Aquí reside el verdadero poder de TCAV, el entender en lenguaje “Humano” los vectores de activación importantes de nuestro modelo para así tener conocimiento y control sobre este mismo.

Figura 8: TCAV descubre que ser hombre tiene un 37 % de importancia

No voy a detenerme mucho en los conceptos matemáticos detrás de esta técnica, para profundizar más en el tema os recomiendo consultar el paper de TCAV y tienes el código del proyecto en Github donde se puede ver con más detalle la implementación subyacente a esta técnica así como ejemplos prácticos para Tensorflow.

Conclusiones

TCAV es sin duda una buena herramienta para interpretar de forma sencilla el estado interno de un modelo de Deep Learning, pero no es la solución a todos los problemas, las compañías van a tener que seguir haciendo grandes esfuerzos para eliminar los sesgos dentro de sus modelos de Inteligencia Artificial. Sin embargo, esta técnica es un primer paso muy importante para solucionar un problema cada vez más evidente en este nuevo mundo.

Autor: Lucas Fernández Aragón (@lucferbux) investigador en el equipo de Ideas Locas.

jueves, mayo 16, 2019

Sappo para Twitter: Cómo usar Sappo para "silenciar" a un Twittero

Hace un año, en la conferencia de Open Expo 2018, di una charla en la que presentaba una actualización de nuestra herramienta para hacer Spear Apps to Steal OAuth Tokens que bautizamos como Sappo. Le habíamos añadido en el equipo de Ideas Locas en ElevenPaths la capacidad de controlar una cuenta de Twitter a partir del robo de un token OAuth. Hice la charla allí, pensando que la iban a grabar pero no, no fue así, así que se perdió como las lágrimas en la lluvia.

Figura 1: Sappo para Twitter: Cómo usar Sappo para "silenciar" a un Twittero

Como este año voy a volver a ir a Open Expo Europe 2019, he pedido que graben la charla, porque también voy a contar algo nuevo de lo que no hemos hablado nada por ahora. Pero antes, para que tengáis la información completa, os voy a contar básicamente qué es lo que hicimos el año pasado. Allí presentamos una ampliación de Sappo con objetivo Twitter  para conseguir:
  1. Ver, Enviar y Eliminar Mensajes privados en Twitter.
  2. Publicar y Eliminar Twitts en el time-line de la cuenta controlada.
  3. Hacer unfollows de la gente a la que sigue la cuenta controlada.
  4. Hacer que dejen de seguir los followers a la cuenta controlada.
Antes de comenzar a ver cómo funciona el proceso, os dejo las referencias para que leáis lo que ya hemos publicado de Sappo, RansomCloud O365 y la amenaza de OAuth.

[Post] Google alerta de las apps NO verificadas al pedir permisos OAuth. Microsoft Office 365 aún debe mejorar un poco.
[Post] OAuth: La amenaza invisible

Y, como no, la charla de la RootedCON 2016 donde hablamos de este tipo de ataques por primera vez y mostramos Sappo al público.


Figura 2: RootedCON 2016 "Sólo hay que besar un Sappo"

Y ahora vamos a ver los diferentes ataques para conseguir hacer todo lo que se puede hacer con Twitter. Para ello, como en los casos de Gmail, de Outlook y de Office 365, primero es necesario crear una app en Twitter que utilizaremos después en Sappo

Figura 3: Zona de creación de apps en Twitter para developers

Para ello hay que ir a la sección de apps, convertir la cuenta de Twitter en Developer Account y rellenar el formulario de tu app. En este artículo tienes explicado el proceso: "How to create a Twitter app in 8 easy steps". Nosotros la creamos, y la dimos de alta en Sappo, para poder utilizarla como los demás, así que la vais a ver utilizada en nuestras demos en los vídeos.

1.- Toma de control de la cuenta de Twitter con Sappo

Para tomar control de la cuenta de Twitter, es necesario que la víctima de permisos a la App de Twitter maliciosa que hemos creado para Sappo, para ello, hacemos un ataque se Spear Phishing que lleva un enlace a la petición de permisos de acceso, tal y como se explica en el artículo de Sappo que publiqué en el año 2016


Figura 4: Sappo para Twitter. Robo de token OAuth de cuenta Twitter

En este vídeo tienes el proceso completo, así que una vez que se tiene el token OAuth concedido, podemos continuar con el resto de los ataques. Un punto interesante es que los tokens de Twitter duran una infinidad de tiempo como válidos.

2.- Ver, Eliminar y Publicar Tweets en el Tiem-Line

Una vez que ya tenemos el token validado en Sappo, se puede proceder a gestionar el Time-Line de la cuenta de Twitter. Es decir, se pueden ver todos los mensajes, se pueden eliminar y se pueden publicar nuevos mensajes que saldrán en el Time-Line. En este vídeo se puede ver cómo funciona esto desde Sappo.


Figura 5: Sappo para Twitter. Ver, Eliminar y Publicar mensajes en el Time-Line

3.- Forzar la cuenta a dejar de seguir otras cuentas
Una de las opciones que tiene Sappo para Twitter es que puede forzar a la cuenta controlada a dejar  de seguir a cualquier cuenta que esté siguiendo en ese momento, con lo que no le llegaría ningún mensaje publicado por ninguna de esas cuentas que ahora seguía. 


Figura 6: Sappo para Twitter. Hacer unfollow a todas las cuentas que se siguen

Además, seguro que alguno de los que sufren el "unfollow" se van a enfadar y ponerle a caldo, que buenos son los twitteros con los "unfollow".

4.- Hacer que la cuenta pierda todos sus followers

Esta es una de las características que más daño puede hacer al dueño de la cuenta, ya que se trata de que pierda todos sus followers. El truco es bastante sencillo. Desde la Sappo, usando la App de Twitter autorizada con el Token, se bloquea y desbloquea a todos los followers. El resultado es que cuando se hace un bloqueo a una cuenta, automáticamente se le fuerza a la cuenta a hacer el unfollow, y aunque luego se hace el desbloqueo de la cuenta, el sistema ya no hace el follow otra vez.


Figura 7: Sappo para Twitter. Eliminar todos los seguidores de una cuenta

Si se quiere rehacer esta operación, cada usuario que ha sido bloqueado y desbloqueado, debería hacer un follow otra vez, con lo que el proceso no sería rápido, ni sencillo, y a una cuenta con muchos followers que haya tardado años en hacerse con sus seguidores, le puede hacer mucho daño.

5.- Ver, Borrar y Enviar Direct Messages

Por supuesto, también se pueden gestionar los mensajes privados que envía y recibe la cuenta, como Direct Messages. El resultado final es que se puede manipular completamente todo desde Sappo.


Figura 8: Sappo para Twitter. Ver, Eliminar y Enviar Direct Messsages

Eliminar Apps aprobadas en tu cuenta Twitter

Al final, si se tiene un Token OAuth autorizado en Twitter se puede hacer de todo, por lo que si tienes una cuenta de Twitter deberías revisar a qué Apps le has dado permiso. Estas se pueden ver en https://twitter.com/settings/applications. Recuerda que un token OAuth en Twitter aprobado puede durar eones... Y con Sappo se le puede dejar sin Tweets publicados, sin cuentas a quién seguir, sin followers y sin Direct Messages. Totalmente en silencio.

Saludos Malignos!

miércoles, mayo 15, 2019

WordPress: Cómo buscar {y encontrar} 0days en plugins con Taint Analysis

Cuando el equipo de Ideas Locas estaba en plena expansión, tocamos un tema derivado de algún trabajo anterior. La idea estaba relacionada con el mundo de la Seguridad en WordPress, el CMS más utilizado del mundo. La idea tenía de fondo el mundo de la seguridad, y la búsqueda de vulnerabilidades en primer plano, algo que nos podía ayudar a mejorar el servicio de Faast for WordPress de ElevenPaths.

Figura 1: WordPress: Cómo buscar {y encontrar} 0days en plugins con Taint Analysis

Me gusta explicar en las charlas que doy, qué es eso de Ideas Locas, pero éste es un claro ejemplo de la parte de: “Conociendo los detalles de nuestros productos y servicios se puede ayudar con alguna idea que los mejora”. El artículo de hoy pretende mostrar un trabajo que llevamos a cabo hace ya un año y algo, y que ahora continúan otros compañeros, en concreto en el centro Tegra de Galicia. Esta semana hemos liberado el artículo del trabajo que hicimos.

Figura 2: Libro de Máxima Seguridad en WordPress

En aquel entonces, Chema Alonso y yo habíamos estado trabajando con Daniel Martín para completar, y dejar como lo dejamos, el libro de Máxima Seguridad en WordPress de 0xWord, para lo que aportamos mucho trabajo de investigación. Dicho trabajo dio sus frutos con nuestro querido WordPress in Paranoid Mode, pero para lo que publicamos muchos artículos de cómo íbamos avanzando. En esta charla, se recogen muchos de lo que fuimos trabajando entonces, y que están incluidos todos en el libro.


Figura 3: Hardening WordPress like a hacker

La idea de este trabajo fue realizar diferentes comprobaciones sobre el código fuente de los diferentes plugins de Wordpress públicos. Este análisis nos puede permitir descubrir nuevas vulnerabilidades que puedan existir en estos plugins de cualquier tipo y que, por alguna razón, no han sido evaluados por sus desarrolladores de forma intensiva.

Encontrar vulnerabilidades en el core de Wordpress se hace cada vez más complejo, pero los sitios que utilizan Wordpress utilizan muchos plugins externos a éste, por lo que son estos plugins los vectores de ataque más utilizados. La idea inicial del estudio pretendía ser una pequeña estimación de lo que se podía lograr, pero acabó, como se verá, siendo otra cosa.

Buscando bugs en código fuente

Un día le enseñé a mi compañero de trabajo, por aquel entonces, Santiago Hernández Ramos, la investigación que hice tiempo atrás sobre búsqueda de vulnerabilidades en repositorios de código abierto. Esto acabó siendo un artículo que publiqué junto al Dr. Alfonso Muñoz - autor del libro de "Cifrado de las comunicaciones digitales: de la cifra clásica a RSA 2ª Edición" - llamado “Detección de funciones inseguras en repositorios de software libre” y que era una formalización del trabajo de OSB-Rastreator que publiqué en este blog.


La idea era ir descargando el código fuente de los paquetes de software accesibles desde una distribución de GNU/Linux como, por ejemplo, Ubuntu. Ese código fuente descargado se iba analizando por patrones con el objetivo de descubrir funciones inseguras en Lenguaje C.


Figura 5: Conferencia en el CyberCamp sobre OSB-Rastreator

Una vez detectadas se buscaba la forma de automatizar la detección de la vulnerabilidad, ya que la función podía ser o no vulnerable. Los resultados se pueden consultar en el artículo y se puede ver alguna vulnerabilidad que se formalizó.

Figura 6: Vulnerabilidad descubierta por OSB-Rastreator

A Santiago, que es una persona con una gran inquietud y con muchas ganas de investigar, le resultó interesante y empezamos a darle una vuelta a una sugerencia del boss. Tras una comprobación que hizo Santiago, vimos que era viable descargar el código fuente de los plugins y, al final, es código PHP que se podría evaluar. Aquí comienza la historia de este trabajo.

Trabajando con los plugins de WordPress: Taint Analysis & Taint Propagation

La idea es sencilla, se propone un sistema de auditoría de código de los plugins existentes en el repositorio oficial de WordPress. Se podría extrapolar a plugins que se encuentren fuera del ‘repo’ oficial, por ejemplo, en Github.

El sistema realiza un recorrido por las extensiones y aplica diferentes técnicas de análisis estático sobre su código fuente. El objetivo principal consiste en la detección de un conjunto de patrones inseguros, los cuales, tal y como ocurría en el anterior trabajo, pueden desembocar en una potencial vulnerabilidad. Lo potente de esto es que descubrir vulnerabilidades en el código sobre versiones públicos y últimas hacían que con mucha probabilidad hablásemos de 0days.

Después de la detección del sistema, nuestra idea era que un experto analizase el resultado. Esto siempre debe ser así, ya que la herramienta automática puede provocar falsos positivos. A continuación, presentamos el artículo del trabajo el cual ha sido publicado recientemente.


En el paper se puede visualizar un apartado de ‘Estado del arte’ en el que se hablan de diferentes estudios sobre esta temática. Los resultados parecen ser en todos los casos más que interesantes. También hay una parte de introducción mostrando diferentes conceptos sobre diferentes análisis que el sistema va ir haciendo antes de lanzar las comprobaciones de seguridad o el análisis de código estático.

Es importante hacer hincapié en el Taint Analysis. Este tipo de técnica permite conocer qué variables dentro de una aplicación tiene interacción directa o indirecta con el usuario. En otras palabras, conocer qué valores puede controlar o manipular un atacante se conoce como Taint Propagation. Es importante conocer cómo la información entra en la aplicación y fluye a través del mismo. De este modo se podrá identificar y validar los datos de entrada de una aplicación. El Taint Analysis es fundamental en esta idea y en este sistema.

Arquitectura del sistema

La arquitectura básica del sistema se puede desglosar en la siguiente imagen. En esta imagen se puede observar diferentes partes. La arquitectura se puede dividir en diferentes subsistemas, como vamos a ir haciendo.

Figura 8: Subsistemas de la arquitectura del sistema creado para el paper

Lo primero es entender la importancia en el sistema del crawler que permitirá recopilar todo el código fuente que habrá que modelar y, posteriormente, analizar. En el sistema completo éste es el subsistema más sencillo, que se encarga de localizar el repositorio y realizar la descarga del plugin.

El segundo susbsitema es el modelado. Éste necesita de un lexer y un parser. El lexer se encargará de generar tokens del código fuente obtenido por el crawler. Cada uno de los tokens devueltos es un array con un identificador, el valor del token y el número de línea.

Además, del lexer se implementa el parser. En este caso, se recorre la liste de tokens producida en el paso anterior, identificando mediante el campo “nombre” los tokens más importantes. Para cada uno de los ficheros analizados, se crea una pila de dependencias que permitirá determinar el ámbito de la función o estructura del lenguaje en la que se encuentran dos variables distintas.

Figura 9: Flujo de ejecución de los subsistemas

Posteriormente, se realiza el análisis de control de flujo y el análisis de flujo de datos. En este último es dónde interviene el Taint Analysis. Eso sí, con algunos matices.

Evaluación y resultados

En el paper se puede encontrar un estudio sobre 60 plugins de Wordpress que han sido analizados a través de este sistema.
Figura 10: Plugins evaluados en el estudiio

Los resultados fueron bastante reveladores encontrando algunas vulnerabilidades. Como solo era un estudio, buscamos ejemplos de las vulnerabilidades en tecnologías web más comunes, que se utilizan en ataques como son SQL Injection, por supuesto, ataques de Client-Side basados en Cross-Site Scripting, y algunos ataques comunes en el Hacking de Web Technologies. Se buscaron de forma automática las siguientes:
• Patrones XSS.
• Patriones SQLi.
• Patrones LFI y RFI.
• Patrones de ejecución de código.
Con este análisis sobre solo un número reducido de plugins, se descubrieron 5 vulnerabilidades de tipo 0day con este motor desarrollado para el estudio, que fuero reportadas para que se corrigieran.

Figura 11: 0days descubiertos durante el estudio

Las vulnerabilidades tienen su CVE, como puede verse en el cuadro anterior. Lo interesante es ver que hay plugins que se encontraban en más de 1 millón de instalaciones de Wordpress. Digo interesante por la ayuda a la mejora de la seguridad que este tipo de sistemas proporciona.

Faast for Wordpress

Como ya sabéis, hace tiempo que en ElevenPaths se lanzó una versión especial de Faast - nuestro servicio de pentesting persistente, para dominios con WordPress al que llamamos Faast For WordPress y del que hablamos por aquí en el blog en el artículo titulado: "Faast for WP: Pentesting as a Self Service para tu WordPress".


Figura 12: Demo de Faast for WordPress

A día de hoy, el trabajo de análisis de plugins de WordPress en búsqueda de 0days se utiliza para alimentar el conocimiento de este producto, y de manera continua reportamos los bugs que vamos descubriendo, por lo que aquel trabajo se ha convertido en algo que sirve no solo para nosotros sino para todos los que usan los plugins con vulnerabilidades que se van parchenado, y eso es reconfortante.

Más Referencias:

[Libro] Máxima Seguridad en WordPress
[Libro] Hardening GNU/Linux
[Paper] WordPress in Paranoid Mode (Parte 1)
[Paper] WordPress in Paranoid Mode (Parte 2)
[Paper] Detección y estimación de vulnerabilidades en WordPress
[Vídeo] Proteger WordPress con Latch
[Vídeo] Proteger WordPress con Latch Cloud TOTP
[Vídeo] MyWordPress in Paranoid Mode (conferencia Chema Alonso)
[Vídeo] MyWordPress in Paranoid Mode (ElevenPaths Talks de Pablo González)
[Vídeo] Ejemplo de uso de Latch en WordPress
[Vídeo] Hardening WordPress like a hacker
[Vídeo] WordPress Demo XSS en WP-UserAgent
[BlogPost] My WordPress in Paranoid Mode
[BlogPost] Máxima Seguridad en WordPress
[BlogPost] Hackear un WordPress con Network Packet Manipulation
[BlogPost] Fortificar comunicación entre WordPress y MySQL
[BlogPost] WordPress Latch Enforcement
[BlogPost] WordPress aún más seguro con Latch Lock After Request
[BlogPost] Fortificar WordPress frente a ataques de fuerza bruta
[BlogPost] Ataques (al corazón) de tu WordPress
[BlogPost] Cómo robarle las contraseñas a los administradores de WordPress
[BlogPost] Agrupar el control de varios WordPress con un solo Latch
[BlogPost] WordPress: Time-Based XSPA (Cross-Site Port Attack)
[BlogPost] Cómo debería ser un WordPress un poco más seguro
[BlogPost] WPHardening: Automatizar fortificación de WordPress
[BlogPost] Protege los borradores de los artículos de tu WordPress
[BlogPost] Registro de cuentas en WordPress públicos
[BlogPost] Riesgos en la ejecución de tareas de Cron
[BlogPost] WordPres: XSS en plugin WP-UserAgent
[BlogPost] Listar los plugins de WordPress en un pentest
[BlogPost] WordPress: SQL Injection en Scarcity Builder Plugin
[BlogPost] Docker WordPress in Paranoid Mode
[BlogPost] Faast for WordPress

Autor: 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.

Entrada destacada

Seis recomendaciones personales de libros de @0xWord para disfrutar y aprender

Este verano pude disfrutar de la lectura de un libro que me encantó. El libro de Factfulness que me había regalado mi compañera Beatriz Ce...

Entradas populares