martes, octubre 31, 2017

Descuento de Halloween 2017 en 0xWord de auténtico pánico: 15% en todo el catálogo

Nuestros compañeros de 0xWord han lanzado una campaña para Halloween 2017 de miedo que permite comprar todo el material de la tienda online con un descuento único. Se trata de un 15% de descuento en los libros de 0xWord, en los libros de 0xWord Pocket, en el Comic de Hacking Épico Deluxe Edition y en el Pendrive edición coleccionista de Cálico Electrónico.

Figura 1: Descuento de Halloween 2017 en 0xWord de auténtico pánico: 15% en todo el catálogo

Pero como es un descuento único, solo estará disponible durante la noche de Halloween en España, por lo que deberás comprarlo entre las 18:00 P.M. horas del día 31 de Octubre y las 02:00 A.M.  del día 1 de Noviembre utilizando el código HALLOWEEN2017

Figura 2: Bono Halloween 2018 en 0xWord para obtener un 15 % de descuento

Con este código de descuento, obtendrás un 15% de descuento en todas tus compras de 0xWord, así que si querías un buen momento para aprovisionarte de material para regalar estas navidades, o para aprender cosas nuevas, éste es el momento.

Saludos Malignos!

lunes, octubre 30, 2017

Ejecución de Código Remoto en dispositivos GNU/Linux con ZeroShell

La ejecución de código remoto (RCE o Remote Code Excecution) es una de las técnicas más utilizadas en el mundo de Hacking Web Technologies. Tiene como objetivo aprovechar una vulnerabilidad en un sistema para ejecutar en él diversos comandos de el propios sistema operativo. Por lo general, los comandos se ejecutan dentro del sistema vulnerado con los privilegios que tenga la cuenta con la que se ejecuta el servicio vulnerable - que podría una cuenta administrativa - debido a que el sistema no valida de forma correcta los datos que recibe.

Figura 1: Ejecución de Código Remoto en dispositivos GNU/Linux con ZeroShell


En el año 2009, se publicó la vulnerabilidad con CVE 2009-0545 donde se avisó del impacto que tenía la ejecución de código remoto en dispositivos sobre los que corría Zeroshell, una distribución GNU/Linux destinada a servidores y dispositivos empotrados con un claro enfoque de defensa perimetral.

Figura 2: Detalles de la vulnerabilidad con CVE-2009-0545

La vulnerabilidad permite a los atacantes ejecutar comandos del sistema operativo de manera remota sin estar autenticados en el sistema con permisos de administrador aprovechando la falta de validación de ciertos parámetros enviados por GET y POST relacionados con la aplicación del estándar criptográfico X.509 que soporta.

Figura 3: Opciones que envía por GET parámetros que no son filtrados correctamente

Se muestran a continuación diferentes URLs con los diferentes parámetros enviados por GET y que no son validados de manera correcta en el servidor.

Figura 4: Parámetros enviados por GET que no son validados en el servidor

Búsqueda de dispositivos con Zeroshell

Para realizar una prueba de concepto y comprobar si a día de hoy todavía es posible explotar la vulnerabilidad comentada anteriormente, lo primero será localizar dispositivos en los cuales corra esta distribución de GNU/Linux. Haciendo un poco de Hacking con buscadores podemos observar que aún sigue habiendo máquinas expuestas en Internet sobre las que corre Zeroshell, aunque no son muchas

Figura 5: Algunos sistemas con Zeroshell accesibles desde Internet localizados con Shodan

Es necesario que la máquina a vulnerar reciba peticiones GET bajo los servicios HTTP y/o HTTPS.

Búsqueda del payload

Localizados objetivos potencialmente vulnerables, el siguiente paso es la búsqueda de payloads que aprovechen la vulnerabilidad descrita anteriormente. Nada mejor que realizar una búsqueda en la “gran base de conocimientoExploitDatabase.

Figura 6: Información en https://www.exploit-db.com/ sobre cómo explotar el bug CVE-2009-0545

Los payloads que podemos utilizar durante la explotación de la vulnerabilidad son los siguientes:

Figura 7: Payloads junto con las URLs y los parámetros GET vulnerables.

Ejecución de código en el parámetro User

Inyectando el payload '&cat /etc/passwd&' en el parámetro User, observamos cómo es posible la ejecución remota de comandos para obtener el nombre de los usuarios que pueden acceder al sistema de manera legítima.

Figura 8: Usuarios presentes en el sistema ZeroShell

Aplicando el payload User='&ls /DB&'&PW al parámetro User que se envía por GET también es posible descubrir backups de las bases de datos utilizadas por el sistema.

Figura 9: Backup de la base de datos del sistema

¿Serías capaz de descargar alguno de estos backup utilizando la herramienta wget?

Conclusiones

Este artículo no es más que una prueba clara de lo que explicaba Pablo González en su charla de lo sencillo que puede ser para los malos "Conquistar el mundo con OSINT y Well-Known Bugs" ya que nada de lo que se cuenta es nuevo, y sin embargo los sistemas siguen estando disponibles en la red para quien los quiera explotar. Si tienes un equipo con ZeroShelll, hazle un proceso de Hardening a tu GNU/Linux.

Obvio que alguno puede ser un HoneyPot, pero lo más seguro es que muchos no lo sean. También refuerza el mensaje de que si un fabricante tiene una vulnerabilidad Highly Critical como esta, tal vez deba avisar de forma pro-activa a sus clientes buscándolos fácilmente como hemos visto aquí.

Autor: Amador Aparicio de la Fuente (@amadapa), escritor del libro de Hacking Web Technologies.

domingo, octubre 29, 2017

Elementos Químicos del FUTURO en "Stranger Things"

Me encanta buscarle fallos a las películas y las series. Soy de esos que disfruta pillando los gazapos que los script-guys se dejan cuando se graba una escena. Ya sabéis, la pizarra que se mueve en "El Indomable Will Hunting" en mitad de una charla, o el policía que sale por la puerta del coche por el lado en el que no estaba sentado. En las series de culto de las que tanto me hablan, suelo poner una atención especial, y me fijo en todos los detalles de la escena mientras las estoy viendo. Como en Mr. Robot, donde en el primer capítulo se ve que el protagonista no tiene passcode en su teléfono y yo salté del sofá y dije: "¡Noooo!"

Figura 1: Elementos Químicos del FUTURO en "Stranger Things"

En el caso de Stranger Things me pasó algo similar. He de decir que había oído hablar mucho de ella, y que realmente la serie me gustó mucho en su primera temporada y ahora estoy disfrutando la segunda a punto de terminarla ya. Pero también en el primer capítulo de la primera temporada, pillé un gazapo que me sacó momentaneamente de la trama. Os lo cuento.

Stranger Things: Temporada 1 Episodio 1

Uno de los ganchos que tiene la serie para enganchar al público es la nostalgia de aquella niñez en los años 80. Con los primeros juegos de ordenador, la música de sintetizador, los neones de colores, y las películas de la época. Terminator, Cazafantasmas, Karate Kid, etcétera. Un bonito gancho al corazón del espectador Baby Boomer o Generación X para atraparle. Sin embargo, cuando los niños van a la escuela, el profesor tiene detrás una bonita Tabla Periódica con los Elementos. Y nada más verla, me fui de la trama.

Figura 2: Tabla Periódica en Stranger Things Temporada 1 Episodio 1

La tabla es muy completa, y salta a los ojos de cualquiera que hay muchos elementos químicos. Lo sé, porque yo iba a la escuela en los 80 y cuando yo estudiaba química, la Tabla Periódica tenía huecos en la última fila. Pero ahí están todos.

Figura 3: Tabla Periódica Elementos en los años 80

Basta con mirar las fechas en qué cada elemento químico fue descubierto para saber que esa Tabla Periódica que sala en Stranger Things Temporada 1 Episodio 1 no es de esos años, así que mal por los chicos de producción que no sabían nada de química.

Figura 4: Fechas de descubrimiento de Elementos Químicos

Esto se lo había contado a mis amigos y no lo publiqué, pensando que al final los caza-gazapos también lo habrían visto - seguro que es así - y que los de la producción lo arreglarían para la nueva temporada pero...

Stranger Things: Temporada 2 Episodio 2

Ahí está de nuevo, en la siguiente temporada, la misma Tabla Periódica de los Elementos del futuro. ¿Será que no es un gazapo? ¿Será que Upside Down tiene también viajes en el tiempo? Será que veremos que el Demogorgon tiene lazos futuristas?

Figura 5: La misma Tabla Periódica de los Elementos del futuro en Stranger Things Temporada 2 Episodio 2

Aún no he terminado de ver la Temporada 2, así que nada de spoilers que os atizo. Eso sí, al pillar este gazapo con la Tabla Periódica de los Elementos me sentí muy orgulloso de mí mismo. Me sentí muy Sheldon Cooper desmontando una serie de culto por fallos de ciencia. ¡Oh, Yeah!

Saludos Malignos!

sábado, octubre 28, 2017

Eventos para la semana que viene de @luca_d3 @elevenpaths @0xWord & @tssentinel

La semana que viene tenemos un festivo de por medio con la llegada de Halloween, pero aún así hay eventos de LUCA, ElevenPaths y 0xWord que merece la pena que tengas en el radar por si te apetece participar en ellos. Nosotros hacemos una planificación semana a semana, por lo que al final siempre hay algo en lo que participar.

Figura 1: Eventos para la semana que viene de @luca_d3 @elevenpaths @0xWord & @tssentinel

El primero de los eventos ya lo conocéis, es nuestro primera aniversario de LUCA Data-Driven Decisions que tendrá lugar el día 31 de Octubre - la noche de Halloween - por la tarde. En este evento, que hemos llamado Big In Data, tendrás la posibilidad de participar, o bien presencialmente en Madrid con nosotros, o bien vía Streaming, apuntándote a esta modalidad de retransmisión vía esta URL: Big in Data vía Streaming.


Luego, la noche de Halloween tendremos una sorpresa desde 0xWord, pero deberás esperar hasta el lunes para saber qué es. Eso sí, el día 1 de Noviembre desde ElevenPaths no hemos querido descansar, así que hemos puesto una sesión de CodeTalks for Developers en la que explicaremos cómo se ha construido el paquete de Dirtytooth for Raspberry Pi. Será el día 1 por la tarde pero si quieres ir avanzando, ya publicamos un artículo sobre La implementación de Dirtytooth for Raspberry Pi.

Figura 3: CodeTalks 4 Developers sobre DirtyTooth en Raspberry Pi

Ya para terminar, el día 3 de Noviembre da comienzo el Curso Online de Análisis Forense Informático de nuestros amigos de The Security Sentinel, en el que se entrega como material de apoyo el libro de 0xWord titulado "Esteganografía & Estegoanálisis". El curso tiene un total de 180 horas a lo largo de 11 semanas. Toda la info la tienes en la web del curso.

Figura 4: Curso Online de Análisis Forense

Y esto es todo lo que tengo controlado para la agenda de la semana que viene. Nos vemos en los eventos próximamente, o en el blog todos los días.

Saludos Malignos!

viernes, octubre 27, 2017

El cuento de la Hormiga Valiente

Como ya os conté durante el mes de Agosto pasado, a mi hacker & mi survivor les lleno la cabeza de historias y cuentos. Muchas de esas historias, como dice mi survivor, son salidas de "mi boca". De ahí nacieron las aventuras del Dragón Matías o la historia del Gigante de los juguetes. Pero son muchas y no quiero que se me olviden. A mi hacker, que ya me hace proyectos en Arduino, le gusta que adorne las historias con detalles que le hagan vivirla en primera persona y se las cuento en versión más larga y a veces en varias partes. A mi survivor le vale con que lleguemos a la parte chula de la historia, que en este caso es fácil de detectar.

Figura 1: El cuento de la Hormiga Valiente

En esta que os voy a contar, si eres papá, seguro que encuentras rápido la moraleja que les inyecto y, como te podrás imaginar, mi survivor disfruta imaginando que es la Niña Traviesa mientras yo le voy haciendo de Hormiga Valiente subiendo por las piernas. Espero que os guste la historia y, lo que es más importante, que le guste a vuestr@s hackers & survivors si algún día se la contáis.

Saludos Malignos!

El Cuento de la Hormiga Valiente

El Dragón Matías miraba con preocupación desde el lecho que se había construido al cobijo del Gran Árbol. Era un sitio cómodo sobre hierba verde donde le gustaba descansar cuando acampaban en el Bosque Grande. Siempre el mismo sitio. Era fresquito. Acorde a la temperatura corporal que necesitaba el gran dragón verde. El Dragón Matías era ya un dragón adulto, lejos de su etapa de juventud, pero el Fuego de los Dragones aún ardía con intensidad en su interior. Al igual que sucede en el corazón de los dragones más jóvenes que aún están llenos de pasión. El Dragón Matías era un dragón fuerte.

Miraba con preocupación porque el Rey Papá estaba triste y callado. Cabizbajo mirando a las chispas que caían en el suelo. Estaba sentado sobre una piedra cerca del pequeño fuego que habían construido en el claro del Bosque Grande donde pasarían la noche junto a las jóvenes Princesa Cassandra y Princesa Chiquitina. Ellas también callaban. Ellas también parecían tristes. Y enfadadas. Las dos fruncían el ceño tan fuertemente y cruzaban los brazos con tal intensidad que parecían estatuas. Y se daban la espalda. Habían discutido.

Era noche cerrada. La Luna, en fase de cuarto menguante, dejaba ver un cielo estrellado. El único sonido que se oía en la cercanía era el crepitar de las llamas y la rítmica respiración con humo que el Dragón Matías mantenía.

Con movimientos ecuánimes y diestros, el Dragón Matías se incorporó de su lecho bajo el Gran Árbol. Alzó la cola para no golpear a nada ni nadie y plegó sus grandes alas sobre su gran espalda para acercase despacio al círculo de silencio que se había construido alrededor del fuego. Buscó encontrar su sitio, y se sentó alrededor de las llamas mirando al Rey Papá, a la Princesa Casandra y a la Princesa Chiquitina con resignación por la situación en la que estaban.

Pasaron largos instantes que fueron pocos segundos y nadie dijo nada. Todos seguían igual. Inmutables. Tristes. Enfadados. Frunciendo ceños. Atando sus cuerpos con sus propios abrazos. Mirando en silencio el movimiento hipnótico del fuego. Y el Dragón Matías pensó que ya era suficiente. Se irguió en su cuerpo y con un medido aletear de sus grandes alas provocó una corriente de viento que apagó el fuego, dejando a la luz de la Luna en fase de cuarto menguante y las estrellas, la imagen que representaban esa noche el Rey Papá, la Princesa Cassandra y la Princesa Chiquitina.
- “¡Eh! ¿Qué haces Dragón Matías?”, protestó la Princesa Cassandra. 
- “¡Hace frío, Mati-itas!, ¿por qué has apagado el fuego?”, se quejó la Princesa Chiquitina
El Rey Papá se quedó simplemente sorprendido mirando a los ojos ardientes y sabios del gran dragón. El Dragón Matías comenzó a hablar despacio. Con el fuerte eco de su sonora voz grave. Echando un poco de llamas al fuego para encender otra vez la hoguera y calmar a las princesas una vez que había capturado su atención.
- “Os voy a contar una historia, porque creo que habéis perdido algo. Así que prestad atención. Es la historia de la Hormiga Valiente que tuvo que recuperar el bien más preciado del Hormiguero Risueño y que sorprendentemente un día desapareció por culpa de una Niña Traviesa. Y os voy a contar cómo lo recuperó. Así que abrid las orejas, dejad de fruncir el ceño y prestad mucha, mucha, mucha, mucha atención”.
El Hormiguero Risueño y las Risas Tintineantes

"Hace muchos años, cuando era un dragón muy joven, viajaba por todo el mundo. Eso me permitió conocer a muchos seres especiales. Uno de ellos fue una vieja hormiga que se llamaba la Hormiga Valiente. Ese no era el nombre que le habían puesto cuando nació en el Hormiguero Risueño, pero debido a que era fuerte, decidida y que nunca se dejaba paralizar por el miedo, la Hormiga Reina había accedido a cambiarle el nombre.

Vivía en su juventud en el Hormiguero Risueño donde todas las hormigas trabajaban en armonía para recoger alimento y jugar con la arena y el sol que tanto abundaba en la ladera de la montaña donde vivían al pie de un árbol. El Hormiguero Risueño era famoso por las Risas Tintineantes que se podían escuchar. Las hormigas eran felices y se las oía reír. Risas Tintineantes por todas partes. Siempre una sonrisa y una Risa Tintineante en la boca de una hormiga de aquel Hormiguero Risueño.

El tiempo pasaba feliz entre las Risas Tintineantes de las hormigas del Hormiguero Risueño, hasta que un día sucedió algo inesperado. El almacén del Hormiguero Risueño donde guardaban los alimentos fue destruido. La Niña Traviesa que merodeaba habitualmente por el bosque había cavado un agujero en la tierra jugando y había dejado al Hormiguero Risueño sin todos los alimentos que habían acumulado con tanto trabajo y esfuerzo. Se habían quedado sin nada. No fue por maldad, la Niña Traviesa solo jugaba como hacen los niños, pero sin darse cuenta había hecho daño al Hormiguero Risueño.

Las hormigas estaban desoladas. Tristes. Enfadadas. Preocupadas. Y empezaron a desesperar. No sabían qué hacer. No tenían idea de cómo solucionar ese problema. Y comenzaron a discutir entre ellas. Discutían porque no habían hecho el almacén en una ubicación más profunda. Discutían porque las hormigas guardianas no habían asustado a la Niña Traviesa. Discutían porque no habían hecho otro almacén en una ubicación a diferente. Discutían. Discutían. Discutían.

Y llegaron los ceños fruncidos. Y con los ceños fruncidos llegó la tristeza. Y con la tristeza llegó un silencio que se podía oír. Solo se oía el silencio. Nada más. Ya no había Risas Tintineantes en el Hormiguero Risueño. Ya no se podía oír ese dulce sonido que emitían las hormigas felices al reír. Había desaparecido junto con los alimentos. El Hormiguero Risueño ya no tenía Risas Tintineantes.

La Hormiga Reina y el Consejo de las Hormigas Sabias

La Hormiga Reina se dio cuenta de este hecho y convocó al Consejo de las Hormigas Sabias para resolver el problema. Había que conseguir recuperar no solo los alimentos de la despensa, sino que además tenían que recuperar las Risas Tintineantes o dejarían de ser para siempre el Hormiguero Risueño que habían sido hasta ese día.

Tras largo debate en el seno del Consejo de las Hormigas Sabias del Hormiguero Risueño que había convocado la Hormiga Reina, decidieron que la Niña Traviesa debía haberse llevado no solo el alimento de la despensa, sino que además se llevó su reserva de Risas Tintineantes. Así que necesitaban enviar en una misión de rescate a la Hormiga Valiente para que recuperase las Risas Tintineantes del Hormiguero Risueño de dónde las tuviera guardadas la Niña Traviesa.

El Consejo de las Hormigas Sabias llamó a la Hormiga Valiente para que fuera a la sala del trono de la Hormiga Reina del Hormiguero Risueño y le explicaron su difícil misión. Debía encontrar a la Niña Traviesa y recuperar las Risas Tintineantes del Hormiguero Risueño. Era una misión muy peligrosa. Solo la Hormiga Valiente sería capaz de traer las Risas Tintineantes de vuelta al Hormiguero Risueño.

La Hormiga Valiente, sin miedo, salió del Hormiguero Risueño con su Mochila de las Aventuras donde guardaba todo lo que la Hormiga Valiente podía necesitar. Pelo de un Mastín para atar cosas. Cortezas de pipa de girasol para cavar y picar cuando fuera necesario. Una gota de rocío envuelta en un pétalo de amapola para saciar la sed. Un trozo de bellota que usaría para alimentarse. Y salió en busca en Niña Traviesa.

La Niña Traviesa y la Hormiga Valiente

No tardó en localizar a la Niña Traviesa pues otra vez había salido a jugar a la ladera de la montaña donde se encontraba el Hormiguero Risueño. Saltaba, brincaba, botaba, bailaba mientras gritaba, lo que hacía difícil para la Hormiga Valiente acercarse a ella en ese momento. Así que esperó. Se tuvo que limitar a esperar a que la Niña Traviesa se tranquilizara un poco después de jugar. Y lo hizo al rato.

Como hacía muy buen día, la Niña Traviesa, cansada de saltar, brincar, botar, bailar y gritar, se tumbó a descansar en la hierba de la ladera de la montaña en la que se encontraba el Hormiguero Risueño al que ahora le faltaban las Risas Tintineantes. Se tumbó, cerró los ojos, y se quedó dormidita. Feliz. Contenta. Apaciguada por el dulce sueño que le llegó con el cansancio de jugar. Con una gran sonrisa apareciendo en la cara de la Niña Traviesa.

La Hormiga Valiente reconoció rápidamente esa sonrisa. La había visto muchas veces en las caras de las otras hormigas del Hormiguero Risueño cuando aún tenían Risas Tintineantes, así que supo de inmediato que la Niña Traviesa tenía Risas Tintineantes también. Solo había que descubrir dónde estaban las Risas Tintineantes y cómo podía recuperarlas para llevarlas de vuelta al Hormiguero Risueño.

Mientras tanto, el resto de las hormigas del Hormiguero Risueño había salido a la ladera de la montaña para ver a la Hormiga Valiente recuperar las Risas Tintineantes de la Niña Traviesa y estaban tensas. En primera línea estaba el Consejo de Hormigas Sabias y la Hormiga Reina. Observaban en la distancia viendo cómo la Hormiga Valiente se lanzaba a buscar las Risas Tintineantes comenzando por el pie de la Niña Traviesa.

La Hormiga Valiente miró en los zapatos y los calcetines de la Niña Traviesa, pero no había nada. Ahí no había rastro de ninguna Risa Tintineante. A lo sumo, debían haber sido una despensa pues aún se podía detectar el olor a queso curado por allí. De las Risas Tintineantes no había nada. Solo olor a queso.

La Hormiga Valiente continuó buscando por el cuerpo de la Niña Traviesa que aún dormía con una sonrisa gigante en la boca y comenzó a subir deprisa por la pierna. Primero revisó la pierna izquierda y luego la pierna derecha. Y aunque no había nada por allí, de repente pasó algo que capturó la atención de la Hormiga Valiente.

La Niña Traviesa se movió un poco y la Hormiga Valiente pudo escuchar algo parecido al inicio de una Risa Tintineante detrás suya. Como proveniente de alguna zona más arriba en la Niña Traviesa. Eso le hizo pensar a la Hormiga Valiente que las Risas Tintineantes del Hormiguero Risueño estaban cerca. Y se alegró un poco.

A lo lejos, las hormigas del Hormiguero Risueño, con la Hormiga Reina y el Consejo de Hormigas Sabias a la cabeza, miraban con cara de sorpresa y esperanza. Ellas también habían creído escuchar algo bajito. Muy bajito. Mantenían la ilusión de que fueran sus Risas Tintineantes. Esperaban. No. Deseaban que la Hormiga Valiente las trajera de regreso al Hormiguero Risueño.

La Hormiga Valiente subió por la cintura de la Niña Traviesa y se metió por dejado de la camiseta para ver si estaban escondidas por allí. Se movió rápido alrededor de la tripa de la Niña Traviesa buscando las Risas Tintineantes del Hormiguero Risueño. Y allí encontró algo. Era como la entrada a un hormiguero en el centro de la tripa de la Niña Risueña. Un agujero que había sido cerrado. Como anudado. Un misterio en la mitad de la tripa de la Niña Traviesa.
- “¡Ahá!, ahí deben estar las Risas Tintineantes bien guardadas” –, pensó la Hormiga Risueña.
Con nerviosismo empezó a buscar cómo abrir ese agujero, así que se movió rápido por toda la tripa de la Niña Traviesa. De izquierda a derecha. Arriba y abajo. En círculos alrededor de ese extraño agujero anudado. Y entonces sucedió todo. La Niña Traviesa comenzó a moverse y a emitir una Risa Tintineante. Solo una. La Hormiga Valiente se quedó quieta esperando que salieran más Risas Tintineantes. Pero la Niña Traviesa se volvió a quedar callada, sonriendo y dormida.

El baile de la Hormiga Valiente

La Hormiga Reina, el Consejo de Hormigas Sabias, y el resto de las hormigas del Hormiguero Risueño también oyeron esa Risa Tintineante y su cara cambió de expresión. Volvió a aparecer un atisbo de alegría en sus ojos. Las comisuras de sus labios se torcieron buscando la forma que tienen las bocas cuando aparecen las Risas Tintineantes.

La Hormiga Valiente se percató y en ese momento se dio cuenta de cómo podía sacar las Risas Tintineantes de la tripa de la Niña Traviesa y hacer que llegaran de nuevo al Hormiguero Risueño. Solo tenía que bailar sobre la tripa de la Niña Traviesa para que las Risas Tintineantes salieran no por ese extraño agujero anudado en el centro de la tripa, sino por la boca de la Niña Traviesa.

Así que la Hormiga Valiente se puso a bailar sobre la tripa de la Niña Traviesa. Bailó todo lo que sabía. Y cuanto más bailaba con sus patitas sobre la tripa de la Niña Traviesa, más Risas Tintineantes salían por la boca. Risas Tintineantes que cruzaban la ladera de la montaña donde estaba el Hormiguero Risueño para llegar hasta la Hormiga Reina, el Consejo de Hormigas Sabias y el resto de sus compañeras hormigas.

Y según llegaban las Risas Tintineantes, todas las hormigas sin excepción también reían y emitían más Risas Tintineantes en el Hormiguero Risueño. La Hormiga Valiente había conseguido recuperar la alegría y las Risas Tintineantes para que el Hormiguero Risueño fuera una vez más un Hormiguero Risueño.

El Dragón Matías y las Risas Tintineantes

La Princesa Cassandra y la Princesa Chiquitina ya no tenían el ceño fruncido. Tampoco tenían los brazos cruzados ni se daban la espalda. Tenían sus cabecitas apoyadas sobre sus manitas sostenidas por sus brazos acodados sobre sus rodillas. El Rey Papá estaba absorto escuchando la historia. Sabía que esto no había acabado aún.
- “¿Y qué paso después, Mati-itas?”, preguntó la Princesa Chiquitina.
El Dragón Matías continuó la historia mientras miraba con un poco de maldad al Rey Papá y las princesas.
- “Pues la Hormiga Valiente me dijo que con aquella aventura se dio cuenta de que las Risas Tintineantes no se las habían robado. Descubrió que simplemente las habían perdido. Pero que, gracias a la alegría de la Niña Traviesa, la Hormiga Valiente había aprendido algo mucho mejor. Había descubierto una forma de crear Risas Tintineantes”, continuó la historia el Dragón Matías.
- “¿Y cómo se crean, Dragón Matías?”, preguntó nerviosa y con los ojos muy, muy abiertos, la Princesa Cassandra.
- “No me lo dijo. Eso sí, me dijo que si en algún momento estaba con alguien que hubiera perdido sus Risas Tintineantes, que la llamara. Que ella sabía cómo hacer que se recuperasen. Así que la he tenido que llamar esta noche, y aquí está”, dijo el Dragón Matías.
Las niñas buscaban por todas partes a ver si veían a la Hormiga Valiente, pero no la veían. Mientras, el Dragón Matías con sus dos garras comenzó a simular que la Hormiga Valiente andaba por el suelo.
- “Aquí está la Hormiga Valiente, y vamos a ver quién tiene las Risas Tintineantes guardadas”, dijo mientras subía por la pierna del Rey Papá.
- “Dragón Matías, estate quieto que tengo cosquillas”, se quejó el Rey Papá en vano.
El Dragón Matías comenzó a hacer cosquillas en la tripa al Rey Papá que arrancó a reírse a carcajadas y revolcarse por el suelo, mientras que las princesas Cassandra y Chiquitina disfrutaban con la escena del ver al gran Dragón Matías haciéndole cosquillas al Rey Papá.
- “Vamos, ayudadme, que creo que el Rey Papá se ha cenado todas las Risas Tintineantes y hay que sacárselas de la tripa”, digo el Dragón Matías.
La Princesa Cassandra y la Princesa Chiquitina saltaron sobre el Rey Papá para hacerle cosquillas en la tripa, en el culete, en el sobaco y donde pillaban. Eran como dos Niñas Traviesas juntas saltando sobre el Rey Papá. Se reían todos. Y el Dragón Matías se apartó y volvió a su lecho debajo del Gran Árbol para ver la imagen del Rey Papá luchando con las princesas mientras le hacían cosquillas.

El Bosque Grande se llenó de Risas Tintineantes, y de un pequeño hormiguero al pie del Gran Árbol salió una hormiga. Vio al Dragón Matías, miró hacia el Rey Papá y las princesas y después se giró hacia el gran dragón otra vez.
- “Veo que les has contado mi secreto para crear Risas Tintineantes”, dijo la Hormiga Valiente.
El Dragón Matías sonrió y cerró los ojos plácidamente para escuchar el dulce sonido de las Risas Tintineantes.

FIN.

jueves, octubre 26, 2017

LiLaS: Little Latch Snitch o cómo bloquear protocolos de red a través de Latch e IoC’s

La semana pasada tuvimos una nueva edición de nuestro ya famoso hackathon en el que muchos competimos. Nuestro Equinox. Durante esa semana muchos estuvimos pensando que proyecto llevar a cabo. Hay que recordar que hace unos meses os contamos algún hack que hicimos como el Latch’sApp para exfiltrar datos a través del uso de la tecnología Latch. Tras darle alguna que otra vuelta llegamos a una idea interesante y era la posibilidad de bloquear el uso de ciertos protocolos en una red también usando Latch, nuestro pestillo universal.

Figura 1: LiLaS: Little Latch Snitch o cómo bloquear protocolos de red a través de Latch e IoC’s

¿Cómo los podíamos bloquear? Tras darle una pequeña vuelta, lo vimos claro, Latch nos ayudaría a poder bloquear y poder gestionar de forma sencilla el uso de estos protocolos en la red. Por otro lado, otros compañeros comentaron la posibilidad de meter una serie de reglas con las que pudiéramos activar ciertos bloqueos en función de los IoC's (Indicadores de compromiso) que íbamos a definir. Eso hacía que el proyecto fuera bastante interesante y el reto lo teníamos en la mente y era hora de llevarlo a cabo. Así nació el germen del proyecto LiLaS: Little Latch Snitch.

Por desgracia, y por motivos laborales, tuve que dejar a mis compañeros pronto, ya que solo llegué a la cena, completando las primeras 10 horas de Equinox. El resto del equipo formado por Álvaro Nuñez-Romero, Santiago Hernández, Carmen Torrano, José Torres y Félix Brezo se pegaron la gran paliza para completar el proyecto, así que solo les digo: ¡Olé!.

Montando la base

Durante la tarde estuvimos montando la base del proyecto y lo que utilizaríamos para detectar el tráfico y los tipos de protocolos que pasaban por nuestro sniffer o detector de tráfico. El elemento elegido para hacer de detector era una Raspberry Pi 3. Esta RPi3 la configuramos para hacer de punto de acceso WiFi y mediante unas reglas básicas de iptables hacíamos que el tráfico que nos llegaba por la wlan0, gracias a hostapd, pasaran a la cola de NFQUEUE - algo que ya habíamos integrado tiempo atrás con Latch -.

Santiago trabajó duro con Scapy y Tshark para detectar protocolos y diseccionar el tráfico. ¡Qué grande esa modificación de Scapy que se tuvo que hacer durante esa misma tarde! Quizás algún día publiques esa modificación a.k.a "Scapy on the fly, only the RAM!"

Figura 2: Los IoCs definidos para la PoC de LiLaS

Una vez detectábamos un nuevo protocolo de red que circulaba entre la interfaz de red wlan0, es decir, la del punto de acceso y la de eth0, es decir, en el cable, lo añadíamos al servicio de Latch usando Operaciones dinámicas. En ese instante el administrador podría decidir si quiere dejar pasar el tráfico de dicho protocolo o no por el punto de acceso, pudiendo bloquear el tráfico de cualquier usuario de la red por el protocolo. Esto es algo potente, pero queríamos aprovechar esta potencia para mejorarla con los indicadores de compromiso.

Objetivo: Potenciar con IoC’s

Nos preguntamos, ¿y si con los indicadores de compromiso pudiéramos activar automáticamente el bloqueo de un protocolo usando la API de Latch? Esto mejoraría la experiencia de uso del administrador y le dotaría de un “mini-sistema” de monitorización y alerta temprana en el instante que se detecta el posible compromiso.

Para ejemplificar esto, podríamos pensar en un malware que se comunican mediante dominios conocidos como sospechosos o una herramienta que utiliza dominios con subdominios con formatos largos y extraños, por ejemplo, [hash largo].dominio.com, dónde el [hash largo] identifica datos que se están exfiltrando hacia el exterior. En el momento que esto es detectado, somos capaces de identificarlo y bloquear el protocolo que se está utilizando para la actividad sospechosa.

Figura 3: Las operaciones que se crean automáticamente en el Latch de LiLaS

Todo esto, además, se presentó en una intuitiva interfaz web dónde podíamos manejar los diferentes pestillos que identificaban a cada protocolo conocido y ver el estado. Además, podíamos ver si se había activado algún indicador de compromiso y veíamos los diferentes mensajes que nos llegaban y cómo se estaba actuando en consecuencia.

Conclusiones sobre el hack y el proyecto

Este proyecto proporciona una herramienta para que el administrador tenga el control sobre el tráfico que circula a través de la red a nivel de protocolo. Esto hace posible que los protocolos de una red puedan ser bloqueados, en este caso, a través del uso de una herramienta sencilla como es Latch. Para implementar la solución, se analizaron todos los paquetes de red que nos llegaban, ya que, como punto de acceso a la red, podíamos analizarlos todos.

El administrador puede ver toda esta información a través de un panel web o a través de la aplicación móvil de Latch. El usuario puede decidir si desea bloquear el tráfico correspondiente a cada protocolo. Esto podría ser útil en casos de ataques de malware en la red, dónde éste se propaga a través de un protocolo concreto, ya que se puede bloquear fácilmente. LiLaS incorpora también la funcionalidad que permite desviar el tráfico a un sistema experto basado en reglas para inspeccionar, a través del uso de una cola ActiveMQ, la captura de red. Esta cola ofrece una gran posibilidad para encolar millones de flujos de datos sin que el rendimiento disminuya.

El sistema experto está basado en reglas de IoC para evaluar cuando se da una situación o ésta se repite de manera alarmante y poder activar los pestillos de los diferentes protocolos que cumplan la regla o lanzar alertas a un administrador. LiLaS demostró gran velocidad y flexibilidad.

Figura 4: Latch WebHooks

Por último, queremos dejaros un listado de tecnologías utilizadas para el proyecto o hack:
• Scapy, para la administración de red. 
Webhooks de Latch. 
• Flask, para la interfaz web. 
• Cola de ActiveMQ, dónde los paquetes de protocolo son puestos en cola por un proceso productor y luego son consumidos por el script que analiza ese tráfico encolado. Admite millones de flujos de datos sin disminuir el rendimiento. 
• Nodo TOR, para obtener una dirección IP pública. 
• Hostapd e iptables para hacer de punto de acceso WiFi.

Figura 5: PoC del proyecto LiLaS presentado en Equinox

Quiero dar la enhorabuena a mis compañeros por el triunfo en la categoría “ElevenPaths – Security” y dar mi parte del premio a ellos. Ellos estuvieron las 24 horas al pie del cañón. Como siempre ha sido divertido participar en otro Equinox, aunque solo fuera un rato en comparación con vosotros. Así somos en ElevenPaths, Luca, 4ª Plataforma y Aura, nos divertimos creando y llevando a cabo. ¡Grandes!

Autor: Pablo González Pérez (@pablogonzalezpe), escritor de los libros "Metasploit para Pentesters", "Ethical Hacking", "Got Root" y “Pentesting con Powershell”, Hacking Windows, Microsoft MVP en Seguridad y Security Researcher en ElevenPaths

miércoles, octubre 25, 2017

Implementación Latch'sApp, una herramienta de Data Exfiltration usando Latch

Como en cada Equinox que realizamos en el área de CDO de Telefónica, las ideas que aparecen suelen ser distintas y curiosas. Una de estas ideas fue Latch'sApp, una herramienta de Data Exfiltration que utiliza las operaciones de Latch para sacar de una organización datos y ficheros por un cana paralelo, como los sistemas de esteganografía.

Figura 1: Implementación Latch'sApp, una herramienta de Data Exfiltration usando Latch

En su momento publicamos un par de artículos que explicaban cómo se había construido esta herramienta y lo que se podía hacer con ella. Aquí tienes las dos referencias:
- Latch'sApp: Un hack para exfiltrar datos con Latch 
- Plugin de Latch'sApp para DET (Data Exfiltration Toolkit)
Ahora, como herramienta didáctica que nos sirve para explicar los fundamentos de las API's de Latch y las cosas que se pueden construir con nuestra plataforma, hemos querido hacer un CodeTalk 4 Developers explicando cómo se construyó esta herramienta, y ya lo tienes disponible.

Figura 2: CodeTalk 4 Developers. Implementación de Latch'sApp

Esperemos que estos seminarios donde te explicamos cómo hacer cosas te ayuden a hacer tus propios proyectos, que de lo que se trata es de que puedas construir lo que tú quieras y que saques el máximo partido de tu potencial.

Saludos Malignos!

martes, octubre 24, 2017

AURA es Escorpio y nació en Argentina con 5 servers de peso

Poco a poco vamos quemando etapas antes del lanzamiento definitivo de AURA en todos los países y para todos los clientes de Telefónica. Es un proyecto enorme y maravilloso en el que toda la casa se está dejando la piel. En el que desde los equipos de desarrollo, hasta los equipos de IT en los países, pasando por los equipos de Big Data y CDO en cada operación, o los compañeros en cada rincón de la casa, están echando el resto... y es genial.

Figura 1: AURA es Escorpio y nació en Argentina con 5 servers de peso

Todo empezó ya hace tiempo con una idea de dar a nuestros clientes el control total de sus servicios y sus datos para, en definitiva, darle control de su vida digital en Telefónica. Comenzamos con la construcción de una plataforma que normalizara y pusiera orden a todos los datos, para pasar de ser una compañía Application Centric, a ser una compañía con una plataforma Data Centric. La famosa 4ª Plataforma que nos pidió que creáramos nuestro root.


Figura 2: Presentación de la 4ª Plataforma

Era un proyecto que al principio estaba dentro de las areas de innovación, y por tanto dentro de las Disruptive Things, tal y como este vídeo que usamos internamente para explicar quiénes eran las mentes malignas detrás de los proyectos de futuro.

Figura 3: Disruptive Things en Telefónica

De la construcción de la 4ª Plataforma, nos dimos cuenta de que debíamos ir más allá, y darle el control a nuestros clientes por medio de una Inteligencia Artifical. Inicialmente yo la llamé YOT (You On Telefónica), pero al final se llamó AURA, que es lo que presentamos en el último Mobile World Congress 2017.


Figura 4: Lanzamiento de prototipo de AURA en el MWC 2017

Esa presentación del prototipo de AURA fue la más difícil que he hecho en mi vida, ya que tuve que aprender una coreografía, un texto enorme de memoria, tuve que sincronizarme con el cámara, bailar con los hologramas y hacer demos en real con AURA. Para que os hagáis una idea de la complejidad, os he subido uno de los ensayos en los que estoy aprendiéndome los movimientos básicos de la coreografía y el texto.


Figura 5: AURA Rehearsal 1

De ahí, dimos el siguiente paso, y sacamos AURA a los clientes. Con Focus Groups en 6 países, con miles de personas interactuando con ella, y con una campaña que llamamos Meet AURA. En ella, sacamos AURA a una tienda de Telefónica. En concreto a la tienda de Goya en Madrid donde nos pasó de todo. Tuvimos todo tipo de incidentes con las pruebas de fuego real, desde problemas de reconocimiento de voz con los acentos, problemas con el eco de la cabina, problemas con latencias, problemas con las versiones de software que afinábamos día a día, etc...


Pero después de un mes y medio de pruebas, AURA quedó estable en una versión alpha muy primigenia. En la última semana, viendo que AURA ya estaba muy estabilizada, decidimos grabar esta cámara oculta con los clientes utilizando sus servicios. Y la verdad es que nos emocionó ver el como iba.



Figura 7: Campaña Meet Aura en Telefónica de España. Verano 2017

De ahí en adelante, el camino continua para llegar al próximo Mobile World Congress con los países en producción, y ayer se quemó otra etapa. Ayer AURA en su versión RC0 se pasó a los servidores en producción, en concreto, en los servidores de Argentina, que será uno de los primeros países en que será lanzada al gran público. Este es el mensaje del equipo que envió nuestra compañera Ángela, del equipo de AURA.

Figura 8: Mensaje tras el nacimiento oficial en servidores en producción

Ha visto la luz el 23 de Octubre, así que ha nacido bajo el signo de Escorpio, además en Argentina, pero tendrá múltiples nacionalidades, porque los planes de despliegue están en plena ebullición. Después, irá creciendo, aprendiendo poco a poco de todos los que le damos cariño. Haremos que este bebé crezca y se haga muy inteligente para que los clientes se enamoren de ella poco a poco.

Saludos Malignos!

lunes, octubre 23, 2017

PacsOne Server “All bugs in One” en la gestión de imágenes radiológicas

Hace ya varios meses que publique un artículo en el blog de ElevenPaths hablando sobre las "Debilidades y fugas de información en sistemas médicos (PACS)". A partir de esto, he venido jugando con varias aplicaciones de este estilo y esta ocasión he querido compartir varios fallos de seguridad encontrados en un proyecto denominado “PacsOne Server”, concretamente en su componente DICOM Web Viewer.

Figura 1: PacsOne Server “All bugs in One” en la gestión de imágenes radiológicas

PacsOne combina varios componentes que permiten implementar de manera muy versátil un servidor PACS (almacenamiento de imágenes radiológicas) a través de un solo instalador como lo considera el proyecto ‘PACS Server In One Box’. En su arquitectura principal dicho software mantiene componentes que son comunes en este tipo de soluciones como el Servidor PACS, Servidor DICOM, Servidor Archivos (imágenes), Visor Web DICOM, entre otros; lo que permite para una empresa hospitalaria o de la salud tener todas las prestancias dentro de la mismo plataforma integrada y brindarlas a sus clientes.

Figura 2: Instalador y configurador inicial de PACSOne Server

La curiosidad que al momento me ha despertado mucho interés, son los Visores Web DICOM, los mismos que permiten a través de una interfaz web manipular tanto a médicos o pacientes, las imágenes radiológicas y toda la información involucrada con los pacientes y sus estudios; ya sea desde el mismo computador o remotamente desde internet.

Figura 3: Acceso a Web Viewer de servidor PACSOme expuesto a Internet

Figura 4: Estructura de archivos después de la instalación y código fuente de aplicación web

Cuando inicie con la revisión a una parte del código fuente del Visor Web DICOM, pude evidenciar mediante diferentes pruebas la falta de validaciones y una correcta aplicación de controles de seguridad en el desarrollo de este software, lo cual conllevo a que los resultados se determinen varias vulnerabilidades web entre las cuales puedo destacar Cross-Site Scripting (XSS), Directory Transversal o SQL Injection entre otras.

Figura 5: Código fuente de nocache.php

Mediante la revisión de la aplicación web, se puede identificar claramente falencias en la validaciones de entradas por parte del usuario, por ejemplo la Figura 5 en el archivo nocache.php el input "path" recibido no está validado correctamente lo cual desencadena en una vulnerabilidad explotable.

Figura 6: Código fuente de archivo userSignup.php

En este artículo pretendemos exponer ciertas evidencias de las vulnerabilidades encontradas y explotadas de manera controlada luego del análisis realizado a parte del código fuente, el mismo que es accesible luego de la instalación del software.

Figura 7: Ataque de XSS en archivo login.php

Como podemos ver las vulnerabilidades explotadas pueden llegar a archivos sensibles dentro del servidor [Figuras 8] así como otras de tipo inyección [Figuras 7 y 9], las mismas que podrían llevar desde poner en peligro la información almacenada de los pacientes que se ha realizado estudios, comprometer el servidor o una amplia puerta de entrada a una infraestructura hospitalaria o de la salud.

Figura 8: Ataque LFI (Local File Inclusion) en archivo nocache.php

La base de PacsOne (como indica en su sitio web) ha sido usada por varios proyectos, fabricantes y desarrolladores en general, para integrarlo de manera parcial o total en sus propias implementaciones, con lo cual hace más amplia la exposición de esta aplicación y sus vulnerabilidades.

Figura 9: Ataque SQL Injeciton con sqlmap

Por último, quiero comentarles que las vulnerabilidades expuestas fueron reportadas al equipo de contacto del proyecto, los cuales tuvieron un muy buen tiempo de respuesta tanto en las comunicaciones como en la solución a los fallos reportados de lo cual hemos sido notificados que se han solucionado en su última versión; con lo cual, esperamos seguir colaborando con este tipo de proyectos.

Autor: Carlos Avila (@badboy_nt) Chief Security Ambassador – CSA at ElevenPaths

domingo, octubre 22, 2017

Cómo proteger tus Bitcoins en Bitpay con Latch Cloud TOTP

Aunque debería ser en todos los sistemas de identificación, la verdad es que en el caso concreto de los sitios webs centrados en el manejo y gestión de criptomonedas el uso de un Segundo Factor de Autenticación se ha extendido de forma masiva como un elemento adicional de seguridad habitual para proteger tus valiosos BitCoins, Ethereums, LiteCoins, etcétera. Como ya hemos visto en casos anteriores como Kraken o como CoinBase, podemos configurar Latch Cloud TOTP como Segundo Factor de Autenticación. Hoy a vamos a detallar el proceso para Bitpay.

Figura 1: Cómo proteger tus Bitcoins en Bitpay con Latch Cloud TOTP

Bitpay es un proveedor de servicios de pago con Bitcoin global, con sede en Atlanta, Georgia. Fue fundada en mayo de 2011 por Tony Gallippi y Stephen Pair. Bitpay proporciona procesamiento de pagos de servicios para comerciantes y es uno de los más grandes. Ya en el año 2014, BitPay procesaba alrededor de un millón de dólares diarios. Ese año anunció alianzas con Microsoft, NewEgg, TigerDirect y Warner Bros Record. También se asoció con el operador de sistemas de pago PayPal y sistemas de Alterne. Bitpay ha desarrollado proyectos de open source de Bitcoin, como BitCore y Copay.

Figura 2: Web de Bitpay

Os vamos a mostrar el uso de Latch Cloud TOTP como segundo factor realizando operaciones de moneda digital de una forma más segura y al alcance de todos. Después de iniciar el registro en Bitpay, a través de su web. Nos solicita una serie de datos como dirección de correo, nombre, etc. Realizamos el registro y la confirmación de estos. Y posteriormente configuramos el Segundo Factor de Autenticación, seleccionando la opción de “User settings”, en el menú que desplegamos en la parte inferior izquierda, donde nos indica el nombre de usuario.

Figura 3: Menú de "User Settings" en Bitpay

Y en esta pantalla seleccionamos la opción de “Security” en la parte central, y la opción de “Two Factor” a través del enlace de "EDIT" en la parte derecha. Una vez seleccionado la opción de “EDIT” nos muestra la página con el QR Code que debemos escanear, y para luego confirmar la correcta configuración con la generación de un código TOTP válido.

Figura 4: Código QR a escanear con Latch para generar el Cloud TOTP para Bitpay

Posteriormente vamos a confirmar el código configurado a través de una PIN del TOTP, una vez creado en Latch Cloud TOTP, en el campo denominado “Code”. Y seleccionando el botón de “Enable”.  En las siguientes pantallas mostramos el flujo de pantallas en la app de Latch para generar el Cloud TOTP. En estas primeras, seleccionamos añadir un nuevo servicio, protegemos con Cloud TOTP y escaneamos el QR Code mostrado en la Figura 4 en la web de Bitpay.

Figura 5: Configuración de Cloud TOTP en Latch

Después de escanear el QR Code, podemos cambiar la denominación de nuestro Cloud TOTP como se ve en la imagen siguiente y si continuamos ya disponemos del Cloud TOTP para Bitpay implementado en nuestra wallet de Latch.

Figura 6: Finalización del proceso de configuración de Cloud TOTP para Bitpay

Ya tenemos nuestro servicio de Bitpay fácilmente protegido por Latch, como una capa extra de seguridad. Además, podemos organizar en una “carpeta” en Latch todos nuestros TOTPs que dispongamos, pudiéndolos agrupar como podemos ver en la Figura 6, con la carpeta denominada “TOTP”.

Figura 7: Códigos de Backup tras la configuración correcta

Adicionalmente podemos disponer de Códigos de Backup del Segundo Factor de Autenticación que tenemos que guardar, para utilizar en el caso que perdamos el smartphone, o que no podamos acceder a nuestro TOTP. Estos son generados en grupos de 10 códigos y se pueden solicitar nuevos siempre. En el caso de Latch si no tenemos el smartphone, podríamos hacerlo a través de otro dispositivo que tenga la app descargada e instalada, accediendo con nuestra cuenta de Latch.

Figura 8: Configuración de Latch Cloud TOTP en Bitpay

Y para ve todo este proceso de manera completa, hemos hecho este pequeño vídeo que explica el proceso que hemos visto aquí, paso por paso de una manera visual.

Autor: Juan Carlos Vigo, Product "Warrior" de Latch en ElevenPaths

Entrada destacada

Programa de Especialización "Inteligencia Artificial para Expertos en Ciberseguridad" 2ª Edición.

Hoy, en medio del verano, os traigo información de la 2ª Edición del   Programa de Especialización  de "Inteligencia Artificial para Ex...

Entradas populares