miércoles, septiembre 30, 2020

Mentor de los Programas Máster del Campus Internacional de Ciberseguridad

A lo largo de mi vida siempre he estado cerca del mundo universitario. Hice mis estudios de Ingeniería Técnica en Informática de Sistemas en la Escuela Universitaria de Informática de la Universidad Politécnica de Madrid, donde años más tarde me nombraron Embajador Honorífico. Hice los cursos de Ingeniería Informática y el Master en la Universidad Rey Juan Carlos, donde años más tarde acabaría mi PhD en Seguridad Informática y donde me nombrarían Doctor Honoris Causa

En la parte de enseñanza, fui director del Master de Ciberseguridad en la Universidad Europea de Madrid durante casi diez años, donde además di clase en todas las ediciones, fui profesor de la UOC online de un par de asignaturas durante unos años,  he participado en conferencias y clases en muchas universidades, y la UDIMA me concedió la medalla de oro de ciberseguridad.

Sin embargo, a pesar de que intento estar siempre cerca, tuve que apartarme de la vida universitaria durante un tiempo. Quería centrarme en mi trabajo, así que la preparación de las clases, las horas de formaciones los viernes y sábados, la corrección de prácticas, y preparación de exámenes, era un tiempo que no tenía. El tiempo, siempre lo más valioso que tenemos y que a veces desperdiciamos. Pero seguía teniendo el gusanillo dentro de volver a la universidad de alguna manera.


Figura 2: Mentor del Programa de Máster del Campus Internacional de Ciberseguridad

Si has leído mis artículos al respecto, como "Consejos Malignos para tu etapa formativa y profesional", "El problema de la recta pintada píxel a píxel", "No aprendas SAP si quieres transformar el mundo", "El par de puntos más próximo", "Resolver el factorial de 100 no es picar código", "Suspende como ingeniero o atente a las consecuencias", "A la universidad se viene a transformar tu futuro y el nuestro, no a sacar un título", "Unos consejos para ti que empiezas tu etapa universitaria", "El algoritmo de Melkman, La marcha de Jarvis y Estadística", "Ingenier@ sí, Ingenier@ No" y "Por qué estoy agradecido a España y a la Universidad", creo que queda claro que tengo una inclinación académica que no puedo negar, y estar totalmente desligado de la universidad era algo que no me acababa de dejar feliz.


Pero durante este verano ha surgido la oportunidad de unirme al Campus Internacional de Ciberseguridad como Mentor de su programa de Másters propios, y he decidido embarcarme en esta aventura para volver a estar otra vez cerca del mundo académico. Intentaré aportar mi experiencia y visión al diseño global de los planes formativos, además de proponer algunos Trabajos de Fin de Máster que puedan realizar conmigo y mi equipo de Ideas Locas.


Actualmente el Campus Internacional de Ciberseguridad tiene 8 títulos de Máster propios que podéis ver en la siguiente página web (Másters del Campus Internacional de Ciberseguridad), y tenéis la lista de profesores y directores de los másters en cada uno de ellos, donde están Sergio de los Santos, Vicente Aguilera, Hugo Zunzarren, Yaiza Rubio, Pablo González, Selva OrejónCarlos Seisdedos, Felix Brezo y un largo etcétera de profesionales reconocidos y de larga trayectoria profesional. 

Además, participaré con una Máster Class para todos los alumnos de todos los másters, así que entre los TFMs, trabajar un poco más cerca de los profesionales de estos programas, y volver a estar un poco más cerca de la Universidad espero poder divertirme otra vez con la enseñanza.

Saludos Malignos!

martes, septiembre 29, 2020

Próximo 1 de Octubre: Cómo llevar tu Startup a 1 millón de hogares con el Telefónica Activation Programme de Living Apps

Cuando llegó el COVID19 sabíamos que existían muchas posibilidades de que alterase lo que conocíamos hasta ahora, aunque en ese momento no sabíamos muy bien a qué escala iba a ser. Nuestros compañeros de Wayra, el centro de innovación abierta global de Telefónica, han realizado un estudio sobre el impacto económico del COVID-19 en las startups donde los resultados han sido arrolladores: al menos el 74% de las startups se han visto afectadas negativamente.


Con el objetivo de ayudar al ecosistema de startups en esta situación,  desde Telefónica hemos lanzado el Telefónica Activation Programme, que tiene como objetivo ayudar a los emprendedores a escalar su solución en el mercado y darse a conocer gracias a la creación de su propia Living App en el ecosistema de televisión de Telefónica.


Además de los canales tecnológicos, el programa ofrece acceso a la innovación tecnológica de Telefónica, soporte técnico personalizados y la posibilidad de formar parte de su ecosistema de emprendedores. Esto conlleva tener relaciones profesionales con otras startups, y la oportunidad de que Wayra valore invertir en tu proyecto.
 

Figura 3: Telefónica Activation Programme

A día de hoy, la plataforma de Living Apps llega hasta más de un millón de hogares, lo que ayudará a las startups a estar cerca de millones nuevos usuarios o clientes de sus tecnologías. A día de hoy, la plataforma está creciendo, y hemos integrado recientemente ya algunas startups como Nubico, GoMusic o FitCO Moves.  Nubico es una plataforma de lectura digital que ha creado una experiencia de audiolibros para que disfruten los más pequeños y se acerquen, así a la lectura, y así desarrollar un nuevo negocio


Figura 4: Living App de Nubico: Audiolibros en Movistar+

También hemos integrado startups de éxito como la citada FitCo Moves, que ofrece la posibilidad de hacer deporte sin moverte de casa, con vídeo guiados y elaborados por profesionales del deporte. Además, en esta experiencia han incorporado una parte de gamificación en la que puedes retar a tus amigos o llevar el control de todos los entrenamientos que has realizado a través de logros y medallas. Y con GoMusic, puedes asistir a los conciertos en directos que quieras desde la Living App en tu televisión.


Figura 5: Living App de GoMusic

Todas ellas, en el momento que están publicadas, están disponibles en todos los hogares Movistar en los que ya hemos habilitado las Living Apps: Más de 1 millón. Es decir, desde el minuto uno en que una startup tiene su Living App publicada, está en todos esos hogares instalada y lista para ser utilizada.


Figura 6: Telefónica Living App Activation Programme

Gracias al Telefónica Activation Programme se ofrece la posibilidad a las startups seleccionadas, de crear de forma gratuita su propia Living App. De esta forma, los emprendedores podrán llevar sus productos o soluciones tecnológicas a más de un millón de usuarios a través de Movistar+, y crecer como compañía en un canal nuevo que llega hasta el corazón de los hogares en un entorno muy especial, la televisión.

Las Living Apps encuentran en el menú principal de Movistar+, en la parte superior. Cuando entras en la sección “Apps” puedes ver las Living Apps según se van añadiendo, algunas son propias de Telefónica, otras son de empresas o partners, y otras, de startups que están desarrollando este nuevo canal comercial. 


Si quieres saber más, no puedes faltar este jueves 1 de octubre al webinar informativo sobre el Telefónica Activation Programme que impartiremos Antonio Guzmán (Director Digital Home en Telefónica) y yo. Será a las 16:30h (CEST) y tendrá acceso gratuito para todos los emprendedores que quieran descubrir todos los detalles de la iniciativa. 

Autora: Irene Gómez (Directora de Telefónica Connected Innovation) 

lunes, septiembre 28, 2020

Cómo Klingorizar el iPhone de Mi Hacker

Mi Hacker ya no es tan pequeña. Esa niña que vino al mundo unos días antes de que estuviera en el mercado el primer iPhone. Y a estas alturas ya adora la tecnología. Por supuesto, he intentado meterle el gusanillo en el cuerpo de aprender a ser un creador de tecnología en lugar de un usuario de la tecnología y eso ha llevado a que esté constantemente intentando sorprenderme, robarme las claves, o enseñarme algo nuevo.


Este verano, me quiso sorprender con un truco que consistía en desbloquear su iPhone con la voz, usando el Control de Voz tal y como había descubierto en un vídeo en Tik Tok, y yo quise enseñarle que al abrir un nuevo canal de control del iPhone se extiende la superficie de exposición para que hagan cosas malas, como contaba en la charla que di en el año 2015 de "Tu iPhone es tan (in)seguro como tu Windows", al intentar hacer la metáfora de que si conectas tu iPhone a tu Windows, has extendido la superficie de exposición la seguridad de tu Windows.


Figura 2: Tu iPhone es tan (in)segura como tu Windows

Así que..., para explicar este concepto a Mi Hacker, empecé a jugar con mis compañeros del equipo de Ideas Locas en cómo "Klingorizar el iPhone de Mi Hacker".  Cuando me invitaron a participar en la Ekoparty 2020 decidí que hablar de esto que estaba haciendo en estos momentos podría ser interesante, y así fue la charla que di en mi keynote de esta edición. 


Figura 3: Cómo Klingorizar el iPhone de Mi Hacker

Por supuesto, cuantas más conozcas de la arquitectura de seguridad de un iPhone, más podrás conseguir sacarle partido a las nuevas formas de interactuar con él, así que todos los trucos de Hacking de iOS: iPhone & iPad que hemos ido atesorando, como las JavaScript Botnets y la falta de validación de BSSID en los terminales iPhone, el DirtyTooth, o los trucos que se pueden hacer con Siri sin necesidad del passcode, son siempre de gran utilidad para un nuevo entorno, y en la charla usamos alguno viejo como el truco de bar para robar las cuentas robando el 2FA.


Ahora, poco a poco, con algo de tiempo, os iré desgranando todos los detalles de la charla, del trabajo, de lo que se hace en el iPhone, de lo que hemos ido probando, de lo que hemos ido pensando, y el porqué de las cosas, para que podáis aportar ideas y sugerencias a esta investigación aún en curso. A ver si os gusta la charla.

Saludos Malignos!

domingo, septiembre 27, 2020

ATTPwn: Cómo cear tu propia implementación de una técnica MITRE ATT&CK

Después del verano seguimos sacando tiempo para ir mejorando y actualizando ATTPwn, la herramienta que publicamos en BlackHat USA y en DefCon. Se está celebrando la EkoParty 2020 en modo online, con un gran despliegue de medios y una gran cantidad de contenidos y hemos tenido la oportunidad de estar en la Eko Zone del Red Team con un workshop de ATTPwn. Ha sido un orgullo poder estar por segunda vez en EkoParty y disfrutar de los amigos, aunque en esta ocasión nos haya tocado de forma telemática.

Figura 1: ATTPwn: Cómo cear tu propia implementación de una técnica MITRE ATT&CK

Revisando un poco la documentación y los ‘To Do’ que tenemos con la herramienta me fijé que la incorporación de una implementación para alguien ajeno al desarrollo de la herramienta puede ser un poco complejo. Por ello, quería hacer un artículo explicando cómo hacer una implementación de una técnica de MITRE ATT&CK y poder añadirla a ATTPwn. En un futuro simplificaremos el proceso para que se pueda hacer desde la propia interfaz web de ATTPwn, pero a día de hoy el proceso es el que comentaremos a continuación. 


También quería recordar que el proyecto es colaborativo, por lo que cualquiera que quiere colaborar puede hacernos un pull request al repositorio de Github. Pronto iremos haciendo algunas actualizaciones diferentes del proyecto para ir añadiendo técnicas e ir añadiendo algunas funcionalidades que simplifiquen el flujo. Además, estamos estudiando algunas integraciones con ciertas herramientas que puedan dar valor a lo que se proporciona en la herramienta.

¿Por dónde empiezo?

Si queremos hacer una función implementando alguna técnica de MITRE ATT&CK deberemos optar por Powershell. En el proyecto, dentro de la carpeta ‘functions’ encontraremos un fichero llamado “skeleton file”. Este fichero es una especie de “molde” para simplificar la implementación. 

Figura 3: Fichero Skeleton

El aspecto es sencillo. Tenemos una primera parte que implementa la función en sí. El nombre de la función debe ser sustituido por ‘invoke-namefunction’, siendo namefunction el nombre que queramos. Dentro de la función se meterá todo lo necesario para llevar a cabo la técnica.


Si bajamos un poco nos encontraremos con un comentario ‘#Main program’. Este sería el programa principal. El main se divide en tres partes:

- GiveMeData: En esta parte se solicitan datos que se requieran para ejecutar nuestra función. En algunos ámbitos necesitaremos trabajar con datos como direcciones IP, nombres de usuario, hashes NTLM, etc... Por esta razón, antes de invocar nuestra función, podemos solicitar ese tipo de datos que se encuentran en el DataStore de ATTPwn.

- Execution: Tanto si requerimos de datos previos como si no, nuestra función se ejecutará. Este ocurrirá en esta parte del código. El resultado lo guardaremos en $execute. Hay que darse cuenta que $execute es un diccionario con dos campos “results” y “success”. La primera muestra el texto que se mostrará en ATTPwn como salida de la función ejecutada, mientras que ‘success’ indica si la ejecución de la función ha sido correcta o no. Esto es algo que debe ser controlado por parte del desarrollador, es algo a tener en cuenta.

- PutData:. En esta parte ‘post-ejecución’ se pueden subir datos de interés al DataStore. Esto se hace con la intención de que otras técnicas que sean ejecutadas en el mismo plan de amenaza (en la misma emulación de adversario) puedan aprovecharse de la información obtenida por esta técnica. Por ejemplo, cuando hacemos un escaneo de red y se obtienen puertos o direcciones IP (entre otros datos), se pueden volcar al DataStore a través de la llamada putData a ATTPwn.

Mi primer ejemplo

Ahora vamos a jugar con una primera técnica a la que llamaremos ‘invoke-mytechnique’, la cual implementa un ‘holamundo’. A continuación os dejo el código:

Figura 5: Primer ejemplo

Como se puede no hace uso de GiveMeData ni de PutData, ya que la técnica no requiere de información previa, ni genera información de interés a posterior, más allá de la salida que tiene y la información sobre si se ha ejecutado o no correctamente.

La función ‘invoke-mytechnique’ simplemente ejecuta un ‘holamundo’ por pantalla y almacena una palabra en $results e indica que siempre ha ido bien la ejecución de la función poniendo $good a true. Más sencilla imposible. No hace nada realmente. Ahora, voy a la carpeta functions del proyecto y veo mi función en el fichero ‘invoke-mytechnique’. Junto al resto de funciones del proyecto.

Figura 6: funcions/invoke-mytechnique

Desde el IDE me voy al fichero data.py, el cual es el que almacena todo el modelo de ATTPwn del comienzo y modifico, dentro de ‘insert_intelligence’, la línea que encaje con la táctica y la técnica que estoy implementando. Para este ejemplo, he configurado mi implementación en TA0001 y T1091, aunque no encaje con la realidad. Modifico el campo “Function =” y le pongo mi nombre de función ‘invoke-mytechnique’. 

Figura 7: Integrando la funcion

El campo de Terminated a true o false nos vale para indicar a la consola de ATTPwn si esta técnica es de escalada de privilegio o de movimiento lateral, en estos casos pensemos que si la técnica tiene éxito en su ejecución tendremos un proceso nuevo con privilegio o nuestra consola de ATTPwn se ejecutará en otra máquina.

Figura 8: Tactics TA00001 y Tecnica T1091

Ahora, vamos a probar lo que hemos hecho. Si queréis ser rápidos ejecutáis un “docker build -t attpwn:mytechnique” y levantáis una imagen de Docker con ATTPwn y vuestros cambios. Después un “docker run –rm -it -p 5000:5000 attpwn:mytechnique” y tendréis listo ATTPwn para acceder desde el navegador.  Nos vamos a la vista de Plan y pinchamos en Create a Plan. Veremos que la táctica TA0001 y la técnica T1091 (aunque se corresponde con Replication Through Removable Media, no tendrá que ver) tiene una implementación de invoke-mytechnique, tal y como se ve en la Figura 8.
  
Figura 9: Warrior P0YPMC

Cuando lanzamos un ‘warrior’ de ATTPwn en Powershell en una máquina Windows, éste se conectará y se identificará. En este caso ‘P0YPMC’ es el ID. Tras configurarle el plan ejecutará mi función invoke-mytechnique.

Figura 10: Mensaje de texto "holamundo"

Si revisamos la salida que proporciona mi función encontraremos el texto “holamundo” que es el que albergaba la variable $results y que se devolvía a la consola de ATTPwn y ésta devolvía al C2.

Usando GiveMeData y comprobando un PING

Ahora vamos a modificar la función para que haga algo más. Lo primero fijaremos el objetivo. El objetivo de la nueva función será el de hacer un PING a una o diferentes direcciones IP. Para ello introducimos algunos cambios:

- Añadimos a la función invoke-mytechnique el campo param de Powershell para recibir datos como parámetros. En este caso solo queremos recibir una dirección IP.

- La ejecución de la acción la almacenamos en $execute para que no muestre nada por pantalla en la Powershell. Comprobamos si el ping se hizo correctamente o no y almacenamos dicho valor en $good.

- Si $good marca true almacenamos el resultado como positivo y si no mostramos un resultado negativo.

Figura 11: Cambios en la función para hacer ping y devolver $good

En la imagen se puede ver el código. Fácil y sencillo.  En el caso del main, ¿Cómo evoluciona? Lo primero es indicar a dónde se realizarán las peticiones de GiveMeData. La variable $uri lo almacena. $uri = "http://"+$global:remoteip+":5000/getdata". La variable $global:remoteip es una variable global que está definida en el fichero console_template y que cuando se genera el fichero console toma valor (cuando generamos el warrior desde el C2 de ATTPwn).

Una vez sabemos dónde pedir los datos, los pedimos identificándonos con $global:id. Esta variable también se define en el fichero console y proporciona el valor del ID. Cada ID identifica a un plan de amenaza y cada plan de amenaza tiene un DataStore diferente. Esto es importante.

Figura 12: main program

Se ve que pedimos las direcciones IP al DataStore. Si quisiéramos pedir los usuarios o los hashes, en vez de ip=”” indicaríamos user, ntlm o lm. Después, ejecutamos la función invoke-mytechnique pasándole una dirección IP. Si tuviéramos más de una se lanzaría la función N veces e iríamos recogiendo los resultados para preparar la salida de ‘return @{results=$execute.results;success=$execute.success}, que es lo que le llegará a la consola y lo que se reportará al C2 de ATTPwn.

Ahora, antes de ejecutar esta función. Conectamos una consola con el C2 de ATTPwn y nos vamos a la vista ‘Results’. En esta visa vamos al DataStore de esa consola y le damos al botón ‘+’ y añadimos una dirección IP como se ve en la imagen.

Figura 13: DataStore

Ejecutamos el plan y obtenemos un resultado que podemos visualizar en ‘Results’ y pulsando sobre la lupa. El resultado es el mensaje que codificábamos cuando el PING era correcto. 

Figura 1$: Ping  OK

En el caso de que el PING no sea correcto, es decir, la máquina no responda a PING se obtiene el siguiente mensaje, tal y como se había programado en la función.

Figura 16: Mensaje final

Animamos a todos a participar en este proyecto colaborativo y que se hagan sus implementaciones de funciones. La verdad es que con la matriz de MITRE ATT&CK se puede aprender mucho sobre el Ethical Hacking y el Red Team, ya que hay un gran catálogo de técnicas que son utilizadas en el día a día. 

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”, "Pentesting con Kali Silver Edition" 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 - Conseguir 100 Tempos Gratis en MyPublicInbox

Figura 17: Contactar con Pablo González

sábado, septiembre 26, 2020

LemonCrest: Una historia de emprendedores Makers & Gamers (4 de 4) #RaspberryPi #GameBoy #Gaming #makers

En la parte anterior de este artículo habíamos visto como diseñar la placa tenía sus retos y decisiones complejas, pero no se iba a quedar ahí. El proceso de construir la Kelboy 2.0 tiene muchas otras cosas a tener en cuenta para que funcione bien el sistema, hoy vamos a ver en esta última parte algunas de ellas, que como veréis nos son pocas. Al final, una placa compleja tiene retos complejos.

Figura 33: LemonCrest: Una historia de emprendedores Makers & Gamers (4 de 4)

Teníamos que plantear los retos a mitigar. Los detalles son importantes para poner las mejores características al producto. Nos pusimos en marcha y se consiguió funcionalmente:
  • Fuel-Gauge por I2C proporcionando el control absoluto del consumo, la batería y su estado.
  • WiFi/BT de última generación por SDIO, la base de estos drivers fue facilitada por Panasonic en versión GPL, de manera que somos capaces de mejorarlos y adaptarlos al sistema.
  • Audio por I2S, un sistema de audio digital en formato 384 kbps y 32 bits de alta calidad que hacen que los juegos suenen mejor que el primer día.
  • Memoria EEPROM interna por I2C accesible por el driver para el espacio de usuario.
Así mismo, queríamos conseguir vídeo en una pantalla embebida. La primera reacción del usuario al encender la Kelboy 2.0 es lo bien que se ve esta pantalla. Para conseguirlo tuvimos que aprender a manejar los distintos formatos de pantallas existentes, LVDS, CSI-MIPI, RGB TTL. Uno de los más complejos y por donde empezamos, debido en mayor medida a sus resoluciones, fue el CSI-MIPI.

Figura 34: Configurando la pantalla de la Kelboy 2.0

El problema de este apartado es que está cerrado y las empresas no quieren perder el control sobre las pantallas, por lo que nos quedamos atascados en los DPI timmings. Estos tiempos son los que utiliza el protocolo CSI-MIPI para enviar la información de vídeo y que el driver de la pantalla lo entienda correctamente para visualizarlo. No abandonamos esta alternativa en otros proyectos, pero pensando en la salida del prototipo de Kelboy 2.0, sacar los tiempos por ingeniería inversa como estamos haciendo consumía un tiempo elevado y el proyecto debía continuar.

Figura 35:  "Raspberry Pi para Hackers & Makers:
PoCs & Hacks Just For Fun
" de 0xWord

Por lo tanto, se decidió reducir la complejidad e irnos a un RGB TTL, donde nuevamente nos encontramos con el problema de los tiempos. Dicen que la experiencia es siempre un grado y esta vez con lo aprendido del CSI-MIPI se obtuvieron unos tiempos óptimos con el resultado de una pantalla con una nitidez espectacular. Se buscaba alcanzar la sensación a nivel usuario de pixel perfecto y se consiguió el reto.

Figura 36: FullHD DPI Test

Una vez conseguida la pantalla, pasamos al siguiente punto, y no menos importante, los periféricos como el sonido y GamePad. Para poder avanzar con todo esto debíamos comprender y conocer los drivers, un conocimiento que fue adquirido a cabezazos y el libro de Alberto Liberal de los RíosLinux Driver Development for Embedded Processors“.


Pero nuevamente, se nos planteó otro problema. Al utilizar la pantalla con un bus RGB-TTL que es paralelo, necesitamos un GPIO por cada bit de cada color más el GPIO de sincronización vertical, sincronización horizontal y el reloj que marca cuando se debe leer la señal. 

Figura 38: Valores GPIO

Por lo tanto, debíamos modificar a nivel de descriptor hardware el entendimiento del kernel de Linux de qué es cada pin. Para ello contamos con la ayuda del foro de Raspberry Pi y pudimos mover el bus I2S y el I2C a GPIOS que estuviesen libres, puesto que todos los GPIOs iniciales de la Raspberry Pi estaban en uso. Este punto tiene cierta dificultad ya que, aunque Raspbery Pi quiera ser abierta, Broadcom tiene muchas partes ocultas que no lo permiten, con lo que el funcionamiento difiere bastante de una plataforma no tan privativa. 

Figura 39: Tabla de Funciones Alternativas del banco 1 de GPIO

Como se puede observar en la imagen estos eran los pines que nos quedaron libres. El resultado fue del 28 al 32 para el I2S, del 34 al 40 para el SDIO, y del 44 al 45 para I2C nos quedaron libres 4 pines. Ahora bien, nos quedaba por gestionar las interrupciones del bus I2C y el backlight. Lo bueno es que a nivel de driver podemos escoger los GPIO o cargarlos desde un descriptor hardware dando versatilidad. Quedándonos la friolera de dos pines libres teníamos que decidir bien su uso. Control del hardware, uno para detectar pulsación de apagado y el otro para poder resetear los periféricos.


Figura 40: Testeo de la Kelboy 2.0

Por último, nos queda el apartado del GamePad, la forma más simple de abordar un dispositivo de estas características que cumpliese nuestra dificultad en cuanto a “ocupación” de los GPIOS del procesador era el USB. Esto nos introducía en un campo de mucha complejidad, el stack HID del USB.

Nuevamente abordar esto no era sencillo, y aunque no esté cerrado en su totalidad no hay una documentación en si misma que explique cómo poder programar a bajo nivel los drivers y enfrentarse a ello. Bienvenido al mundo del hardware. Para entenderlo se inició con dos documentaciones antiguas pero muy conocida “USB in a nutshell” y “USB made simple”. Una vez entendido se inició a abordar con microprocesadores como el STM32, pero nuevamente otra losa en el camino... necesitábamos más de un USB Device al mismo tiempo, lo que nos situaba en un USB Device Composite.

Para variar en este mundo del bajo nivel las empresas potentes no dan soporte a este tipo de funcionalidades, y si las quieres hay que pagar por stacks privativos unas sumas de dinero considerables además de la firma de licencias restrictivas, lo que nuevamente nos situaba en una posición donde no podíamos avanzar.

¿Cómo realizamos un USB Device Composite en STM32?  ¿Programamos el driver? Cómo no esta tarea implicaba un largo recorrido y con muchos interrogantes. Tras llegar a este punto se decide por buscar algún framework que dé soporte a este punto, encontrándonos negativas en los frameworks Mbed y HAL de STM32 pero con una muy buena noticia, el USB_Plugable.h del framework de Arduino sí contemplaba estas situaciones. 

Figura 41: "Arduino para Hackers: PoCs & Hacks Just for Fun"

Con la ayuda del creador de Teensy y empresas tan valiosas como Adafruit y Sparkfun parecía que el framework de Arduino iba a ser el camino, y así ha sido.  Gracias a leer las múltiples librerías de ejemplo y lo aprendido anteriormente conseguimos describir el HID que queríamos fielmente al detalle, un Gamepad embebido.

Figura 42: Descripción del HID

Lo bueno de todo esto es que las librerías del framework de Arduino facilitan todo el apartado de cabeceras necesarias para el stack del USB y uno se puede centrar en el descriptor de su dispositivo, pudiendo así realizar el dispositivo que se quiera, tanto sea un ratón, un teclado..... o incluso un dispositivo Raw, es decir, sin funcionalidad conocida pero que con el driver adecuado realiza la función programada.

Figura 43: Descriptor del Gamepad

Finalmente, solo era necesario rellenar el descriptor que posteriormente empaquetaría las funciones del framework del Arduino, dando como resultado un USB Device Composite funcional de una manera tan simple comparada con otras soluciones que es increíble, aquí es donde se ve nuevamente la fuerza que tiene la comunidad y el movimiento Open Source. El resultado y felicidad al ver este mensaje saliendo por la consola de log de Linux fue y será indescriptible.

Figura 44: Log de Linux con el Gamepad cargado

Pudiendo así redondear un sistema completo. ¿El siguiente reto? Dar soporte y crear paquetes de distribución Debian para que podamos integrarnos al gestor de paquetes APT, que el usuario pudiera manejar de manera sencilla. Lo bueno de todos estos cabezazos es que tenemos en la palma de la mano un dispositivo abierto, donde se enseñan las tripas de manera completa y que nos da la posibilidad de tocar y modificar a voluntad pudiendo así obtener múltiples funcionalidades. El objetivo de ser abiertos se cumple.


Figura 45: Kelboy 2.0 con Mario Kart64

Hemos explorado más posibilidades como soluciones IMX y con otros ARM, y adquirimos más conocimiento en el camino. Diseñamos y ensamblamos nuestro propio hardware, por lo que aprovechamos a ampliar nuestra oferta de productos y servicios de empresa incluso ofreciendo la fabricación de hardware a medida para la industria de manera asequible. Aplicamos nuestros principios a la industria moderna sin firmwares extraños dando un soporte completo y cercano de un fabricante 100% español y de calidad. Somos MADE IN SPAIN. Somos LEMONCREST.

viernes, septiembre 25, 2020

Spetrick, Noble, Legend, Lord Zakuza y otros buscadores de víctimas de esas que quieren contratar "hackers" o "magos" para solucionar su vida

Constantemente me llegan comentarios a esta blog que tengo en moderación haciendo spam para buscar víctimas. Víctimas de esas que piensan que pueden solucionar, si consiguen contratar un hacker o un Pirata Informático Ético Certificado, sus problemas con las notas de la universidad, que pueden arreglar sus problemas de pareja hackeando el WhatsApp a su pareja, o el Facebook, o que pueden hacerse de oro gracias al BitCoin, que han oído que es muy fácil y hasta yo lo hago.

Figura 1: Spetrick, Noble, Legend, Lord Zakuza y otros buscadores de víctimas de esas que quieren contratar "hackers" o "magos" para solucionar su vida

Esos mensajes son muy repetitivos, pero como las páginas webs dedicadas a estas estafas de "Contratar Hackers" no duran demasiado porque se las tumban, recurren a cosas más sencillas como el e-mail o una dirección de WhatsApp - que siempre son números virtuales, por supuesto -. Hoy os traigo algunos de esos mensajes para que veáis lo absurdo de lo que proponen, y lo lucrativo que sigue siendo este negocio para los cibercriminales que viven de estafar al que quiere estafar.

Figura 2: American Hackers en brasileño

Este primer mensaje es para que veáis solo como ya no se preocupan de una infraestructura grande. Basta con una dirección de e-mail y mucho spam con correos electrónicos y mensajes en foros, blogs y cualquier sitio donde les dejen.

Figura 3: e-mail y WhatsApp con número virtual.
Si no eres ingeniero es porque no quieres.

Este me ha hecho gracia por la propuesta de valor de la oferta: El tiempo. En una hora se cepillan el WhatsApp y el Facebook de quien quieras. En 1 hora te hacen Doctor Universitario o Doctor Honoris Causa si se ponen. Y en un poco más, en solo "unas pocas horas" te quitan los antecedentes penales. Para que luego digas que no son rápidos estos servicios.

Figura 4: Si no tienes BitCoins es porque no quieres.

Fíjate, estos tipos son geniales. Te cargan una cuenta de BitCoin vacía sin pago anticipado. Hay que flipar, porque el negocio es redondo. Te abres una cuenta de BitCoin, ellos te la llenan y tú de ahí les pagas. Sin arriesgar nada. No sé cómo no se han dado cuento. Eso sí, además de eso gestionan el Software de repuesto y se ofrecen para Tabajar como asesor de Ciberseguridad. ¿Trabajar? Pudiendo tener los BitCoins del mundo quién quiere trabajar...

Figura 5: Otros que regalan BitCoins

Otros "hackers" que hacen de todo, de todo, de todo. Solo hay que leer la lista de servicios que es de flipar. No solo hace hacking, sino también growth hacking para que suba tu blog, tu web, etcétera. Servicio disponible solo por e-mail de Gmail. Nota: También regalan BitCoins.

Figura  6: Con experiencia

Estos son con experiencia, ya que como dicen en el mensaje "Han pasado hasta 2 décadas en la profesión de pirateo informático como piratas informáticos bien calificados y su reputación es reconocida positivamente". Vamos, que si quieres un profesional con experiencia y referencias estos te hacen de todo. Desde falsificar certificados hasta Cortar el Sistema Judicial. Ahí es nada.

Figura 7: Aquí está Spetrick

Que este es de verdad, ¿eh? No te vayas a pensar que Spetrick es como esos hackers falsos que te sacan dinero y no hacen nada. No, no, no. Spetrick es diferente. Te ayuda a hackear el teléfono de tu novio / novia / cónyuge infiel, ya que Spetrick es uno "de los mejores hackers vivos".

Y el amor por fin

Os podría traer cientos y cientos de mensajes similares, pero para terminar he seleccionado este de Lord Zakuza, que es de otro modelo de estafa. La de la magia del amor. La idea es la misma que lleva funcionando sobre la tierra miles de años. Hacer con magia que alguien se enamore de ti.

Figura 8: En solo 48 horas vuelve enamorado a ti.

Normalmente publico en mis rede sociales los mensajes de gente que quiere hackear a otros para que veáis cómo existe un mercado de gente buscando solucionar su vida contratando hackers. Y hoy os he querido publicar el otro lado, los estafadores buscando a esos que quieren hackear a la gente.

Por favor, ayudadme a difundir el mensaje entre vuestros amigos y familiares, porque fliparías la cantidad de gente cercana a vosotros que puede llegar un día a plantearse eso y acabar estafado. Ni es la solución, ni vas a localizar "Buscando en Google" o "escribiendo a un Gmail o WhatsApp" un hacker que arregle tus problemas. 

Figura 10: Contratar Hacker Gratis en Google

En fin, el mundo está un poco loco cuando estas estafas funcionan, cuando Google tiene esa como una de las búsquedas más comunes en mi zona, y cuando yo recibo tantos y tantos mensajes de gente que quiere hackear algo ilegalmente.

Saludos Malignos!