Hacking de una Raspberry Pi

Hacking de una Raspberry Pi

¡Atención! Este artículo se ha publicado con fines educativos e informativos. Geeky Theory no se hace responsable del uso que se le de.

¡Hola a todos!

Soy Jorge R.Castro y en este  tutorial vamos a ver un poco de Hacking. Nuestro objetivo será una Raspberry Pi, muy extendida en nuestro mundo geek y que muchos tienen conectada a jugosos discos duros, televisiones, sistemas de vigilancia y una larga lista de cosas que no fueron creadas para estar  24/7 (24h los 7 días de la semana) con acceso a la red, y que por tanto no suelen tener ninguna medida extra de seguridad.

Como ya hemos explicado, lo único que nos separa de esos "objetivos" es una Raspberry Pi y una conexión a Internet. Por tanto toda la seguridad dependerá de las buenas prácticas en la instalación.

Hoy nos centraremos en conexiones mediante SSH  y tenemos dos formas de proceder:

  1. Si se conoce la IP de la Raspberry Pi (suelen tener IP´s fijas asignadas para facilitar su conexión).
  2. Si se desconoce la IP (para descubrirla usaremos Shodan).

Todo aquel que no sepa qué es Shodan, en pocas palabras, es un buscador gratuito que nos permite encontrar todo aquello que esta conectado a Internet, ya sean routers, cámaras, impresoras.... , además en opciones avanzadas podremos elegir entre país o puerto, entre otros.

[caption id="attachment_9033" align="aligncenter" width="866"]

oops!

Se han indexado hasta las carpetas personales, una intruso sabría dónde buscar antes de entrar.[/caption]

Como podéis ver en la imagen solo con poner "raspberry" encontramos muchísimas máquinas conectadas, ¡e incluso se han indexado sus directorios y subcarpetas!

Una vez hemos elegido la Raspberry Pi, podemos ver información más detallada, y si usamos el comando ping desde el Terminal/Shell sabremos si se encuentra "despierta".

[caption id="attachment_9034" align="aligncenter" width="678"]

Podemos ver que tiene un disco duro de 1Tb conectado y una impresora.

Podemos ver que tiene un disco duro de 1Tb conectado y una impresora.[/caption] $ ping "ip_elegida"

Ahora que tenemos certeza de que esa IP está conectada, intentaremos conseguir una shell remota, usando como usuario el que viene por defecto (depende de la distribución instalada, pero es fácil conocerlo googleando un poco).

En este caso se trata de "pi", así que nos queda sólo la mitad de trabajo: la password, que es vulnerable con ataques de fuerza bruta o diccionario si su longitud no es excesivamente grande. En este punto usaremos Hydra (herramienta de Linux) , pero que puede ser sustituida por vuestro programa de fuerza bruta preferido, y  un diccionario ("personalizado" o con todas las combinaciones ).

Tranquilo, si te has perdido, esta aclaración es para ti. Como ya sabes, para conectarnos mediante SSH necesitamos una IP (dirección a la que intentamos acceder), un usuario valido (por defecto es "pi") y además la contraseña asociada a ese usuario ( la desconocemos).  Aquí es donde usaremos el programa de BruteForce y un diccionario (este será el encargado de intentar acceder usando todas las combinaciones posibles existentes).

Finalmente es sólo cuestión de tiempo y continuidad de la conexión. Además podemos utilizar una configuración avanzada que nos permita separar las peticiones, usar proxys, o randomizar la IP desde la que "llamamos", por lo que pasaríamos más desapercibidos .

Una vez obtenida la contraseña sólo queda conectarnos. $ ssh -l pi "ip_seleccionada"Y  voilà!!!

Anotación

Con todo esto debemos empezar a pensar mejor cómo conectamos los equipos y las medidas de seguridad que necesitarán. Además, gracias a este pequeño artículo y a otros futuros, podremos auditar nuestras instalaciones y así implementar medidas y prácticas más eficaces.

Algunas de estas medidas podrían ser (citar todas sería imposible):

  • No permitir conexiones que origen distinto al de nuestra vivienda, además de filtrar por tarjeta MAC si queremos acceder desde fuera o incluso crear un túnel VPN.
  • Deshabilitar el usuario por defecto, cambiar la contraseña a una de extensión superior a 8 caracteres y usar caracteres alfanuméricos.
  • No usar el mismo disco duro que utilizamos para ver películas en nuestra tele, que el encargado del backup o donde tenemos nuestras nóminas.
  • ...

Espero que os haya sido de utilidad  y que hayáis podido mejorar la seguridad de vuestras Raspberry Pi.

.R.Castro