Mostrando entradas con la etiqueta Raspberry Pi. Mostrar todas las entradas
Mostrando entradas con la etiqueta Raspberry Pi. Mostrar todas las entradas

sábado, agosto 09, 2025

Un robot (LLM) que crea el cerebro de un robot (Drone) con Vibe Coding (o Spec Coding)

Hoy quería hablaros de un paper bastante curioso que habla un poco más de los miedos de la humanidad en la creación de Skynet, ya sabéis, la malvada Súper Inteligencia Artificial que controla los Terminators para acabar con la humanidad. En este caso, se trata de un trabajo de investigación que busca probar si un Modelo de IA puede crear todo el software de control  - y controlar - que necesita un drone, y el experimento ha funcionado.
El paper, que podéis leer aquí mismo, se llama "Robot builds a robot’s brain: AI generated drone command and control station hosted in the sky" y describe el proceso paso a paso para acabar haciendo la demostración completa del Drone volando.
El trabajo está especialmente hecho para los Makers, es decir, para los que disfrutan de construir cosas con Rapsberry Pi, con tecnología de Drones o Arduino, como explican en detalle, así que si eres de los que disfrutan de estas cosas, te recomiendo estos tres libros que son tres joyas sobre esto.

El proceso viene descrito desde el principio, construyendo dos piezas de software y hardware completas. El piloto, se conecta con el drone con un software que se llama GCS (Ground Command System), que está formado por una servicio web, para que sea fácil administrar el proceso. Después, el GCS se conectará vía alguna conectividad al drone, para transmitirle las órdenes, que para que esté preparado para su uso, va a estar construido como un Agentic AI.
La siguiente pieza de software que necesita el sistema es el software de control en el drone, lo que llama WebGCS on Drone, porque está construido con tecnología web e instalado directamente en el hardware del drone, en concreto en un hardware basado en Raspberry Pi, con un NVidia Jetson para poder mover el modelo LLM que va a dotar de las herramientas de IA para programar al drone "on-the-fly".
Visto las dos partes de la arquitectura, hay que definir el proceso para poder construir el software completo que va a controlar el drone. Es decir, construir el "Cerebro del Robot" (Drone). Para ello, haciendo Vibe Coding - o Spec Coding si quieres -, se le pide que construya el GGS, utilizando para ello el stack de software de desarrollo con GenAI que tenemos hoy en día, con Widsurf, Cursor o VS Code como IDE, con un LLM como Claude, ChatGPT  o Gemini, y usando como repositorio del proyecto GitHub, GitLab o en la propia máquina. Es decir, Vibe Coding - o Spec Coding -  a tope para construir todo el software.
Por otro lado, una vez construido el software - las dos piezas - hace el despliegue del software en un Cloud Provider para el WebGCS que maneja el piloto del drone, y en el propio hardware del drone (Raspberry Pi) para el WebGCS on drone. En la siguiente imagen se se ve la arquitectura de módulos que se construyeron para poder tener un sistema de control con telemetría completa del drone.
Con todo este trabajo, lo que tenemos es que todo el software ha sido construido con GenAI, partiendo de prompting. Además, el parcheo de los programa se hace aprovechando la arquitectura con modelos de LLM que permite reprogramar automáticamente cuando aparece un fallo, enviándole el mensaje de error y pidiéndole que se parchee. Es decir, sin programación alguna hecha por un programador. El resultado, un stack tecnológico completo para este entorno.
Y todo esto funcionando en real, con el hardware construido para probar el funcionamiento, el parcheo automático, y su funcionamiento. Lo que hace que para los makers, las creación de los drones sea aún mucho más divertido.
El siguiente esquema resume el trabajo experimentado en esta prueba, con las piezas de software construidas para casa parte, y su despliegue en diferentes lugares, pero en este caso utilizando un Virtual Drone en AWS corriendo sobre una máquina virtual de GNU/Linux, lo que permitiría desplegarlo en múltiples instancias de drones que soporten la VM.
Al final, el proceso es un ejercicio de Coding con GenAI para crear el software de control de drones, pero con muy poco "Human Prompting" y mucho automático para construir las funciones, para parchear, para evolucionar, y corregir errores.
La pregunta es, si en un mundo de Agentic AI, pueden ellos crear la programación automáticamente para cualquier Drone, para cualquier hardware controlado por Raspberry Pi, Arduino, o cualquier otra máquina. ¿El alzamiento de los robots.... con GenAI?

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


lunes, octubre 24, 2022

Hijacking Paired BLE Devices: Obtención de Long Term Key & Windows Impresonation

Como sabéis, el año pasado, y éste, realizo labores de Mentor en el Campus Internacional de Ciberseguridad, donde, entre otras muchas cosas, planteo algunos Trabajos de Fin de Máster para el Máster de Ciberseguridad. Éste, que os publico hoy en forma de artículo, es un trabajo que planteamos Pablo González - que ha dirigido el TFM también - y yo sobre los ataques a conexiones BLE. 


Figura 1: Hijacking Paired BLE Devices.

El trabajo lo han realizado Alejandro Castaño y Miguel González Lara, que son quienes lo escriben a partir de aquí. Espero que os guste y os inspire para seguir trabajando sobre las posibilidades de ataques que se pueden realizar, una vez suplantado un equipo en una comunicación BLE. Este año plantearemos algún TFM que profundice en esta idea en la nueva edición del Máster de Ciberseguridad que comienza ahora.

Saludos Malignos,

Hijacking Paired BLE Devices: Obtención de Long Term Key & Windows Impresonation

Todos hemos oído hablar de Bluetooth, y de hecho es una tecnología que forma parte de nuestro día a día sin que nos demos cuenta. Lo que muchas veces pasa desapercibido es el hecho de que cuando hablamos de Bluetooth quizás estamos hablando en algunas ocasiones de Bluetooth Low Energy (BLE). BLE nace con la idea de poder utilizar esta misma tecnología con un consumo mucho menor de energía, lo cual permite poder utilizarlo en miles de dispositivos como herramienta de envío de datos, algo que nos puede facilitar, y mucho, el día a día. Pero claro, sabemos que comodidad y facilidades en ocasiones puede estar reñido con la seguridad, de hecho, a día de hoy, ya se han encontrado múltiples posibles vulnerabilidades a esta tecnología de radio y frente a las que se está buscando solución poco a poco:
Además, estas vulnerabilidades pueden afectar también al entorno empresarial, donde cada vez es más común el uso de tecnología, sobre todo en dispositivos IoT, que utilice el Bluetooth y Bluetooth Low Energy, cómo herramienta de envío de información, ya sea a nivel industrial, cómo un termómetro en una central de uranio, o un simple teclado inalámbrico utilizado por un empleado de la compañía. Todos estos dispositivos como parte del Shadow IoT de las empresas.

Es cierto que estos ataques requieren de cierta cercanía con el dispositivo para poder ser llevados a cabo y generalmente se habla de estar presente durante el proceso de emparejamiento, con el fin de obtener información que permite gran parte de estos ataques. Con esto en mente nos hicimos las siguientes preguntas:
  • ¿Existe la posibilidad de robar los Tokens e información de un dispositivo BLE pareado a un equipo controlado?
  • -¿Qué posibilidad hay de utilizar estos Tokens para robar información o el control de los dispositivos BLE?
Con esto en mente nos pusimos nuestras mejores galas de investigación y fuimos a por ello. El proceso paso por paso está explicado en nuestro proyecto de fin de máster, pero para hacernos una idea tuvimos que seguir varios pasos:
  • Investigar el protocolo.
  • Estudiar el registro de Windows.
  • Estudiar la forma en que se almacena cierta información.
  • Pruebas, pruebas y más pruebas.
POC 1: Obtener BLE Long Term Key

Es cierto, fue una carrera de fondo, pero tuvo su recompensa ya que tras las múltiples pruebas y el esfuerzo pudimos llegar a ciertas conclusiones. La primera de ellas, la importancia de la obtención de la Long Term Key (LTK), la cual podría permitir descifrar conexiones con el acceso adecuado, haciendo un PoC con un código corriendo sobre Raspberry Pi, un Micro:Bit v1.5 con placa NRF y programada en Python.
Si os interesa, podéis echar un vistazo a la PoC que permite conseguir la BLE LTK que hemos publicando en el GitHub siguiente:

La segunda y que más nos llamó la atención fue la posibilidad de suplantar completamente a un dispositivo, este caso para nuestra prueba de concepto utilizamos un ratón BLE de la siguiente forma:
  • Emparejamiento del ratón en un ordenador con SO Windows
  • Obtención de LTK, Erand y Ediv
  • Creación de los directorios necesarios en un ordenador con SO Linux
    • Directorio con la MAC suplantada del controlador Bluetooth de Windows
    • Directorio con la MAC del ratón
    • Fichero con la información de la LTK, Erand y Ediv
  • Tenemos el control del ratón desde GNU/Linux.
La posibilidad de tomar este control implica que, dependiendo la situación y el dispositivo, pudiese hacerse con el control de cierta información que envía, suplantarlo, obtener otra información, etc… Para ello, creamos la herramienta BLETool que tienes en el siguiente GitHub.
Esta herramienta, utilizando credenciales en un sistema MS Windows de NT Authority\\System, permite extraer la información de pareo de un dispositivo BLE con ese sistema operativo. Así, con simples comandos se puede listar, exportar y preparar un comando para suplantar (impersonate en inglés) a este sistema operativo Windows para que el dispositivo BLE se conecte a nosotros en proximidad.

Figura 5: Comandos BLETool. exe en Windows

Con esta opción  (-oi o --OutputInfo) BLETool.exe va a extraer la información del registro de Windows y va a escribir un fichero llamado "info", en el directorio actual donde se está ejecutando la herramienta. Este fichero info va a contener la información necesaria que va a necesitar un equipo GNU/Linux con bluez para poder configurar un dispositivo maestro. Si se utiliza esta opción, se tiene que crear luego la estructura de directorios necesaria en /var/lib/bluetooth/ del equipo atacante.

Figura 6: Creando un volcado de la configuración BLE del equipo Windows

Para simplificar la creación de la configuración del equipo que va a suplantar a este Windows para conseguir que el dispositivo BLE se conecte a él, se puede utilizar la opción --outputBase64 o también -ob. Esta opción va a generar uno o varios comandos de GNI/Linux que ejecutándolos van a permitir crear en el equipo atacante la estructura de directorios necesaria en /var/lib/bluetooth/ y el fichero info que contiene la información BLE para suplantar al Windows en el ataque. Esta es la opción recomendada y más cómoda para extraer la información.

Figura 7: Comandos GNU/Linux para suplantar al Windows en conexión BLE

Con la opción Verbose, podrás ver la lista de dispositivos BLE que se han conectado a este equipo Windows, para que sepas qué se va a poder conectar a tu equipo atacante.

Figura 8: Información de dispositivos BLE conectados a este Windows.

Es decir, ya tendríamos lista toda la información necesaria para irnos a nuestra Raspberry Pi y suplantar al sistema Windows. Para ello, primero hay que ejecutar el comando que hemos extraído con BLETool.exe - ob, y tendremos la estructura de ficheros necesaria y la configuración BLE adecuada en el archivo Info.

Figura 9: Estructura de ficheros BLE en Raspberry Pi 

Luego, tendremos que poner la MAC Address del sistema operativo Windows, que es fundamental para las conexiones. Para ello tienes que ejecutar el comando hcitool siguiente:

hcitool cmd 0x3f 0x01 0x96 0xde 0x66 0x35 0x76 0x7c

Donde 0x3f 0x01 es el comando que se envía al controlador, por lo que no debes modificarlo. Y 0x96 0xde 0x66 0x35 0x76 0x7c es la MAC que quieres que tenga tu controlador, escrita en Little Endian, es decir al revés. Y lo compruebas con hciconfig:

Figura 10: Cambiada la MAC con hcitool

Una vez configurada, te queda reinicializar el servicio de BlueTooth, usando el comando:
  • systemctl restart bluetooth
Y el resto es esperar a que los dispositivos BLE que ya habían negociado conexión con el sistema Windows al que estamos impersonando se conecten a nuestra Raspberry Pi  para que veamos que tenemos su conexión. Todos los datos que envíen, llegarán a nuestra máquina atacante.

Figura 11: Dispositivos BLE conectados a nuestra Raspberry Pi 

Podéis obtener más información en el Readme del propio GitHub donde viene explicado el proceso de investigación parte por parte. Y tienes todo el proceso explicado en el siguiente vídeo.

Figura 12: PoC de suplantación de Windows en conexión BLE

Aunque la posibilidad de recibir estos ataques es más baja que otros vectores pueden ser cruciales, por lo que el riesgo de recibir un ataque de estas características es muy alto. Además, teniendo en cuenta que cada vez esta tecnología es más frecuente, y puede encontrarse en dispositivos que ni siquiera se plantean durante un correcto bastionado de la empresa, hace que pueda pasar desapercibido el peligro.

Un saludo,



jueves, junio 23, 2022

OpenExpo Europe 2022: Charlas de Fraude, Entrevistas y Emprendimiento

Ya quedan menos de diez días para que llegue el gran día de OpenExpo Europe 2022 (aún puedes conseguir tu Business Pass con Tempos en MyPublicInbox), y en el artículo de hoy os quiero hablar de más charlas, entrevistas y ponencias que tendremos allí, además de las que os conté en el artículo de antes de ayer dedicado "las charlas de Cripto-Arte, Hacking, Developers, Formación y el Metaverso".  Os hablé un poco más de ells en el artículo de "Realidades Digitales y Cripto-Arte" que publiqué en "El Futuro está por Hackear", y os os hablo de algunas más. La agenda completa de actividades, ponencias, y charlas, la tienes en la misma web de OpenExpo Europe 2022, y yo te la iré desgranando poco a poco.

Figura 1: OpenExpo Europe 2022: Charlas de Fraude,
Entrevistas y Emprendimiento

Además te recuerdo que tienes abierto el Programa de Voluntarios de OpenExpo Europe 2022 si quieres ser parte de esta experiencia desde dentro, y además hemos lanzado un concurso para que consigas un portátil gratis....

.... y otro para que consigas un Patinete Eléctrico gratis, que comenzó ayer mismo, por si te apetece tener uno de estos para desplazarte por la ciudad.

Y ahora, entramos ya en algunas de las charlas y entrevistas. La primera de ellas, es uno de los platos fuertes de la jornada. La presentación del juez Eloy Velasco, llamada "El nuevo fraude digital", que se centra en desgranar esta forma "civilizada" de proceder, que como dice el propio juez:

"La estafa es el modo más “civilizado” de quedarse con el dinero y los activos ajenos. A medida que avanza nuestra digitalización los estafadores también lo hacen y evolucionan creando nuevas formas de delinquir que ¿acaban desembarcando como delitos en el Código Penal?"

Otra de las actividades que tendremos serán las entrevistas, donde tendremos a mucha gente interesante, como a Salvador Larroca el dibujante de Marvel Cómics más antiguo en plantilla de la fábrica de los superhéroes y ganador del premio Eisner siendo el primer dibujante español que lo consiguió,  la programadora Miriam González, el escritor de novela negra JM Ferri que hablará de su nueva novela "La chica del sombrero negro" o Emilio Márquez de La Latina Valey. Entre ellas, estará la que se le realizará a Miguel Arias, sobre el ecosistema emprendedor en España.
Además de las charlas, tendremos una sección de OpenTalks en las que veremos una gran variedad de explicaciones. Os destaco, por ejemplo, la charla que da el "Japanese Raspberry Pi User Group" de "Escritorio Ubuntu en portátiles/Raspbery Pis: Practica cómo tratar con sus almacenamiento de disco, cómo manejar el UEFI y más", para los amantes del "Making".


O la charla de Didac Oliveira García y Antonio Sanchez Vilalta de Grifols quienes compartirán el caso de éxito de la implementación de un sistema de Disaster Recovery usando GNU/Linux con DRLM en la compañía.
Y para terminar, como no, una recomendación muy especial. La del gran Brais Moure, autor de las famosa app TPCAST de Todopoderosos y Aquí hay Dragones, que vendrá a hablar de la senda del Jedi... digo... de "La senda del Freelance" que tiene su propio mantra.

Pero estas son solo algunas de las charlas, que tendremos, dentro del ciclo de conferencias, esta semana os iré contando más sesiones, exposiciones, las entrevistas que podrás ver en directo, y muchas más cosas. De momento, si no quieres perdértelo, no te olvides de conseguir tu Business Pass para OpenExpo.

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


domingo, octubre 10, 2021

Hackerspaces, Hacklabs o Makerspaces: Lugares ser un Maker que aprende haciendo

Hoy vamos a hablar de los Hackerspaces o Hacklabs, que son lugares de reunión disponibles por todo el mundo para Hackers & Makers y que si desconocías su existencia, sin duda, lograrán llamar tu atención en el futuro. Porque un Hacklab o Hackerspace es un lugar en el que prima el aprendizaje cooperativo, un espacio en el que poder desarrollar tus proyectos personales y en el que puedes dar o recibir la ayuda de otras personas que como tú están ahí realizando sus propios proyectos. 

Figura 1: Hackerspaces, Hacklabs o Makerspaces.
Lugares ser un Maker que aprende haciendo 

Estos lugares están pensados para poder desarrollar todo tipo de proyectos enfocados a la tecnología, desde programación o electrónica hasta diseño mecánico o fabricación por aditivos. Es un lugar en el que el desarrollo de los proyectos se puede llevar a todos los niveles.

Figura 2: Hack Manhattan, uno de los Hackerspaces más conocidos.

También ofrece la posibilidad a sus participantes de organizar talleres, cursos o charlas abiertas de diferentes materias como la Impresión 3D, Arduino, Drones, FPGAs, Raspberry Pi, Pi Zero, IoT, soldadura, electrónica, Micro:bit, Rubber Ducky, u otros temas que resulten interesantes a la comunidad Maker. En definitiva, es el lugar ideal para adquirir y compartir conocimientos con tus compañeros en todo tipo de materias. A su vez da la posibilidad de trabajar o llevar a cabo proyectos grupales ya que hay expertos en todo tipo de materias, por ejemplo, puede haber un experto en software, otro en robótica y otro en diseño e Impresión 3D, utilizando el conocimiento de los tres es posible desarrollar proyectos cuanto menos interesantes.

Figura 3: Libros para Makers en 0xWord que deberías tener:

Otra de las ventajas que ofrece disponer de un espacio así es que ofrece la posibilidad de investigar y cultivar campos que quizás desconocías y que han resultado ser de tu interés. Además, podrás aplicarlos directamente y poner a prueba todo lo aprendido con tus compañeros. Los Hacklabs o Hackerspaces sirven también para desarrollar relaciones con personas de tu zona que no conocías y comparten la misma pasión por la investigación que tú pudiendo llegar a forjar nuevas amistades.

Figura 4: Hackerspace con algunos de sus participantes trabajando en distintos proyectos.

Para entender un poco mas cómo funcionan los Hackerspaces primero debemos conocer su historia. En el año 1998 tras el primer Hackit Hackmeeting realizado en Italia surgió la idea de construir un espacio (equipado con todo lo necesario) dedicado a la tecnología y el aprendizaje accesible a todo el mundo y en el que fuese posible desarrollar todo tipo de proyectos tecnológicos. Esta idea se puso a prueba y se obtuvieron muy buenos resultados por lo que poco a poco este interesante concepto se fue extendiendo por todo el mundo hasta día de hoy que podemos encontrar cerca de 2000 hackerspaces activos a lo largo del mundo.

Figura 5: Hackerspace situado en la zona sur de Londres: South London Makerspace.

En lo que a nivel nacional se refiere en España contamos con 22 de estos espacios dedicados a la investigación. El primero de ellos surgió en Barcelona en el año 2000 y recibió el nombre de Kernel Panic hace 21 años. Kernel Panic fue uno de los pioneros no solo de nuestro país, sino del mundo, no fue hasta 2006 cuando se celebraron en Madrid las jornadas Interhacklabs cuando se tomó la iniciativa de extender este interesante concepto por toda España. Las jornadas Interhacklabs realizaron el mismo papel que el Hacking Hackmeeting en Italia y actuaron como catalizador para el surgimiento de nuevos hacklabs también en varios países de Latinoamérica.
 

En cuanto a “modelo de negocio” los hackerspaces funcionan a través de un programa de suscripciones. A pesar de que sean lugares que promueven el uso de las tecnologías libres para que sean viables hay que cubrir ciertos gastos como el mantenimiento del local y las distintas máquinas que hay en él. De todas formas, el precio de las suscripciones no es nada elevado, dependiendo del país o ciudad los precios oscilan entre los 25 € mensuales en España hasta los 100 USD en el centro de Manhattan.

Figura 7: Membresía del Hackspace de Manhattan

También se ofrecen tarifas reducidas si eres estudiante, desempleado o jubilado. En el caso de España la cuota bajaría a unos 10 € mensuales y en el de Manhattan a 50 dólares. Aunque la diferencia de precio a simple vista pueda parecer abismal es importante tener en cuenta que este depende de diversos factores como la localización del local o el valor de la divisa de cada país. Independientemente estos precios están ajustados para ser accesibles a todo el mundo.

Be a Maker      

Si te han llamado la atención estos lugares y estás interesado en encontrar uno en tu zona desde esta wiki puedes comprobar si hay alguno cercano a donde vives. Desde ella también podrás acceder a la pagina web de cada Hackerspace para ver fotos, la localización exacta o informarte de horarios, que servicios ofrecen y de que herramientas disponen en cada uno de ellos. También tendrás acceso a sus perfiles en las redes sociales para no perderte ninguna novedad y la posibilidad de adquirir tu suscripción si finalmente decides unirte a esta interesante iniciativa.

Saludos,
 
Autor: Sergio Sancho, Security Researcher en Ideas Locas.

martes, abril 27, 2021

Como montarse un DLNA Home Server con Raspberry Pi

Vamos hoy con otro proyecto de Maker sencillo y útil basado en nuestra querida Raspberry Pi, que como ya sabemos su gran versatilidad permite infinidad de proyectos interesantes que se pueden llevar a cabo con este mini ordenador. Hoy veremos cómo puedes construir vuestro propio servidor utilizando una Raspberry Pi Zero.

Figura 1: Como montarse un DLNA Home Server con Raspberry Pi

Por si quieres, antes de comenzar con este nuevo proyecto, os dejo aquí la lista de otros proyectos con Raspberry Pi y Raspberry Pi Zero que ya hemos ido publicando por aquí, y que son una buena fuente de entrenamiento para ver diferentes tipos de cosas que podemos construir.

- Raspberry Pi: Cómo construir un medidor ambiental
- Raspberry Pi: Dirtytooth para Raspberry Pi v2.0
- Raspberry Pi: Una VPN para navegar por redes WiFi con portales cautivos
- Raspberry Pi: Pi Guardian con Latch, Bots en Telegram y "ojos"
- Raspberry Pi: Latch My Car
- Rapsberry Pi: Tu servicio VPN con OpenVPN, Latch y Virus Total
- Raspberry Pi: Latch en OpenWRT
- Raspberry Pi Zero: Cómo configurar un GPS en tu Raspberry Pi Zero

En este proyecto lo que nos ha hecho decantarnos por la Raspberry Pi ha sido su bajo precio (se pueden conseguir por menos de 35 €), la gran cantidad de puertos y conexiones que tiene. Otros aspectos importantes a tener en cuenta a la hora de montar un servidor son el ruido y el gasto de energía, al fin y al cabo, es un dispositivo que estará encendido constantemente y por lo tanto consumiendo energía de la red eléctrica a todas horas. 

Figura 2: Libros para Makers en 0xWord que deberías tener:

Por suerte la Raspberry Pi Zero W esta compuesta por elementos muy eficientes y que generan un consumo energético muy bajo (apenas 7-8w). Además, otra de las desventajas de tener tu propio servidor en casa son los ruidos, en este caso la Raspberry Pi no cuenta con ventiladores por lo tanto el único ruido lo generará el disco duro que utilicemos. Para montar nuestro servidor necesitaremos los siguientes elementos:
Como podéis ver los elementos que compondrán nuestro servidor, a excepción del disco duro son realmente baratos lo que hace que la Raspberry Pi sea una de las mejores candidatas para desempeñar este trabajo.

Figura 3: Ejemplo de servidor casero con Raspberry Pi

Al igual que hacemos siempre que trabajamos con este tipo de dispositivos, el primer paso es instalar el sistema operativo. En este caso el software escogido, como en la mayoría de nuestros proyectos será Raspbian, la forma más rápida y sencilla de cargar el SO en la Raspberry Pi es a través de un archivo de imagen. Si todavía no sabes cómo se hace esto por aquí tienes un pequeño tutorial en el que se explica cómo hacerlo.

Figura 4: Cómo instalar Raspberry Pi OS Lite

En este caso en particular podemos hacer que Raspbian se adapte mejor a la utilidad que vamos a darle a nuestra placa aplicando los siguientes cambios a la hora de configurarla por primera vez (desde la pantalla raspi-config). Si tu Raspberry Pi ya estaba previamente configurada no te preocupes, podrás acceder al menú de configuración con el comando “sudo raspi-config”.

En apartado “expand_rootfs” deberemos seleccionar la opción de expandir la partición para llenar la tarjeta SD, en el apartado “memory_split” asignaremos el mínimo a la GPU para dejar espacio a los demás servicios y que funcione todo de una forma más fluida, también, es de vital importancia habilitar el ssh. En el apartado “boot_behaviour” deberemos desactivar la opción de “boot desktop” para garantizar un mayor ahorro energético, también es recomendable cambiar la contraseña.

Figura 5: Menú raspi-config.

Por último, hay otras configuraciones que harán que nuestro servidor funcione mejor y que no se aplican directamente desde el menú de configuración de Raspberry Pi. En primer lugar, es recomendable tener una dirección IP estática, para ello utilizaremos el comando: 
  • sudo nano -w /etc/network/interfaces
Luego cambiaremos la línea que pone “iface eth0 inet dhcp” por “iface eth0 inet static”.  También crearemos un usuario y le daremos permisos utilizando los siguientes comandos:
  • sudo adduser (nombreusuario)
  • sudo usermod -a -G users (nombreusuario)
  • sudo usermod -a -G sudo (nombreusuario)
Hecho esto solo nos queda actualizar y apagar la Raspberry Pi para conectar nuestros periféricos (el disco duro en este caso). Ahora que ya hemos configurado la Raspberry Pi podremos acceder a su configuración de manera remota utilizando el comando:
  • ssh (nombreusuario)@(dirección IP estática de la raspberry)
Para montar nuestro disco duro vía USB instalaremos autofs, con esta herramienta lo que lograremos será automatizar la detección de dispositivos USB, ya que sin la interfaz gráfica este proceso puede resultar un poco tedioso estén o no conectados cuando arranque nuestra placa. Para ello utilizaremos los comandos:
  • sudo apt-get install autofs
  • sudo nano -w /etc/auto.master
  • sudo nano -w /etc/auto.misc
  • sudo /etc/init.d/autofs restart
  • ls -s /misc/storage
Con el disco duro instalado ya solo nos queda configurar nuestro servidor, debemos tener en cuenta que la tasa de transferencia de la Raspberry Pi vía cable ethernet es de 100 MB y que nuestro disco duro esta conectado vía USB por lo tanto no necesitaremos una herramienta muy potente para transferir archivos. En este caso utilizaremos Samba, ya que es compatible con las últimas versiones de Windows. 

Figura 6: Raspberry Pi Server oculto en una caja de pequeñas dimensiones.

Para instalarlo usaremos el comando “sudo apt-get install samba-common-bin” y utilizaremos el comando “sudo smbpasswd -a (nombreusuario)” para dar acceso a nuestro usuario local. A continuación, editaremos el archivo de configuración de Samba “sudo nano -w /etc/samba/smb.conf” y en el apartado “workgroup” pondremos el nombre que tengamos en nuestro grupo domestico de Windows (por ejemplo: casa o dormitorio) y en el apartado “path” añadiremos la ruta donde se guardará nuestro backup. Hecho esto reiniciaremos samba para guardar nuestros cambios usando “sudo /etc/init.d/samba restart”.

Figura 7: menú de configuración de Samba.

Para terminar de configurar nuestro backup utilizaremos deja-dup para GNU/Linux ya que es una herramienta super sencilla de configurar y utilizar, además, cuenta con una opción para ssh que nos será muy útil y ya viene preinstalada en algunas de las distribuciones de GNU/Linux. 

Si tu distribución de GNU/Linux no trae deja-dup instalada solo tendrás que utilizar el comando “sudo apt-get install deja-dup” para obtenerla. Desde el interfaz de la herramienta, en el apartado “Backup location” seleccionaremos “SSH” y en el apartado “Server” pondremos la dirección IP de nuestra Raspberry Pi y guardaremos los cambios.

Figura 8: Menú de configuración de deja-dup.

Por último, levantaremos nuestro servidor DLNA, esta es la mejor opción para almacenar contenido de todo tipo de archivos multimedia (documentos, series, películas…) y que sea accesible para cualquier dispositivo conectado a nuestra red. Para este último paso utilizaremos Minidlna ya que es una de las mejores opciones para trabajar con nuestra Raspberry Pi, para instalarla usaremos el comando “sudo apt-get install minidlna” y accederemos al menú de configuración utilizando el comando “sudo nano -w /etc/minidlna.conf”.

En él podremos crear distintas rutas para almacenar por separado archivos de audio o video. También podremos elegir el nombre que queramos para nuestro servidor, solo tenemos que buscar el apartado “friendly_name” y escribir el nuevo nombre. Por último, buscaremos el apartado “inotify” y nos aseguramos de que tenga el valor “yes”, esto activará la detección automática de nuevos archivos. Una vez hayamos terminado con la configuración de minidlna utilizaremos el comando “sudo /etc/init.d/minidlna force-reload” para guardar los cambios y reiniciar el programa.

(Revisada y Ampliada) de Carlos Álvarez y Pablo González en 0xWord

Los servidores DLNA son la mejor opción para compartir contenido multimedia en nuestro hogar - por lo que es recomendable es que hagas un proceso de fortificación del GNU/Linux - todo, sin embargo, también es posible levantar otro tipo de servidores utilizando una Raspberry Pi y un disco duro, desde servidores sin DLNA hasta servidores para utilizar una impresora.

Saludos,
 
Autor: Sergio Sancho, Security Researcher en Ideas Locas.

sábado, abril 24, 2021

Cómo configurar un módulo GPS en Raspberry Pi Zero en tus proyectos de Maker

Hace unos días publiqué por aquí, en El lado del mal, un articulo sobre cómo modificar y configurar una Raspberry Pi Zero cómo una cámara de salpicadero para nuestro coche o como cámara de vigilancia, las llamadas Dashcams. Para el artículo de hoy os dejo otro sencillo y entretenido proyecto de Maker, cuyo objetivo es ver cómo implementar un módulo GPS en una Raspberry Pi Zero para tenerla localizada en cualquier momento, ya sea para mejorar nuestra Dashcam o para cualquier otra aplicación donde la ubicación del dispositivo tenga importancia, como por ejemplo colocar un localizador en nuestro coche.

Figura 1: Cómo configurar un módulo GPS en Raspberry Pi Zero
en tus proyectos de Maker

Por si quieres, antes de comenzar con este nuevo proyecto, os dejo aquí la lista de otros proyectos con Raspberry Pi y Raspberry Pi Zero que ya hemos ido publicando por aquí, y que son una buena fuente de entrenamiento para ver diferentes tipos de cosas que podemos construir.

- Raspberry Pi: Cómo construir un medidor ambiental
- Raspberry Pi: Dirtytooth para Raspberry Pi v2.0
- Raspberry Pi: Una VPN para navegar por redes WiFi con portales cautivos
- Raspberry Pi: Pi Guardian con Latch, Bots en Telegram y "ojos"
- Raspberry Pi: Latch My Car
- Rapsberry Pi: Tu servicio VPN con OpenVPN, Latch y Virus Total
- Raspberry Pi: Latch en OpenWRTPara el proyecto de hoy, si no estáis familiarizados con el uso de este tipo de módulos para Raspberry Pi no os preocupéis, son fáciles de configurar y su funcionamiento es bastante sencillo. El módulo GPS dispone de una antena que junto al receptor es capaz de triangular su posición de manera bastante precisa vía satélite, también disponen de una pequeña batería para asegurarnos de que la información se guarde en la memoria en caso de dejar de recibir corriente repentinamente y un diodo led que nos indicará si el módulo está funcionando correctamente (led encendido) o si está dando algún fallo (led parpadea).


Para configurar el módulo el primer paso será preparar nuestra Raspberry Pi, para ello es necesario activar el puerto serie desde la configuración. Utilizando el comando “sudo raspi-config” abriremos el menú de configuración y buscaremos el apartado “Interfacing Options” y dentro de él seleccionaremos la opción “Serial”. 

A continuación, se nos mostrarán dos mensajes, en el primero “Would you like a login shell to be accessible over serial?” seleccionaremos “NO” y en el segundo “Would you like the serial porthardware to be eneabled?” seleccionaremos “YES”. Después de esto nos preguntará que si queremos reiniciar la placa y también seleccionaremos la opción “NO” lo que nos llevará de vuelta al terminal.

Figura 3: Herramienta de configuración de Raspberry Pi

Una vez estemos en el terminal apagaremos nuestra Raspberry Pi con el comando “sudo shutdown -h now” y procederemos a conectar el módulo GPS a la placa. En este paso es de vital importancia asegurarnos de que conectamos el módulo a un pin de 3,3 voltios para asegurarnos de que nuestra placa no sufra daños, como en la imagen que se muestra a continuación.

Figura 4: Esquema de las conexiones del módulo GPS para Raspberry Pi

Cuando ya tengamos el módulo GPS conectado a la Raspberry Pi solo nos quedará comprobar que funcione correctamente, para ello la forma mas sencilla de hacerlo será a través del comando “sudo cat/dev/serial0”. Esto hará que se muestren en pantalla varias líneas de código (que comenzarán por $GP…) lo que significa que existe comunicación a través del puerto serie.

Para salir de esta pantalla solo hay que pulsar “CTRL+Z”. La comunicación a través del puerto serie puede verse entorpecida por el servicio “getty”, por lo tanto, si lo desactivamos nos aseguraremos de que todo funcione correctamente, para ello solo tendremos que usar los siguientes comandos: “sudo systemctl stop serial-getty@ttyS0.service” y “sudo systemctl disable serial-getty@ttyS0.service”.

Figura 6: Ejemplo de comunicación con módulo GPS

Con el módulo GPS ya integrado y funcionando solo nos queda instalar algunos módulos para poder interpretar y trabajar con la información recogida por la Raspberry Pi. Comenzaremos instalando los modulos python-serial y psutil utilizando los comandos:
  • sudo apt install python-serial
  • sudo pip install psutil
Otro de los módulos fundamentales será el de pynmea2 que es el que dará sentido a toda la información recogida por el GPS, para ello usaremos el comando:
  • sudo pip install pynmea2
Para terminar solo nos queda crear un script enfocado al uso que queramos darle a nuestra Raspberry Pi con GPS. Por ejemplo, como os comentamos hace unos días en el artículo de la Raspberry Pi Zero Dashcam, se podría añadir una función que nos indicase las coordenadas a tiempo real en nuestros videos o simplemente se podría utilizar como un localizador para nuestros vehículos en caso de robo, a nuestro drone o a cualquier otro proyecto de maker que hagas con tu Raspberry Pi.

Saludos,

Autor: Sergio Sancho, Security Researcher en Ideas Locas.

Entrada destacada

Hacking IA: Jailbreak, Prompt Injection, Hallucinations & Unalignment. Nuestro nuevo libro en 0xWord

Pocas veces me ha hecho tanta ilusión que saliera un nuevo libro en 0xWord como con este libro de " Hacking IA: Jailbreak, Prompt Inje...

Entradas populares