viernes, julio 31, 2020

Chema vs. Chema: Descansar o Construir.

Hoy es el día que había marcado en el calendario para recargar. Como los últimos años. Tomar un respiro y recargar el cuerpo y la mente con energías renovadas. Descansar física y mentalmente de un año muy duro para todos. Un año donde hemos perdido amigos y familiares más o menos cercanos. En el que no hemos tenido el descanso merecido en Semana Santa o el Puente de Mayo. Y donde encima hemos visto como se cernía sobre nosotros una complicada situación económica a nivel de personas, familias y sociedades.

Figura 1: Chema vs. Chema: Descansar o Construir.

Un año muy duro. Un año donde he visto a mis compañeros de trabajo dejarse la piel en un entorno muy difícil emocionalmente. Pues no solo ha sido un largo periodo sin vacaciones, sino que ha sido también un largo periodo de soledad profesional tras cerrarse la vídeo conferencia. Donde ha faltado el refuerzo emocional de una sonrisa, un comentario banal, o un café tras una reunión. O una persona a la que ir después de llevar dos horas concentrado delante del ordenador y decir... "¿Nos vamos a comer?".

A mí particularmente me ha hecho entrar en un bucle de hiperactividad a muchos niveles. No he parado de darle vueltas a este Big Data que tengo por cabeza, rebuscando nuevas conexiones de puntos. Conectar una cosa con otra, para hacer algo nuevo. Para empujar algo a medias. Para encontrar un nuevo camino entre la niebla. Para enredar con unos nuevos bits que sumados dan tres. Y los días se han hecho largos, muy largos, y las noches cortas, muy cortas. 

Durante este tiempo me ha faltado mucho. Me ha faltado verte en un evento subido en el escenario. Me ha faltado una canción cantada en directo en mi orejota. Me han faltado más cenas y cañas con los amigos. Me ha faltado una vuelta por las mesas de mis compañeros de trabajo para ver qué estaban haciendo. En qué podía enredarles un poco más. Me han faltado abrazos y besos. Me ha sobrado codo. Me han sobrado reuniones continuadas sin un minuto entre una y otra. Me ha sobrado tener que ir al baño robándole tiempo a la agenda.

Ha sido un periodo intenso. Distinto. Al que me he adaptado lo más rápido posible. Desde el minuto uno. Con muchos planes. Y donde no he dejado de empujar proyectos y, al contrario, me he metido en un buen número de cosas nuevas a todos los niveles. Enredando. Lanzando los juguetes al aire para ver cómo caen y poder jugar con ellos. 

Y ahora estoy en ebullición. La cabeza la tengo llena de ideas. De planes. De cosas que quiero hacer. Que quiero empujar. Pero aún así, me estoy obligando a escribir este artículo hoy para forzarme a no hacerla. Me tengo que obligar a reducir la intensidad y recargar pilas. Pero la verdad es que me tengo que obligar, porque tengo una lista de cosas en frente de mí que me encantaría poner a hacer ahora mismo. Me están llamando. Pero la sensatez que dan los años me dice que hay que recargar. Que hay que parar... aunque sea un poquito.

Por tanto, auto-castigado, voy a reducir mi obligación auto-impuesta de escribir todos los días. Pero os garantizo que no quiero hacerlo. Tengo como diez artículos escritos y listos para salir, tengo en mente preparar dos charlas nuevas para Ekoparty y 8.8 Legends donde quiero estar. Con un truco gracioso que se me ocurrió viendo un vídeo de TikTok, y con un recorrido de 20 años en el mundo del hacking. Serán las charlas con las que quiero participar en esos eventos.

Intentaré disfrutar más del deporte. De la música que me llega por Internet. De Mi Hacker & Mi Survivor. Del sol. Del agua. De letras escritas en cómics y libros que ya he seleccionado para leer. De ver las series esas de superhéroes que tengo pendientes ver. De Watchmen, Doom Patrol o la tercera temporada de Legion. De continuar mi saga de consumir todas las películas, libros, series de dibujos y cómics de Star Wars en orden cronológico - y estoy en la fase de las Guerras Clon, así que esto se antoja largo -. De dormir las horas que le he robado al reloj. 

De disfrutar del silencio en soledad un poquito, como a mí me gusta. Acariciando y abrazando por momentos las bolitas azul-amarillas esas que te dejan el regusto del agridulce, del amargo melancólico que tienen las cosas alegres que ya pasaron y las cosas tristes que se tornaron en anhelos de cambio.

Intentaré escribir cuentos. Un poco más de mis memorias. De esas que no sé si algún día dejaré que nadie lea más allá de los retazos a contraluz que dejo ver por aquí. De las aventuras del Dragón Matías que cada vez vuela más lejos por culpa de la edad. Intentaré ver más ojos de alegría. Celebrar. Celebrar. Celebrar. Ser agradecido. Y recargar las pilas. 

Pero... soy un guerrero. Un "road warrior" que lleva mucho tiempo encerrado. Y sé que, aún así, sacaré mis armas. Las afilaré. Las limpiaré. Las tendré siempre listas. Por que cuando me entra el nervio previo a la batalla necesito poder ponerme en pie de un salto y estar en primera línea de batalla. Así que estaré cerca de mi ordenador. 

Y no me prometo a mí, ni a vosotros, que no le dé alguna vez a "publicar" y saque algo de lo que tengo hecho de lo que esté haciendo. No garantizo que vaya a desconectar del todo. No puedo decir que no voy a tener un ojo puesto en mi espacio natural. Lo siento. Mi vida es lo que hago todos los días. Y mi vida es la que yo elegí. Mi trabajo, mis proyectos, mis locuras, no son una carga y una condena. Son una elección que hice desde muy pequeño. Una forma de vida que elegí cuando la magia abandonó definitivamente la Tierra Media.

Así que, si veis que publico algo, no me regañéis. Decidle a Chema Alonso que no he podido evitarlo. Que no he podido dejar de pensar en Living Apps, en Cálico Electrónico, en la FOCA, en los posts de El lado del Mal, en una nueva característica de MyPublicInbox como la integración de Postalk o en los casos de uso de Movistar Home. Pensar en la nueva startup que construir para Wayra, o en cómo vamos a abrir el repo de código para que Xiao tenga su prioridad de tráfico para gamers en SmartWiFi para la llegada del Cloud Gaming.

En cuándo anunciaremos los dos nuevos libros que ya están hechos de 0xWord, o el último cómic de Evil:ONE, en nuevas ideas para ElevenPaths, LUCA o la 4P, o en la nueva batería de conocimiento para Aura. En cómo van los prototipos de los nuevos e-commerce que estamos trabajando, en cómo va la integración con las pasarelas de pago... en la convergencia de TV, en la empresa esa que estamos mirando para comprar, en mis dibujos de No Tan Malignos...  o tal vez serán nuevos proyectos de Ideas Locas.

Mi cabeza tiene vida propia. De siempre. Mi Big Data trabaja en Background sin control, así que, si publico algo ... la explicación es que no he podido contener esa cabeza mía loca que no deja de pensar en cosas. Pero si no lo hago, tampoco os preocupéis, es que ese día ha ganado el planificador al torrente. El entrenador que ha dicho no corras ahora, toma aire, ya habrá tiempo para correr en unos días. Ahora mira al sol. Mira el cielo. Recuerda esa sensación de calor en tu piel. Ponte moreno. Y descansa... 

Ya veremos quién gana la batalla de cada día.

Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)

jueves, julio 30, 2020

Unos consejos para fortificar MongoDB en el mundo NoSQL

Conocí el mundo de los NoSQL allá por el año 2013 cuando comenzamos con ElevenPaths a construir nuevas tecnologías. Teníamos muchos retos tecnológicos por completar ante nosotros. Fue una etapa en la que aprendimos mucho ante todos los cambios y avances en tecnología que aparecían ante nosotros. Hay algo que nos enseñaban cuando estudiábamos en la carrera y es que un Ingeniero debe buscar soluciones, es decir, analizar el problema, analizar una posible solución, diseñar, implementar, etcétera.

Figura 1: Unos consejos para fortificar MongoDB en el mundo NoSQL

A uno de esos problemas de aquella época le dimos solución basándonos en un tipo de bases de datos no relacionales llamas "Not Only SQL"  o NoSQL. Hoy me quiero centrar en una de esas NoSQL, en MongoDB. Es, por mérito propio uno de los motores de base de datos no relacional más utilizados hoy en día. En su día sacamos alguna noticia sobre MongoDB dónde su seguridad no quedaba bien parada, pero quizá no sea la seguridad que MongoDB puede aportar, si no la configuración que le apliquemos. Es decir, no es problema del producto y sí de la configuración que el administrador ejecute, con el caso de estos artículos del blog:
El caso de MacKeeper fue recordado por los 13 millones de usuarios filtrados y los 21 GB de información sensible. Algunos echaron la culpa al producto, pero realmente y clarísimamente, fue una mala configuración. No es el único caso en el que este tipo de soluciones se han visto involucradas, por ejemplo, y más recientemente, tenemos el caso de las miles de apps de iOS que filtraron datos en Firebase, pero no solo en Firebase, en el listado aparece MongoDB también.

Figura 2: El caso de MacKeeper y los datos filtrados

En el artículo de hoy vamos a hablar de cómo fortificar MongoDB. La gente de MongoDB pone a disposición de sus usuarios / administradores una serie de “tips”. En muchos casos, hay cosas “obvias”, por ejemplo, que la conexión vaya cifrada entre la aplicación y la base de datos. De esto ya hemos hablado en el pasado con los ataques Network Packet Manipulation.

Figura 3: Libro de Cifrado de las comunicaciones digitales:
de la cifra clásica a RSA 2ª Edición de 0xWord

Sea como sea, siempre viene bien tener un listado de “tips” o una “checklist” dónde verificar algunas de las cosas que debemos configurar sí o sí en una base de datos, en este caso, no relacional como puede ser MongoDB.

Habilitar el control de acceso y configurar RBAC

Para que no ocurra como en los ejemplos anteriores de filtrado de información, es muy importante habilitar el control de acceso. Como hemos visto, si tu MongoDB da soporte a una aplicación web o un servicio expuesto en la red, es una de las primeras cosas que van a buscarse en un Hacking de Web Technologies. Los motores NoSQL con acceso anónimo son objetivo de pentesters y atacantes peor intencionados. Para ello, se puede utilizar un mecanismo de autenticación SCAM o x509 que trae el propio MongoDB. Además, se puede integrar con Kerberos o LDAP. 

Otra recomendación sería crear primero un administrador de usuarios y luego ir creando los usuarios necesarios. Es importante, crear un usuario por cada aplicación o persona que requiere acceder al sistema. Como define una de las mínimas de la seguridad informática, debemos seguir el principio del menor privilegio. Es decir, vamos a crear roles que definan derechos de acceso para un conjunto de usuarios.  

Figura 4: Hacking Web Technologies 2ª Edición

De esta forma, podemos crear usuarios y asignarlos solo a los grupos/roles que ellos necesiten para poder ejecutar sus tareas u operaciones. Cuando hablamos de usuarios, hay que tener en cuenta que muchas veces son las propias aplicaciones que requieren conectarse contra la base de datos.

Ya hemos comentado sobre RBAC de forma implícita, pero por si acaso, decir que RBAC es un control de acceso basado en roles (Role Based Access Control). Es decir, consiste en asignar derechos de acceso, como comenté antes, a los usuarios en función de los roles y las operaciones o tareas que tienen que realizar.  Para habilitar la autenticación, simplemente debemos cambiar la directiva “auth” o habilitar a true en el fichero de configuración /etc/mongodb.conf.

Figura 5: Configurando /etc/mongodb.conf

El resultado es que cuando queremos conectarnos con MongoDB a la base de datos que hayamos creado pues nos solicitarán credenciales. Puedes ver más sobre la creación de usuarios en la documentación oficial de MongoDB.

Figura 6: Conectándonos con nuestro usuario a MongoDB

Esto es algo muy básico, pero que como hemos visto pues no es algo que siempre se configure. Importante, antes de habilitar la autenticación hay que tener en cuenta el crear usuarios. Eso se hace con la función db.createUser y un documento JSON con el siguiente formato:

{
user: “pablo”,
pwd: “xxx”,
roles: [“dbOwner”] #si queremos que sea el propietario
}

MongoDB tiene lo que se llama “Collection-level access control” y permite hacer un permiso muy específico sobre las colecciones de datos. Es decir, puedes indicar qué tipo de acción puede hacer un rol sobre una colección de datos. Hay que recordar que una colección de datos está dentro de una base de datos. Sería como las tablas en el mundo SQL.

Cifrar comunicaciones con TLS/SSL y cifrar y proteger datos almacenados

El cifrado es clave tanto en lo que a la comunicación entre el cliente y el servidor como en el almacenamiento de los datos. Ya hemos comentado lo que son los ataques de Network Packet Manipulation. Además, Wireshark da soporte para mostrar los paquetes de MongoDB y diseccionarlo de forma sencilla. En otras palabras, si alguien se pone en medio de la comunicación entre la aplicación y el servidor de MongoDB toda la información que viaje entre ambos nodos quedará expuesta.

Figura 7: Paquetes MongoDB en WireShark

Explicar el proceso para proteger la comunicación entre cliente y servidor daría para uno o dos posts, por lo que os dejo el enlace a dicha información y se puede configurar de manera sencilla. Hay que tener en cuenta que habrá que configurar tanto servidor como cliente. 

Encypted at Rest: Almacenamiento seguro de la información  

Ahora, hablemos de la protección de la información en el interior de la base de datos. Cuando se crea un usuario, se nos indica en la documentación que la contraseña no se almacena en texto plano, como era de esperar. MongoDB dispone de una “feature” importante que es el motor de almacenamiento cifrado o Encrypted Storage Engine. Esta “feature” solo está disponible en MongoDB 3.2 en adelante y en la versión Enterprise

Figura 8: Encryption at Rest y MongoDB


Si el cifrado está activo, MongoDB Enterprise utiliza AES256-CBC a través del uso de OpenSSL. Se utiliza la misma clave para cifrar que para descifrar. MongoDB también soporta un cifrado en modo FIPS y AES con el modo Galois/Counter Mode.  Cuando se habilita este cifrado, el proceso incluye las siguientes acciones:
  • Generación de una clave maestra y la generación de claves para cada base de datos. Es decir, que cada base de datos estará cifrada con una clave diferente. Esto es algo lógico.
  • Cifrar los datos de cada base de datos con las claves generadas previamente para cada base de datos. También se cifrarán las claves de la base de datos con la clave maestra.
  • El cifrado es llevado a cabo de forma transparente. Este cifrado se lleva a cabo en todo el almacenamiento, es decir, los archivos que contienen los datos están completamente cifrados. Lo interesante es que los datos descifrados solo existirán en la memoria y nunca en el disco, donde siempre estarán cifrados.
Nota: Ya hemos hablado en este blog sobre ataques a procesos en memoria con el objetivo de sacar información.

Registros y auditoría de las acciones

La trazabilidad es una de las subdimensiones de la seguridad. Es algo importante y el tener un registro de actividad también lo es. Habilitar la auditoría en un MongoDB es algo vital y que permite conocer que está ocurriendo en tu base de datos. Cuando se habilita la auditoría se escriben eventos en la consola del propio MongoDB, en el Syslog o en archivos.

Figura 9: Configuración de Filtros de Auditoría en MongoDB

Se registran operaciones de autenticación, de acceso, de autorización, etcétera. Se puede configurar filtros para restringir eventos capturados. Esto se puede hacer a través de la configuración de los filtros de auditoría. En la auditoría se registran:
  • Autenticación y cómo se dijo anteriormente, también la autorización.
  • Operaciones del cluster de MongoDB.
  • Operaciones de lectura y escritura.
  • Operaciones con el esquema o DDL.
  • Mensajes personalizados de aplicaciones.
Asegurar el entorno de MongoDB

Este paso es muy importante. De nada valdrá tener las mejores recomendaciones y consejos en el ámbito del hardening a MongoDB, si luego tenemos las capas inferiores desprotegidas. Imagínate que permitimos que cualquier usuario pueda acceder a este equipo físicamente y no ponemos barreras, ¿Serviría tener cifrado los datos en disco? Si no tiene un login de usuario, si no tiene un firewall que rebaje la exposición, si no hay unas barreras físicas que evitan que cualquiera pueda acceder a ese equipo físicamente, etcétera.

Figura 10: Auditando MongoDB con Tenable Nessus

En este caso las recomendaciones van por la parte del firewall, pero no hay que quedarse solo con eso. Si vemos el modelo defensa en profundidad, la seguridad va en armonía con todas las capas. No vale fortificar mucho una capa, si luego por debajo, la base, no se sostiene.  Hay un artículo interesante de la gente de Tenable en la que hablan sobre la auditoría a MongoDB con Nessus.

Ejecuta MongoDB con opciones de seguridad habilitadas

Este apartado habla sobre la necesidad de ejecutar MongoDB con un usuario dedicado en el sistema. De forma que si es comprometida, no haya mucho que se pueda hacer hasta que haya una escalada de privilegio en el sistema. Además, hay una serie de opciones de seguridad que se pueden trabajar desde el principio y que ayudan a tener un entorno más seguro dentro de MongoDB. Seguramente, a estos consejos o recomendaciones se pueden añadir más y entrarían en opciones de seguridad habilitadas desde el principio.

Deshabilitar la escritura side-server: MongoDB soporta la ejecución de código Javascript. Para llevar a cabo la mitigación de una posible vulnerabilidad a nivel de aplicación, es recomendable deshabilitar el código del lado del servidor. Esto se puede deshabilitar en el archivo de configuración con la directiva noscripting = false.

Deshabilitar la interfaz de estado: ¿Qué es la interfaz de estado? Esto es un servidor HTTP que expone un sitio web el cual contiene estadísticas e información que pueden ser de interés para un administrador del sistema, pero también para un atacante. En el archivo de configuración se puede deshabilitar esta opción con la directiva nohttpinterface = true.

Desactivar la interfaz REST: Es una interfaz administrativa que es interactiva, la cual se encuentra desactivada por defecto. Esta interfaz no tiene soporte para autenticación y se debe restringir el acceso a dicha interfaz, por ejemplo, por dirección IP o mediante interfaz de loopback. Para deshabilitar esta interfaz en el fichero de configuración debemos verificar rest = false.

Limitar la exposición en la red: Limitar la exposición de direcciones IP de un servidor o de interfaces de red es importante. La opción bind_ip indica la interfaz de red por la que se escucharán peticiones en la base de datos. Esto ya depende de cada uno y sus necesidades. Se puede utilizar la directiva bind_ip para limitar la accesibilidad a la red de un programa MongoDB. También se puede jugar con un firewall y dejar pasar el tráfico que provenga de la dirección IP dónde se encuentra la aplicación. En el fichero de configuración se configura esta opción con la directiva bind_ip = [dirección IP de la interfaz que queremos].

Estos son algunos tips para mejorar la seguridad de una basa de datos MongoDB. Por supuesto, hay más cosas que se pueden hacer, pero con estas estamos mejorando bastante la seguridad de MongoDB. Es importante alinear los esfuerzos con el resto de capas, tal y como se indica en el modelo defensa en profundidad.

Saludos,

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",  “Pentesting con Powershell” y de "Empire: Hacking Avanzado en el Red Team", Microsoft MVP en Seguridad y Security Researcher en el equipo de "Ideas Locas" de la unidad CDCO de Telefónica.  Para consultas puedes usar el Buzón Público para contactar con Pablo González

Figura 11: Contactar con Pablo González

miércoles, julio 29, 2020

ESET te consigue 100 Tempos de MyPublicInbox para consultar con los expertos de seguridad informática @eset_es @mypublicinbox1

La compañía de seguridad ESET, especializada en soluciones de seguridad personal y empresarial, ha puesto activa una campaña de concienciación en seguridad con nuestros compañeros en la plataforma MyPublicInbox. El objetivo es regalar a los usuarios que respondan a una pregunta correctamente 100 Tempos que puedan utilizar en la plataforma para consultar a los expertos de seguridad informática y protección personal que hay en MyPublicInbox.

Figura 1: ESET te consigue 100 Tempos de MyPublicInbox
para consultar con los expertos de seguridad informática

Para ello, tienes que tener una cuenta en MyPublicInbox y debes iniciar sesión en la plataforma. Una vez que estés dentro de la plataforma puedes ir la URL: https://www.MyPublicInbox.com/eset-promotion y llegarás al reto que ha planteado ESET.


Para pasar el reto y conseguir los 100 Tempos Gratis debes activar el audio porque deberás ver un vídeo en el que pasan una serie de cosas. Una vez que termines la visualización del vídeo, llegará la parte en la que tendrás que demostrar que has prestado atención a la campaña correctamente.


Cuando acabe el vídeo se te hará una de las múltiples preguntas que hay, con tres opciones cada una. De las tres posibles respuestas que tienes solo una es la correcta, y si aciertas en la que es, recibirás automáticamente en tu saldo de tu cuenta de MyPublicInbox un total de 100 Tempos extras.


Estos tempos los podrás utilizar para consultar a los expertos en Seguridad Informática de la plataforma, a alguno de los hackers famosos que hay en MyPublicInbox o a cualquier perfil público de las categorías que tienen que ver con la tecnología.


Cada persona puede obtener un máximo de 100 Tempos, pero si fallas en la pregunta, no te preocupes, puedes volver a intentarlo un número limitado de veces a ver si tienes más suerte. Así que si prestas bien atención seguro que lo puedes conseguir.


Por último, os dejo los enlaces de los principales productos de seguridad de ESET por si os apetece probar estas soluciones de seguridad.
Y si quieres cualquier consulta de seguridad informática, protección personal, o conocimiento extra de las soluciones de ESET, puedes consultar en MyPublicInbox a Josep Albors, especialista en seguridad de la compañía en nuestro país, que lleva años ayudando a empresas y particulares con temas de seguridad en Internet, antivirus, ransomware, etcétera.


Por último, debes darte prisa, pues la campaña solo está disponible durante un tiempo y número de Tempos limitados, así que cuanto antes consigas los tuyos, mejor que mejor. Eso sí, no está disponible para los usuarios que sean Perfiles Públicos, y solo es para los usuarios que quieren contactar con ellos.

Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)

martes, julio 28, 2020

Cómo obtener un Token OAuth con el QR Code del menú del bar y que te controle el Sappo

Desde el comienzo del desconfinamiento, y con la llegada de la fase dos de la desescalada, las tiendas y negocios de nuestro país han ido reactivando poco a poco la economía española. Uno de los grandes retos de esta desescalada ha sido encontrar nuevas formas de acercar los productos a los clientes evitando el contacto físico y manteniendo las distancias de seguridad dentro de las tiendas y restaurantes. 

Figura 1: Cómo obtener un Token OAuth con el
QR Code del menú del bar y que te controle el Sappo

Una de las técnicas más utilizadas ha sido la implementación de cartas o catálogos digitales, a los que podemos acceder utilizando la función de lectura de Códigos QR implementada en la mayoría de smartphones actuales o a través de una aplicación de la App Store. Aunque es una brillante idea para evitar el contacto y para garantizar la seguridad física de los clientes, puede suponer un gran riesgo para la ciberseguridad, como vamos a ver hoy.

En la mayoría de establecimientos que utilizan este método, el Código QR se encuentra en forma de papel plastificado o una pegatina pegada a la mesa en la que nos sentamos, haciendo posible que cualquier persona con intenciones maliciosas pueda despegarlo y pegar su propio Código QR. El riesgo aumenta en el caso de los establecimientos que permiten realizar el pago a través de Internet.  

Figura 2: Libro de "Cómo protegerse de los peligros en Internet"
de 0xWord escrito por José Carlos Gallego.

El uso de un Código QR malicioso no es nuevo, e incluso detrás de algunas de las direcciones detrás de esos códigos se han encontrado Kit de Exploits e incluso un bonito meterpreter para atacar dispositivos Android inseguros, o iPhones con exploit de algún Jailbreak, como el famoso JailOwnMe de Jose Selvi.  Pero... y ¿si utilizamos ese QR Code para llevar a la víctima a la página de Microsoft Office, Google, Facebook o Twitter que autoriza compartir Tokens OAuth con apps? Aquí puedes ver qué pasa si haces mal un clic en una app maliciosa enviada por Sappo.


Figura 3: Robando tu cuenta de Microsoft con Sappo

¿Y si hacemos que en lugar de ir a la carta vaya a una App maliciosa que se llame "Carta Digital" y le pedimos un Token OAuth como hacemos con SappoA continuación, os enseñaremos cómo se puede lograr una escalada de privilegios (en este caso en una cuenta de Microsoft) utilizando un Código QR creado por nosotros y la herramienta Sappo, solo por la comodidad de integrar la explotación del Token OAuth robado con las acciones de nuestra herramienta.

Un QR Code para que las víctimas besen al Sappo

Lo primero será la construcción de una aplicación en la plataforma de Microsoft para que nos ayude a extraer los datos de las cuentas que confíen en ella. Esto lo podréis hacer accediendo desde este enlace y utilizando cualquier cuenta de Microsoft. Este paso es necesario para obtener el AppID y el Secret que nos pedirá Sappo en los pasos posteriores. También es fundamental especificar un servidor con end-point donde recibir el AuthCode y el AccessToken para ello deberemos usar la URL de nuestro https://Sappo/Token/Authorize/AppID

Figura 4: Creando la App maliciosa en Microsoft que usará Sappo

Nota: Vale, todo esto no es público porque como ya sabéis Sappo es una herramienta privada, pero el proceso completo de cómo funciona lo tenéis en el artículo de SAPPO: Spear APPs to steal Oauth-Tokens que tenéis publicado hace ya mucho tiempo. Al final, se trata de explicar una PoC de cómo podría hacerse algo así, no de ponerlo en producción. Si quieres hacerlo tú, te dejamos la charla donde nuestros compañeros Chema Alonso y Pablo González presentaron Sappo en la RootedCON 2016.


Figura 5: Solo hay que besar un Sappo por Pablo González y Chema Alonso

Dicho esto, el siguiente paso será acceder a nuestro Sappo y crear nuestra aplicación, para ello en el apartado Apps seleccionaremos la opción “Create New”. A continuación, en el campo de nombre debemos utilizar un nombre que no haga que el usuario sospeche de que se trata de una trampa, por ejemplo, “Carta Digital”. 

Figura 6: Una vez creada la App Maliciosa la damos de alta en Sappo

En los campos de Id y Secret introduciremos los datos de nuestra aplicación creada en la plataforma de Microsoft. En el apartado de la imagen podemos poner una foto del logo del restaurante para que la estafa sea todavía más creíble. Para no levantar sospechas también es recomendable redirigir a la víctima a la página original del establecimiento en el que se encuentre.

Ahora que ya tenemos nuestras aplicaciones creadas solo nos falta crear las solicitudes de permisos y convertir esta petición en un Código QR. Este proceso es bastante sencillo, solo tenemos que acceder al apartado tokens en el Sappo

Figura 7: Creando un Spear Phishing con el enlace malicioso para
conseguir el Token OAuth para la App maliciosa que usará Sappo

En este caso en particular, como nuestro objetivo es convertir la petición en un Código QR rellenaremos los apartados como si fuésemos una aplicación de cartas digitales, sin embargo en el apartado de “Victim´s email address” pondremos un correo electrónico al que tengamos acceso para poder acceder al enlace de la petición y así poder copiarlo y transformarlo en un Código QR que posteriormente podremos imprimir y colocar en la mesa de cualquier bar o establecimiento.

Una vez hayamos terminado de introducir todos los datos pulsaremos en “Create” y accederemos al correo electrónico al que nos hayamos enviado la petición, pulsaremos sobre el enlace y cuando nos redirija a la página en la que se solicitan nuestros permisos de Outlook copiaremos el enlace que aparece en la barra de nuestro buscador. 
Figura 8: El enlace en el e-mail lleva a la URL de petición de un
Token OAuth para la App maliciosa en una cuenta de Microsoft

Ahora solo nos queda convertir este enlace en un Código QR, para ello podemos encontrar infinidad de páginas web gratuitas con esta función en las que solo hay que introducir la URL copiada y pulsar un botón para convertirla. En algunas de estas páginas podremos seleccionar el formato de nuestro Código QR o incluso añadir una foto con el logo del negocio al que queramos suplantar logrando así una mayor confianza entre las posibles víctimas.

Figura 9: Convirtiendo la URL de petición de permisos en un
QR Code malicioso para imprimirlo y ponerlo en la mesa del bar.

Con nuestro Código QR creado solo tendremos que imprimirlo en papel adhesivo o en papel normal dependiendo de donde vayamos a colocarlo y esperar a que las víctimas “Besen al Sappo”. Para terminar, solo tendremos que esperar a que aparezca en nuestra lista de tokens aquellos que sean válidos y con los que podremos obtener el control de las cuentas de las víctimas que hayan caído en esta trampa.  El resto ya lo tenéis en los ejemplos de lo que se puede hacer con Sappo.
Autor: Sergio Sancho Azcoitia

lunes, julio 27, 2020

ATTPwn: Emulación de un ataque de ransomware #Ransomware #Antiransomware

Hoy en día existe una gran cantidad sistemas Windows 10 sin actualizar. Este hecho, puede suponer un verdadero riesgo, no solo para las organizaciones sino para el usuario particular. Como hemos visto, por la pandemia de este año nuestra vida se ha ligado aún más a la tecnología a la hora de trabajar y estudiar, lo que supone una repercusión mayor en nuestras vidas en caso de sufrir un ataque que nos impida acceder a nuestros datos. Por eso, os vamos a mostrar cómo puede afectar el hecho de no tener actualizado tu equipo. 

Figura 1: ATTPwn: Emulación de un ataque de ransomware

ATTPwn, como bien sabemos es una herramienta basada en la emulación de adversarios capaz de automatizar la parte ofensiva de este proceso. Habiendo hablado de los aspectos fundamentales de ATTPWn y de cómo desplegar la aplicación ATTPwn dockerizada en post anteriores, hoy vamos a construir uno de los múltiples casos de uso que se pueden realizar con nuestra querida herramienta. 

Figura 2: ATTPwn en GitHub

Recordad que ATTPwn es un proyecto que cuenta con una parte colaborativa en la que podéis participar implementando técnicas y compartiéndolas con la comunidad.

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

El plan que ejecutaremos consiste en realizar un ataque dirigido a un sistema concreto. Para ello, contamos con el siguiente escenario en el que no se ha aplicado la Máxima Seguridad a los equipos Windows y tenemos un sistema Windows 10 comprometido que no cuenta con la actualización 1903 de Windows Update, la cual introducía Tamper Protection. Dicha carencia supone una vulnerabilidad que aprovecharemos para modificar la protección de Windows Defender.

Figura 4: ATTPwn creación de Plan

La estrategia propuesta pretende tener impacto en la máquina objetivo cifrando sus archivos. Para ello y en función de la nomenclatura de MITRE vamos a utilizar las siguientes tácticas que explicaré a continuación:

Figura 5: Función Environment Injection
Esta técnica, explicada en posts anteriores, que hemos migrado de iBombShell, realiza un bypass de UAC para poder ejecutar acciones con integridad alta.

Figura 6: Función Disable Defeneder RealTime Protection
  • Táctica: TA0005 - Defense Evasion
  • Técnica: T1211 - Exploitation for Defense Evasion – Disable Defender Realtime
Una vez realizada la escalada de privilegios es hora de aprovechar la vulnerabilidad comentada anteriormente y deshabilitar la protección a tiempo real de Windows Defender. Para esto utilizaremos el cmdlet Set-MpPreference que configura las preferencias de Windows Defender, en este caso el RealtimeMonitoring.

Figura 7: Función Get Peripherals 
  • Táctica: TA0007 - Discovery
  • Técnica: T1120 - Peripheral Device Discovery - invoke-peripherals
Ahora, es el momento de descubrir los periféricos conectados al dispositivo para poder establecer un impacto en ellos más adelante. En este caso utilizamos el cmdlet Get-PnpDevice con el parámetro -PresentOnly, que recogerá solo los periféricos conectados en ese momento.

Figura 8: Función Services Stop
  • Táctica: TA0040 - Impact
  • Técnica: T1489 - Service Stop - invoke-servicestop
Utilizando los cmdlet gwmi win32_service y Get-Service se asignan los servicios activos a dos variables. Después con Stop-Service paramos dichos servicios ya que varios de ellos podrían estar utilizando ficheros que más tarde querremos cifrar y que podrían interferir en este proceso.

Figura 9: Función Encrypt-Files 
  • Táctica: TA0040 - Impact
  • Técnica: T1486 - Data Encrypted for Impact – Encrypt files
Por último, utilizamos las variables de entorno previamente asignadas y recorremos sus rutas en busca de los ficheros que vamos a cifrar. Al ser una emulación, se han recogido menos de 60 ficheros de diversas extensiones y copiado a la ruta: "$env:appdata\encryptedFiles"

Figura 10: Ficheros cifrados como resultado de la ejecución

A continuación, vamos a mostrar un vídeo de la ejecución de esta estrategia con ATTPwn  para que puedas ver los resultados.

Figura 11: Ejecución de ATTPwn emulando un ataque de Ransomware 

De esta forma y por una sola actualización, nuestro equipo se vería impactado de una forma severa en caso de estar comprometido. Por lo que siempre conviene estar actualizado.

¡Un saludo!

Autor: Luis E. Álvarez (@luisedev) es desarrollador y miembro del equipo Ideas Locas CDCO de Telefónica.

domingo, julio 26, 2020

No Tan Malignos: Unos cómics con Mi Hacker & Mi Survivor

Como ya os había contado en Instagram, he estado inventándome una forma de entretener a Mi Hacker & Mi Survivor usando iPhone, los Animojis y un poco de imaginación. El objetivo era poder hacer unas tiras de cómics con ellas en las que, en lugar de hacer los dibujos, capturamos las poses de los personajes usando un filtro de cómic y luego ponemos los textos con el Power Point y el Procreate en un un Mac y un iPad Pro. Sí, jugando con las tecnologías Apple - más el PP - todas a la vez.

Figura 1: ¡No Tan Malignos! Unos cómics con Mi Hacker & Mi Survivor

El resultado ha sido estas tres tiras de cómic de "No Tan Malignos" que hemos hecho juntos, donde ellas han hecho la parte escénica utilizando los animojis, y el montaje final de las tiras. Los textos los hemos hecho con la temática de tecnología y hacking que tanto les gusta. Os los dejo por aquí.

Figura 2: ¡No Tan Malignos! Tira 1 "Segundo Factor de Autenticación"

Haciendo esta tira también he aprovechado para explicarles qué es un segundo factor y un tercer factor de autenticación, para que así entendieran el guión.

Figura 3: ¡No Tan Malignos! Tira 2 "El hackeo de Garmin"

En esta tira hemos hablado de por qué el reloj Garmin de algunos amigos y conocidos no estaba funcionando, y de cómo los cibercriminales pueden atacar a una empresa, además de a las personas, por lo que siempre hay que estar alerta.

Figura 4: No Tan Malignos Tira 3 "Realidad Virtual"

Y en la última, he podido explicarles que la gracia de la tira es que hay vida más allá de Internet y que  ellas, como buenas niñas, deben disfrutar de jugar además de usar el iPad y el iPhone.

Espero que os haya gustado, pero sobre todo que os anime a hacer vosotros cosas similares, que con un poco de imaginación se pueden hacer cosas muy chulas hoy en día, para entretenerse con cosas creativas cualquier día de verano.

Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)

sábado, julio 25, 2020

Un pequeño "Life Hack" para iPhone para ponérselo más difícil a los ladrones y mejorar tu privacidad

El otro día, me di cuenta de una cosa. ¿Qué pasaría si te roban el iPhone? ¿Qué harías si estas en esta posición? Yo sé lo que harías, entrarías en Find My iPhone para que localizara tu móvil cuanto antes, pero, si te encuentras en el lugar de los ladrones. ¿Qué hacen los ladrones para que no puedas rastrear tu móvil? 

Figura 1: Un pequeño "Life Hack" para iPhone para ponérselo
más difícil a los ladrones y mejorar tu privacidad

Lo que hacen es poner el móvil en Modo Avión y así anulan la conectividad móvil (2G, 3G y 4G) y las conexiones WiFi - y BlueTooth -, anulando las posibles llamadas que hagas o las opciones de Find My iPhone de emitir un pitido. De esa forma a la hora que tú quieras rastrear tu iPhone no podrás, y ellos no han tenido que apagar el móvil, que siempre lo hace más difícil de desbloquear. Para ello, lo  que hacen  los ladrones es bajar el panel de del Centro de Control y lo ponen en Modo Avión sin la necesidad de desbloquearlo con un solo clic.

Figura 2: Centro de Control con opción de poner el Modo Avión en iPhone

Pero puedes hacer que esa opción esté accesible solo cuando te has autenticado con Face ID. Hoy os voy a enseñar - a los que no lo sepáis - a cómo configurar tu iPhone para que el panel del Centro de Control solo aparezca cuando este el móvil desbloqueado. 

Figura 3: Libro de Hacking iOS: iPhone & iPhone (2ª Edición)

Esto será muy útil si alguna vez pierdes o te roban el móvil, porque los ladrones no podrán poner el iPhone en Modo Avión y, aunque quiten la SIM y eliminen las conexiones móviles, y bajen el volumen para que no suene nada en el terminal, no podrán eliminar las conexiones WiFi - si no llevan una Bolsa de Faraday  a mano -, y ahora sí podrás ver donde esta tu iPhone con alguna probabilidad más. Y si no pueden eliminar las conexiones, se verán forzados a apagar el terminal y los datos de tu iPhone y tu privacidad estarán mucho más seguros. Estos son los pasos a seguir:

1: Desbloquea tu iPhone. Vete a la sección de Ajustes, y busca la opción de Face ID y Código.

Figura 4: Opciones de FaceID y Código
 
2: Presiona y te mandará a poner el Passcode que tengas puesto para desbloquear tu móvil.
 
Figura 5: Para configurar estas opciones necesitas el Passcode

3: Baja hasta abajo y verás varias opciones donde pone: Visualización Hoy, Centro de notificaciones, centro de control, Siri, Responder con mensaje, Control de casa, Wallet, Devolver llamadas perdidas, y Accesorios USB.  De todas esas opciones para evitar que te pongan el Modo Avión quita la que pone Centro de Control.

Figura 5: Eliminación de Centro de Control de la pantalla bloqueada
 
4: Bloquea ahora tu móvil y sin desbloquearlo prueba a ver si te baja el panel del Centro de Control. Verás como no es posible.

Con esta configuración puedes tener tu iPhone un poco más protegido y ponérselo mucho más difícil a los amigos de lo ajeno a sacarle provecho a tu terminal, además de tener tu privacidad un poco mejor protegida.

Un saludo,

Autora: Leire Alonso