domingo, mayo 20, 2018

Mi conferencia en X1Red+Segura en vídeo: Datos en tiempos de Cambridge Analytica

Ayer sábado tuve la oportunidad de participar una vez en las jornadas de X1Red+Segura que se organizaron en las instalaciones de la Universidad Politécnica de Madrid en la Ciudad Universitaria y aproveché para hablar de los "Datos en tiempos de Cambridge Analytica".  Pero además aprovecho para dejaros un par de vídeos más para animar el fin de semana.

Figura 1: Mi conferencia en X1Red+Segura en vídeo: Datos en tiempos de Cambridge Analytica

Es una charla que solo había hecho una vez antes, durante el Talent Show de México y no está publicada en vídeo, así que aproveché para hacerla otra vez y que quedara grabada para todos en Internet y subirla a Mi Canal Youtube que luego se me olvidan y se pierden para siempre.

A post shared by Chema Alonso (@chemaalonso) on

La esencia de la charla ya la conocéis, está casi todo recogido en el artículo que escribí hace no demasiado tiempo en este blog y que titulé: "Cambridge Analytica no es ni siquiera la puntita del iceberg en el mundo de hoy", y que podéis leer antes de ver la charla - además de ver alguna de las conferencias que van enlazadas que tienen mucho que ver con lo que cuento en la charla de hoy -.


Figura 3: Datos en tiempos de Cambridge Analytica

La charla la tenéis en vídeo, pero como la grabación que tengo es la del streaming de Internet, para que podáis seguirla un poco mejor he subido las diapositivas que utilicé a mi canal de SlideShare, así que podéis ir siguiendo las diapos a mejor calidad al tiempo que seguís la charla.


Además, como es un domingo más que interesante en términos de deporte, con las carreras de MotoGP, la final del Máster ATP 1000 de Roma de tenis en el que Rafa Nadal se juega otro título, y el Real Madrid en la final de basket de la Final Four, os dejo un par de vídeos que tienen que ver con el deporte.


El primero de ellos es el que nos grabaron los compañeros de comunicación con los deportistas de invierno de la Federación Española de Deportes de Invierno para darnos unos consejos de seguridad con las caídas. Parece que el accidente con mi monopatín que os conté en el post "Surfing the heaven" va a dar mucho juego a los compañeros más gamberros.


Figura 6: Deportistas de Invierno "Consejos para caídas"

Además, este otro que me encanta, en el que cuatro jugadores del Real Madrid echan un partidito amistoso con un rival digno de ellos, 100 niños de Movistar Likes que les pusieron en aprietos y les sacaron muchas sonrisas.


Figura 7: Real Madrid contra 100 niños

Y nada más, ahora a disfrutar el domingo. Yo ya he hecho "Chemagdalenas", voy a hacer algo de deporte ahora, luego a terminar la colección de cromos con Mi Hacker que hacemos juntos, ver algo de deporte en la tele y disfrutar un poco de las horas del domingo con cosas lúdicas. Disfruta tu domingo.

Saludos Malignos!

sábado, mayo 19, 2018

Nuestras conferencias esta semana en @elevenpaths @luca_d3 & @0xWord

Aprovechando el fin de semana os dejo la lista de las conferencias en las que vamos a participar desde ElevenPaths, LUCA Data-Driven Decisions y 0xWord. Además, aprovecho para recordaros que hoy mismo estaré dando una charla en X1Red+Segura en Madrid, donde además podrás adquirir los libros de 0xWord. Yo me entretendré a firmar los que queráis, para que tengáis un "original". La charla de hoy, la doy a las 11:00 y la puedes seguir online por este canal de streaming.

Figura 1: Nuestras conferencias esta semana en ElevenPaths, LUCA D3 & 0xWord

El primero de los eventos para esta semana tiene lugar en Caixa Forum de Madrid y lo organiza la Fundación Querer. En este evento participaré con una charla sobre la educación de los niños, y mi visión de que deberíamos ser educados todos haciendo uso del Big Brain que nos han regalado a nuestra generación.

Figura 2: 21 de Madrid Fundación Querer

El 23 de mayo tenemos un nuevo CodeTalk For Developers en ElevenPaths, en esta ocasión dedicado a las Técnicas de Air Profiling. Será por la tarde, y podrás ver cómo se puede explotar la información que circula por protocolos no seguros en redes WiFi. Tienes más info en la web del seminario.

Figura 3: Técnicas de Air Profiling

Los días 23 y 24 de mayo, en México, tiene lugar el InfoSecurity Summit, donde además de nuestro amigo Kevin Mitnick (que lleva alguno de nuestros juguetes de ElevenPaths), participará nuestro compañero Fabián Chiera con una charla de cómo utilizar BlockChain en el mundo de la Ciberseguridad. Tienes más información en la web de la sesión.

Figura 4: ElevenPaths & Telefónica Business Solutions en InfoSecurity México

El día 24 de mayo, en el Espacio de la Fundación Telefónica en la Gran Vía de Madrid, tendrá lugar el evento de Big Data for Social Good de LUCA, donde tenemos una agenda con varias charlas en las que las soluciones de Big Data se aplican a mejorar nuestra vida. Yo participaré con una pequeña sesión de "Conectar a los desconectados". Ahora hemos abierto el registro al público y puedes reservar tu plaza con el código: WILDWORLD0518


Figura 5: Big Data for Social Good en Madrid

Y por último, el Sábado 26 de Mayo - día de la final de la Champions League - tendrá lugar la edición EastMadHack 2018 en Arganda del Rey. Una jornada de día entero en el que disfrutar el hacking en la zona éste de Madrid. Allí habrá un stand de 0xWord y están entre los ponentes algunos de sus autores, como Daniel Echeverri, que es autor de los libros "Python para Pentesters", "Hacking con Python" y "Deep Web: Tor, Freenet & I2P - Privacidad y anonimato".

Figura 6: EastMadHack 2018 en Arganda del Rey

Y esto es lo que tenemos para esta semana, donde como podéis ver, tenemos un poco de hacking, un poco online, un poco de BigData, un poco en México y en Madrid y un poco de educación para todos. No está mal.

Saludos Malignos!


viernes, mayo 18, 2018

Hashtopolis: Cómo crackear contraseñas de forma distribuida

Una de las acciones más comunes durante la realización de un proyecto de Ethical Hacking, es el crackeo o descifrado de las contraseñas que el analista va encontrando en diferentes partes de los sistemas objetivo o intermedios, de los que va recabando hashes en diferentes algoritmos con una credencial válida que pueda dar paso al siguiente nivel. Y a veces es un proceso lento si la contraseña es robusta, el algoritmo de hashing es complejo o no tenemos suficiente potencia de cómputo.

Figura 1: Hashtopolis: Cómo crackear contraseñas de forma distribuida

En este artículo os traigo una herramienta muy interesante que nos permite, de una manera relativamente sencilla, utilizar hashcat para realizar tareas de descifrado distribuyendo el trabajo entre diferentes ordenadores que se encuentren en una misma red.

Instalando hashtopolis y configurando el entorno

La herramienta que vamos a utilizar para realizar esta tarea se llama Hashtopolis, y se puede acceder a ella en su repositorio de GitHub. Es un sistema cliente-servidor que permite distribuir tareas de hashcat entre diferentes ordenadores.

Figura 2: Hashtopolis en GitHub

Hashtopolis requiere la instalación de un servidor de aplicación (apache2) que albergará una aplicación web que permitirá al usuario gestionar todos los equipos que se estén utilizando para completar las tareas. En los equipos que se deseen utilizar para realizar las tareas, se debe instalar un agente, que no es más que un pequeño programa que se encargará de comunicarse con el servidor para recibir órdenes.

Instalando y configurando el servidor

Lo primero que vamos a hacer es instalar y configurar el servidor, para ello se recomienda utilizar una máquina virtual con un sistema operativo Ubuntu o Debian. Vamos a comenzar por la instalación de las dependencias principales que requerirá la aplicación, para ello ejecutamos los siguientes comandos:
$ sudo apt-get update 
$ sudo apt-get install mysql-server 
$ sudo apt-get install apache2 
$ sudo apt-get install libapache2-mod-php php-mcrypt php-mysql php * 
* (Si se utiliza php7.2 y se tiene problemas con la instalación de php-mcrypt, recomiendo que consultéis este enlace) 
$ sudo apt-get install git curl
Una vez instaladas todas estas dependencias, vamos a descargar hashtopolis desde su repositorio de GitHub para configurar la aplicación web. A continuación, se muestra el comando necesario para realizarlo.
$ git clone https://github.com/s3inlc/hashtopolis.git 
$ cd hashtopolis/src 
$ sudo mkdir /var/www/hashtopolis 
$ sudo cp -R * /var/www/hashtopolis/

$ cd /var/www 
$ sudo chown -R www-data:www-data hashtopolis
Una vez descargada la herramienta, y movida la aplicación web al directorio de servidor de aplicación, vamos a realizar algunas configuraciones en el directorio de apache2. Lo primero, abrimos el siguiente fichero e introducimos el nombre de archivo index.php a continuación de index.html.
$ sudo pico /etc/apache2/mods-available/dir.conf
También vamos a configurar el directorio (hashtopolis) que hemos creado dentro de /var/www como DocumentRoot. Para ello introducimos el comando que se muestra a continuación, y en la línea donde pone DocumentRoot /var/www/html lo modificamos por DocumentRoot /var/www/hashtopolis.
$ sudo pico /etc/apache2/sites-enabled/00*
Una vez realizadas estas configuraciones, si se han seguido todos los pasos, tras reiniciar apache2 mediante el comando sudo service apache2 restart deberíamos ver algo similar a la imagen que se muestra a continuación.

Figura 3: Inicio de la instalación de Hashtopolis

En este punto tenemos casi listo nuestro servidor, únicamente queda la configuración de la base de datos y añadir un usuario para utilizar la aplicación web, vamos a ello. Lo primero vamos a instalar phpmyadmin para que resulte más sencilla la administración.
$ sudo apt-get install phpMyAdmin
Dependiendo de la versión que estéis instalando es posible que tengáis que añadir la sentencia Include /etc/phpmyadmin/apache.conf al final del fichero /etc/apache2/apache2.conf. Una vez instalado phpmyadmin accedemos mediante el navegador introduciendo la dirección IP de nuestra máquina /phpmyadmin. Dentro de phpmyadmin vamos a añadir un nuevo usuario para que utilice hashtopolis, a continuación, se muestra la configuración del usuario.

Figura 4: Añadiendo un usuario en Hashtopolis

Una vez añadido el usuario, volvemos a la página de inicio de hashtopolis introduciendo la dirección IP de nuestra máquina en el navegador y comenzamos la instalación. Los parámetros que se requieren para la instalación se muestran en la siguiente imagen.

Figura 5: Parámetros de instalación

Si la creación de las tablas en la base de datos ha sido satisfactoria, hashtopolis nos mostrará una pantalla para crear un usuario administrador en la aplicación web.

Figura 6: Creación de usuario administrador

Tras crear el usuario administrador, nos aparecerá la pantalla de acceso en el navegador. Introduciendo los datos del usuario administrador tendremos acceso al sistema.

Figura 7: Sistema de Hastopolis

En este punto tendríamos el servidor completamente instalado y funcional. Ahora podemos pasar a la segunda parte. Añadir los agentes a nuestra red.

Instalación de los agentes

Los agentes son los programas que se encargarán de comunicarse con el servidor que hemos configurado previamente para recibir tareas que realizar, y deben instalarse en cada uno de los equipos de la red que queramos que participen en el proceso. Vamos a ver como instalar un agente en un equipo Ubuntu.

Lo primero que debemos tener instalado es hashcat, para ello, basta con ejecutar el siguiente comando:
$ sudo apt-get install hashcat
Una vez instalado hashcat, lo único que tendríamos que hacer es seguir las instrucciones que nos marca la Wiki del proyecto.

Figura 8: Wiki de hashtopolis

Tras ejecutar ese conjunto de comandos, vamos a la aplicación web que hemos configurando anteriormente y pulsamos sobre crear nuevo agente.

Figura 9: Añadir nuevo agente

Como puede observarse hay dos agentes disponibles, uno escrito en C Sharp y otro en Python. Vamos a utilizar el de C Sharp. Pulsamos el botón Create del New voucher y a continuación ejecutamos el siguiente conjunto de comandos.

Figura 10: Creación del agente de C# usando Mono

Si se han seguido todos los pasos anteriores, en este punto el agente estaría activo haciendo pulling cada ciertos segundos al servidor para recibir tareas.

Creación de una tarea para probar el agente

La características principales de la creación de tareas pueden encontrase en la Wiki del proyecto de hashtopolis, en este caso, veremos como crear una tarea sencilla para descifrar un Hash md5. En el siguiente video se muestra como crear una tarea y asignársela a un agente Python para que crackee una lista de hashes md5 haciendo fuerza bruta con un diccionario. Hay que tener en cuenta que el servidor y el agente no están en la misma máquina.


Figura 11: Demo de Hashtopolis

Como puede observarse, el uso de esta herramienta es una forma muy buena de aprovechar todos los recursos computacionales que tengamos para realizar una única acción de manera distribuida. Podemos crear listas muy amplias de contraseñas cifradas y asignarle la tarea a varios agentes que comenzaran a descifrar de manera coordinada, sin estar alojados sobre el mismo ordenador y sin disponer del mismo hardware o arquitectura.

Autor: Santiago Hernández, Security Researcher en ElevenPaths

jueves, mayo 17, 2018

El primer dispositivo IoT de la historia fue una máquina de Coca-Cola

A raíz de un comentario en el artículo sobre el primer ordenador personal de la historia publicado en este mismo blog, donde hicimos una broma sobre que el Altair 8800 era el primer dispositivo IoT, nos hemos acordado de una curiosa historia que habla de la primera máquina que podríamos definir con ese término. Bueno, en este caso Internet aún estaba en su primera fase en la que se denominaba Arpanet (¿entonces la podríamos llamar AoT?) … y el primer dispositivo que digamos era “algo cotidiano” con conexión a dicha red, fue nada más y nada menos que una máquina de refrescos.

Figura 1: El primer dispositivo IoT de la historia fue una máquina de Coca-Cola

El departamento de las ciencias de la computación de la super conocida Universidad de Carnegie Mellon allá por los años 70’s, mantenía una máquina de Coca-Cola que vendía las botellas (eran las de cristal con la forma característica de la marca) 10 céntimos más baratas que cualquier otra máquina en el campus. Como los programadores “de verdad” no funcionan sin cafeína ;) dicha máquina era muy popular entre todos ellos.

Figura 2: Máquina dispensadora y botellas de Coca-Cola de los años 70

A mediados de los 70’s, con la expansión de dicho departamento, la nueva localización de las oficinas de los empleados se situaba lejos de la habitación de los terminales, que, de forma estratégica, era donde se ubicaba la máquina de Coca-Cola. Tener que ir hasta la donde estaba la máquina y ver que, o no había refrescos o bien la acababan de reponer (los reponedores de la máquina eran voluntarios del campus los cuales no tenían ningún calendario establecido, incluso había un manual de cómo se debía reponer), y por lo tanto no estaban lo suficientemente frías, era algo que un ingeniero no podía permitirse.

Un día, un par de empleados decidieron que había que buscar una solución a este gran problema. Y claro está, pasaba por utilizar la electrónica y la informática. Por lo tanto, decidieron instalar micro interruptores en cada una de las seis bandejas de la máquina, de forma que pudieran determinar el número de latas en cada una de ellas. Luego conectaron los micro interruptores a la red local del departamento por Ethernet hasta el servidor principal, que por aquella época era el clásico PDP-10.

También crearon un pequeño programa que informaba, a través de los datos facilitados por los micro interruptores, del estado de las bandejas y por lo tanto del número de latas de la máquina. Pero no sólo informaba si una columna estaba vacía, sino que además era capaz de comprobar si las botellas estaban frías.

Figura 3: Ordenador PDP-10 con 6 módulos de memoria

Todo esto era posible ya que el programa tenía un registro de cuándo la máquina de Coca-Cola fue recargada por última vez y además en qué bandeja. Con esta información el programa era capaz de informar sobre qué columna tenía botellas frías y cuáles no, en base a cuando fue recargada por última vez. Cuando una columna estaba vacía, mostraba el mensaje “EMPTY”, si la columna había sido recargada hacía más de tres horas, mostraba el mensaje “COLD”. En caso contrario, mostraba el tiempo que había transcurrido desde la última recarga, por ejemplo: 1h 3m.

Inicialmente este estado de la máquina de Coca-Cola sólo se podía consultar desde el servidor al que estaba conectado, es decir, sólo aquellos que tuvieran acceso a dicha máquina podían hacerlo, pero el resto de la gente del resto del campus también quería poder consultar el estado de la máquina mientras estaban conectados otros servidores.

Para ello utilizaron el protocolo finger de UNIX el cual fue modificado para informar del estado de dicha máquina, permitiendo así la consulta no sólo desde otros servidores del campus, sino desde cualquier ordenador conectado dentro del campus. Pero más tarde a principio de los años 80, la máquina se conectó a Arpanet, es decir, Internet, llegando a ser accesible a más localizaciones repartidas por todo EEUU.

Figura 4: Estado de Aparnet (más tarde Internet) en octubre de 1980

El comando finger (llamado igual que el protocolo) era un servicio presente en servidores de la época que proveían información sobre los usuarios del sistema, si estaban activos y desde dónde estaban conectados, entre otras cosas (comando que en su día fue muy usado, y “abusado”).

Para consultar el estado de la máquina de Coca-Cola, sólo había que ejecutar el siguiente comando: finger coke@cmua. CMUA era el nombre del servidor al que estaba conectada la máquina y coke era un usuario ficticio en el sistema, el cual respondía con el estado de la máquina de refrescos. Los datos que devolvía este comando eran algo parecido a esto:
> EMPTY EMPTY 1h 3m 
> COLD COLD 1h 4m
El programa de la máquina de Coca-Cola se utilizó durante más de una década e incluso fue re-escrito para Unix VAX. El fin de la máquina llegó cuando Coca-Cola cambió el formato de las botellas retornables por otro menos glamuroso y además no retornable. La vieja máquina no aceptaba este nuevo formato y esto sumado a los cambios realizados por la marca en los diferentes sabores, hicieron que nadie del departamento tuviera ganas de nuevo de cablearla y conectarla de nuevo a la red, al menos por ahora.

De todas formas, la máquina de Coca-Cola estuvo conectada a Arpanet hasta finales de los años 80 y luego, tanto ella como el servidor del departamento, fueron reemplazados. En 1992, los ingenieros decidieron conectar otra vez esta nueva máquina a Internet, pero además, también aprovecharon para conectar no sólo la nueva máquina, sino también una máquina de M&Ms que se encontraba justo al lado de la de refrescos.

Figura 5: Foto no confirmada de una máquina de mediados de los 90
junto a otra de golosinas, en teoría, conectadas a Internet

En ambos, casos la técnica de conexión que usaron fue totalmente distinta, mucho más actualizada a la que originalmente fue usada con la máquina de Coca-Cola. Esta vez no eran micro-interruptores, utilizaban sensores ópticos y la interfaz de conexión estaba conectada a un IBM PC-XT con el nombre COKE.LABS.CS.CMU.EDU con la dirección IP 128.2.209.43. Más adelante incluso llegó a tener su página web en la que se podía consultar incluso los horarios de carga (eso sí, de 2007):

Figura 6: Página web de la máquina de Coca-Cola

La idea gusto mucho, tanto que incluso otras universidades se unieron al proyecto. Este es un listado de algunas de ellas que siguieron la moda de conectar las máquinas de refrescos (la de Rochester incluso mostraba un gráfico del estado de la máquina):
>* Carnegie Mellon University coke and M&M machine (Fixed!)

>* Cocacola and Pepsi at Columbia University

>* University of Wisconsin (appears to be just a maintennance account, not a > real coke-machine-on-the-net)

>* UC Berkeley

>* Rochester Institute of Technology, Computer Science House

> * Soda machine status

> * stock details

> * graphical display and coke temperatures

>* University of Western Australia

>* Coffee machine (Cambridge)
Por lo tanto, creemos que estas evidencias son suficientes para demostrar que una máquina de refrescos fue el primer dispositivo de lo que hoy se conoce como el Internet de las Cosas o Internet of Things (IoT).

Autores:

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

Rafael Troncoso (@tuxotron) es DevOps Tech Lead en USCIS/DHS, co-autor del libro "Microhistorias: Anécdotas y Curiosidades de la historia de la informática (y los hackers)", del libro "Docker: SecDevOps" y del blog Cyberhades.

miércoles, mayo 16, 2018

ShellPop: Generación de Shells POP "like a master"

El mundo de las shells inversas o de tipo bind es un amplio mundo. En todo pentesting es necesario utilizar, casi de manera constante, diferentes tipos de shells, ya que no solo del Meterpreter de Metasploit vive el pentester en un Ehtical Hacking. Es importante disponer en la mochila del pentester de una herramienta que permita obtener y generar una shell en un momento determinado. Sin duda, una de las herramientas importantes en este ámbito es msfvenom de Metasploit o, incluso, desde el propio msfconsole.

Figura 1: ShellPop: Generación de Shells POP "like a master"

Hoy quería hablaros de una herramienta que también proporciona otro punto de vista y otra forma de lograr generar shells en un momento determinado, bajo las circunstancias que tengamos. La herramienta se llama ShellPop y se puede obtener en su repositorio de Github.

Figura 2: GitHub de ShellPop

Para llevar a cabo la instalación de ShellPop se debe descargar desde Github, por ejemplo, con la ejecución del comando git clone. Después, se deben instalar las dependencias de Python, ya que la herramienta está escrita en Python. En primer lugar, se ejecuta la siguiente instrucción apt-get install python-argcomplete –y. Posteriormente, se instalan las dependencias que vienen especificadas en el fichero requirements.txt. Esta operativa se realiza de la siguiente manera: pip install –r requierements.txt.

Figura 3: Instalación en Kali Linux

Una vez tenemos todo preparado y con las dependencias resueltas, debemos instalar la aplicación. Para ello, se utiliza la instrucción python setup.py install. De esta manera dispondremos del comando desde la consola en cualquier instante.

La ayuda que proporciona la herramienta es buena. Si ejecutamos shellpop –h obtenemos un listado de todo lo que podemos hacer con la herramienta. Vemos que la herramienta tiene una serie de opciones con las que podemos ‘settear’ el host y el puerto dónde la shell realizará acción, dependiendo de su naturaleza: reverse o bind.

Además, podemos ver en la ayuda una categoría de tipos de shell, de opciones de encoders e, incluso, opciones de stager, lo cual hace que sea flexible la configuración de las shell. Además, la herramienta proporciona una categoría propia para generar shells para Powershell.

Figura 4: Ayuda de ShellPop

Para obtener el listado de shells disponibles y el tipo de conexión de éstas, podemos ejecutar shellpop –list. Como se puede ver en la siguiente imagen tenemos shells de tipo bind y de tipo reverse. El ID que aparece al lado de la shell es importante, ya que después lo tendremos que indicar si queremos utilizar dicha shell.

Figura 5: Lista de shells

Lo interesante es ver el número de lenguajes distintos en los que disponemos una shell. Lenguajes como Perl, Python, Ruby o PHP proporcionan una base fuerte e interesante, debido a que podemos ejecutar una shell en diferentes plataformas, indiferentemente del sistema y jugando con más con la tecnología y con el lenguaje.

Una opción interesante que proporciona la herramienta es la opción –clip, el cual permite generar la shell y copiarla al portapapeles. Es una opción interesante cuando se quiere llevar el resultado de la ejecución de la herramienta a una herramienta o script propio.

Para mostrar un ejemplo, en mi querido Ruby, ejecutamos la siguiente instrucción shellpop –reverse –number 4 –host [dirección] –port 4444 –handler. Con la opción –reverse indicamos que la shell será inversa y no de tipo bind. La opción –number nos permite indicar, según el índice del listado, la shell que queremos generar. La opción –host nos permite indicar la dirección dónde la shell se atará, en caso de ser de tipo bind o dónde la shell realizará la petición de conexión en caso de ser inversa. Respecto a la opción –port indicamos el puerto sobre el que trabajará la shell. Por último, la opción –handler configura el handler para recibir las conexiones o generarlas, de nuevo en función de si es reverse o bind.

Figura 6: Apertura de handler

El handler arranca y llega la primera conexión, cuando en el target remoto se ejecuta el código. A partir de ahí, disponemos de la posibilidad de interactuar con la shell y lanzar instrucciones en el host remoto.

Figura 7: Conexión activada

Como se puede ver, las posibilidades que ofrece ShellPop son bastante amplias. Me recuerda a una herramienta de la que ya hablamos aquí llamada ZeroDoor de OWASP, con la que se podía crear diferentes shellcodes para diferentes plataformas. Otra herramienta que hay que tener en la mochila del pentester.

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 ElevenPaths

martes, mayo 15, 2018

Efail: O cómo descifrar e-mails cifrados con S/MIME y OpenPGP usando técnicas de exfiltración

La verdad es que hoy, día de San Isidro, tenía cualquier plan menos ponerme a leer un paper técnico, pero encontrarme esta mañana información del trabajo de Efail merece la pena el cambio de planificación. Se trata de un trabajo que explica cómo se pueden descifrar correos electrónicos que hayan sido cifrados mediante S/MIME u OpenPGP, incluso si los correos tienen mucha antigüedad.

Figura 1: Efail: O cómo descifrar e-mails cifrados
con S/MIME y OpenPGP usando técnicas de exfiltración

Dicho esto, dejadme que os explique un poco el escenario para que sea más fácil de entender por todos, pues si no puede llevar a confusión. Supongamos que Eduardo (Emisor) envía un mensaje cifrado con OpenPGP o S/MIME a Ricardo (Receptor). Para eso, quiere decir que Ricardo tiene la clave privada de descifrado del Mensaje, ya que hemos cifrado el contenido del Mensaje con la Clave Pública de Ricardo.

Figura 2: Efail: Breaking S/MIME and OpenPGP Email Encryption

Supongamos ahora que Ricardo, años después sigue teniendo disponible esa Clave Privada (no ha caducado, y la sigue teniendo en uso). Bien, en ese escenario, un atacante, podría enviar un e-mail, al que llamaremos Mensaje Malicioso que iría cifrado con la Clave Pública de Ricardo, y que podría ser utilizado por el Atacante para descifrar los Mensajes enviados años atrás por Eduardo. ¿Cómo?

Figura 3: Si la Víctima abre un e-mail Mailicioso puede descifrar mensajes antiguos

Pues tan sencillo como metiendo en el Mensaje Malicioso "trozos" del Mensaje de Eduardo a Ricardo que van cifrados para que los descifre y Exfiltrando el contenido descifrado utilizando diferentes técnicas que dependen de:
A) El tipo de cifrado que se utiliza 
B) El cliente de correo electrónico que usa Ricardo.
Si queréis los detalles completos, podéis leeros el paper, pero básicamente utiliza tres tipos de exfiltración basados en el uso de la interpretación del HTML y las Primitivas de los sistemas de cifrado:
- BackChanels: Si el cliente interpreta el código HTML de un e-mail se puede crear un mensaje HTML con una etiqueta IMG que se cargue de un servidor controlado. Este canal que siempre ha sido visto como un riesgo de privacidad - ya os conté alguna aventura mía con esto por culpa de Gmail - también se puede usar para exfiltrar datos usando parámetros en las URLs o dejando las etiquetas sin cerrar. 
- Direct Exfiltration: Se dejan las etiquetas IMG sin cerrar y algunos clientes envían parte del mensaje descifrado al servidor. Esto permite que el Atacante acceda a datos descifrados que le permiten tener duplas de datos cifrados y descifrados. 
- Malleability Gadget: Aquí el paper se centra en cómo utilizar los datos exiltrados para, utilizando las primitivas de OpenPGP y S/MIME que permiten reordenar o inyectar pedazos de mensajes cifrados en el sistema para obtener su descifrado. Es decir, dinámicamente se puede solicitar el motor que descifre cadenas de texto cifrado.
Con estás técnicas, dependiendo de la configuración del cliente de correo electrónico y las versiones de OpenPGP o S/MIME una víctima podría estar descifrando correos electrónicos antiguos con solo abrir un mensaje malicioso hoy en día.  Las versiones afectadas por esta técnica las tenéis en la tabla de la figura siguiente.

Figura 4: Tabla de sistemas afectados

¿Cómo evitar esto?

La forma más sencilla es actualizar el software de S/MIME y de OpenPGP para evitar el uso de las primitivas para modificación y quitar el uso de HTML en la interpretación de mensajes de e-mail. HTML en el e-mail ha sido siempre un leak de privacidad debido a la existencia de Side-Channels para saber si un mensaje ha sido leído o no y desde qué equipo, así que si lo tienes deshabilitado, mejor que mejor.

Si quieres saber más sobre este tema, te recomiendo el libro de Cifrado de las Comunicaciones Digitales que explica todos estos conceptos con extrema facilidad y te permitirá entender mejor este tipo de situaciones.

Saludos Malignos!

lunes, mayo 14, 2018

Eventos para esta semana: AWS Summit Madrid, HackMiami, Curso Hacking & X1Red+Segura

Esta semana, con la fantásticas Fiestas de San Isidro de Madrid de por medio, tenemos menos actividades públicas, pero aún así hay citas más que interesantes de por medio. Estas son en las que participamos desde ElevenPaths, LUCA, 0xWord y Telefónica. Toma nota que las citas en las que participamos se concentran entre el 17, 18, 19 y 20 de Mayo.

Figura 1: Eventos para esta semana: AWS Summit Madrid,
HackMiami, Curso Hacking & X1Red+Segura

El primero de ellos será el Amazon Web Services Summit Madrid 2018, en el que me han invitado a hablar unos minutos de lo que hacemos en mi unidad CDO de Telefónica con AWS. Será una intervención corta dentro de la Keynote de Werner Vogels, CTO de Amazon.com. En el siguiente enlace tienes la agenda completa de la sesión.

Figura 2: AWS Summit Madrid 2018

Ese mismo día, pero online, dará comienzo el Curso Online de Hacking Ético Experto de nuestros compañeros de The Security Sentinel, de 180 horas de duración. En ese curso, se entregará como material complementario el libro de 0xWord dedicado al Pentesting con Powershell. Tienes la agenda completa del curso en la web del mismo.

Figura 3: Curso Online de Hacking Ético Experto en The Security Sentinel

Los días 18, 19 y 20 de Mayo, nuestro compañero Claudio Caracciolo, CSA de ElevenPaths, impartirá en las conferencias de HackMiami Conference 6 la charla de "Breaking out HSTS (and HPKP) on Mozilla Firefox and Google Chrome". Se imparten en Miami y tienes toda la información de registro en la web del evento.

Figura 4: HackMiami Conference 6

Por último, los días 18 y 19 de Mayo tenemos una nueva edición de las conferencias X1Red+Segura en Madrid, donde yo daré una charla en la jornada del sábado. Un evento en el que además tendrás la posibilidad de adquirir los libros de 0xWord ya que estarán a la venta allí en un stand. Tienes la agenda completa en la web de las jornadas.

Figura 5: X1Red+Segura 2018

Y esto es todo lo que tenemos por delante, así que si quieres venirte a alguno de los eventos en los que participo, nos vemos presencialmente. Y si, no nos vemos en la próxima ocasión.

Saludos Malignos!

domingo, mayo 13, 2018

Una entrevista con el gran José Luis Garci

Ayer salió publicada en la revista El Papel del diario El Mundo, la entrevista que nos hicieron "a la dubis" al mítico José Luis Garci y a mí en el Espacio de la Fundación Telefónica. A priori me resultó extraño que me lo propusieran, pero la verdad es que tenía unas ganas enormes de conocerlo en persona, así que decidí que había que hacerlo.

Figura 1: Una entrevista con el gran José Luis Garci

Quedamos, como ya os he dicho en el primer párrafo, en El Espacio de la Fundación Telefónica, en un día con mucho calor. Llegué unos minutos antes de José Luis para hacerme las fotos, así que nada más llegar me puse el gorro para posar. No hacía día de gorro, creedme. Debatí un poco con los compañeros sobre qué y cómo hacer las fotos, hasta que llegó José Luis. Nos saludamos, re-debatimos otra vez los posados, nos reímos, y nos volvimos a reír. Fue genial desde el minuto uno.


Cuando nos hacíamos las fotos, nos decían que nos pusiéramos serios, pero los dos queríamos salir como nos sentimos: más alegres. La verdad es que nos portamos como niños malos y mientras nos hacíamos las fotos de pie, sentados en la escalera, e incluso posando yo con la cámara y el posando para mí en una de las fotos que acompaña a la entrevista. 

A post shared by Chema Alonso (@chemaalonso) on

Después de pasar los momentos de posar nos sentamos con Pedro Simón, el periodista, que nos mantuvo entretenidos durante más de una hora en la que charlamos sobre todo lo que se nos vino a la cabeza. Se pasó volando.


En la entrevista salen muchas cosas que os he contado a vosotros por aquí, como el accidente con mi monopatín que casi me mata, mi teoría del Big Brain, o las aventuras del lobby tecnológico de los "50 Chuletones de Grey". También hablamos del caso de Cambridge Analytica, de lo que suponía para la privacidad y las sociedades este nuevo mundo. Y sobre la Inteligencia Artificial en general y sus debates morales.


José Luis Garci me contó cosas y detalles de todo el impacto que tuvo su trabajo en La Cabina, y los miedos que toda la sociedad tuvo con ella, de cómo se había elegido el nombre de HAL en 2001 una Odisea en el Espacio - que incluso me dejó manuscrito en el envío de los libros que me haría luego -, de cómo terminaba sus guiones a máquina de escribir o de cómo había que tratar el arte del cine en los museos. Una pasada escucharlo.


Fue un rato divertidisimo, intercambiamos contactos y nos emplazamos para el Foro de Deporte en Telefónica donde se vino a ver a los deportistas que nos acompañaron en el evento, además de regalarme sus libros. Una joya de lectura y de cine.


Pero lo mejor de todo es que cuando terminó la entrevista nos dimos un abrazo genuino y apretado. Lo pasamos muy bien, me cayó genial, nos reímos y nos divertimos siendo niños y amigos que se toman un café para comentar batallitas alrededor del cine y de la tecnología. El rato que estuvimos juntos, José Luis se ganó el perdón por todas las noches de pesadillas que sufrí al haber visto la película de La Cabina.

Saludos Malignos!

sábado, mayo 12, 2018

Apple en App Store elimina apps que se llevan tu localización

Llega el GDPR, y con él muchos cambios en todos los sistemas informáticos de las empresas. Aprovechando estos cambios, Apple ha comenzado a eliminar apps de su tienda de aplicaciones que acceden a la localización del terminal iOS (iPhone & iPad) y lo envían a servidores de terceros sin haber informado de ello explícitamente.

Figura 1: Apple en App Store elimina apps que se llevan tu localización

Esto lo está notificando por medio de un correo electrónico de Re-evaluación de app que está llegando a los dueños de las aplicaciones, y en el que se le informa que si quiere que su app vuelva a estar disponible en App Store debe corregir este comportamiento.

Figura 2: Correo de AppStore para retirar apps por acceder a la localización sin explicarlo correctamente

Esto es una buena noticia, pues la localización dice mucho de las personas, y si el usuario no es consciente de que se está produciendo este acceso y, lo más importante, cuál es el propósito de uso de esta información ahora y en el futuro, puede resultar en un riesgo para la privacidad de las personas. 


Figura 3: ElevenPaths Talk: El nuevo reglamento GDPR

Con el GDPR esta información debe ser mucho más clara y los usuarios deben tener mucho más control. Si quieres conocer más, debes verte esta ElevenPaths Talk, en las que mis compañeros cuentan los detalles y pormenores.


Figura 4: You are where you are

En esta otra conferencia, que yo dediqué íntegramente a los datos de localización de las personas, expliqué qué información se puede extraer de cada uno de nosotros simplemente con el dato de localización, así que es bueno que las apps se comiencen a ver restringidas a la hora de recolectar esos datos.

Saludos Malignos!

Entrada destacada

Big Data for Social Good: Ready for a Wild World? 24 de Mayo en Madrid #BD4SG2018 @luca_d3

El próximo 24 de Mayo en Madrid , en el auditorio del Espacio de la Fundación Telefónica en la Gran Vía , tendrá lugar la segunda edición d...

Entradas populares