lunes, 15 de agosto de 2011

UN PROGRAMA QUE RASTREA TU COMPU ROBADA


Track your stolen laptop with Prey


Si me preguntan ahora, hubiera preferido que mi ex-ex-notebook muriera a causa de una gran, gran explosión. Mil veces éso a que desapareciera un día a manos de unos delincuentes.

Porque si cuando me compré el posterior laptop rabié como un Elmer gruñón intentando que me devolvieran la plata del Windows que nunca usé, imagínense cómo fue la tarde que me di cuenta que unos desgraciados arrancaron con el otro.

Y no sólo con el aparato sino con toda su información, con todo el tiempo invertido, y cómo no, y las tres distribuciones de Linux que vivían felizmente en él.

Creo que todos conocemos esa sensación de impotencia que nace cuando te roban algo importante, y bueno, en mi caso simplemente me negué a dar por perdida la máquina y me empeciné en pillar a los responsables.

Como ya tenía el laptop con acceso SSH, lo único que necesitaba era obtener la IP de dónde estuviera conectado el computador e intentar llegar ahí como fuera. Obviamente si el PC estaba conectado a través de un router, tendrían que estar los puertos abiertos para poder entrar, pero aún así me tiré al acecho.

Herramientas no tenía muchas para obtener el IP, pero se me ocurrió que si el tipo abría el navegador se abrirían simultáneamente las cuatro pestañas de inicio que tenía configuradas en Firefox (en ése entonces Begin, Gmail, Bootlog y el viejo LivingSantiago).

Y como resultaba que tres de esos sitios eran míos, había una posibilidad de cruzar los User Agents con el minuto de ingreso en los archivos de registro del servidor y así encontrar a mi querido tarro.

Bueno, no hay que ser ningún Nostradamus para saber que me fue bien mal con mi experimento, no sólo porque nunca pude pillar a los impostores, sino porque al final perdí más tiempo que la primera vez que traté de planchar una camisa con la tetera.

Pero hoy les tengo una noticia.


Hace unas semanas, en uno de esos días de intenso trabajo Tugariano, comenté en Twitter que había empezado a escribir un programita para rastrear mi laptop en caso que me lo robaran, y para mi sorpresa despertó buen interés.

Me preguntaron si pensaba liberarlo o incluso venderlo (a lo que obviamente respondí que no, que era sólo para uso personal), pero en vista de que podía contribuir con algo al mundo me puse manos a la obra y en el camino hasta terminé bautizando al engendro.

El cóndor despliega sus alas

prey-track-your-laptop-white-border
Prey es una pequeña y muy, muy simple aplicación que recolecta un lote información de tu computador, y la envía a una casilla de correo que hayas definido previamente.

La idea es que la instales en tu laptop para que cuando llegue el día — ojalá nunca — en que desaparezca el tarro, cuentes con más información para rastrearlo, ya sea usando el IP, el nombre de la red WiFi a la que esté conectado, o bien la foto del impostor.

Prey es un script bash por lo que obviamente el código es abierto, y de hecho está licenciado bajo la licencia SRTCRMCUC — que explico más abajo, pero es básicamente la GPLv3 con un añadido — para que hagas lo que quieras con él.

Debería correr en cualquier variante *NIX (Linux, Mac, etc), pero por ahora sólo lo he probado en Ubuntu Intrepid 64 bit y en Mac OS Leopard.

¿Qué información recoge Prey?

Información de red

  • La dirección IP pública y privada de donde esté conectado el PC.
  • El IP del gateway de la red que está usando para salir a Internet.
  • La dirección MAC de la tarjeta o controlador de red por el cual esté conectado a la red.
  • El nombre e ESSID de la red WiFi a la que esté conectado, en caso que lo esté.
  • Un listado de conexiones activas en el momento en que se ejecute el programa.

Información interna del PC

  • Cuánto tiempo lleva encendido el aparato.
  • Número de usuarios logeados.
  • Un listado con los programas en ejecución.
  • Un listado con los archivos modificados en la última hora (o el número de minutos que tú definas).

Información del ladrón

  • En caso que el PC tenga una webcam, una foto del impostor.
  • Un pantallazo del escritorio, para que veas qué está haciendo.
  • El color de los calcetines que está usando el tipo.
Bueeeno, esa última por ahora no. :)

Una vez que el programa hace la recolección te la envía por correo, y adicionalmente, si usas Linux puedes generar un cuadro de diálogo para jugar un poco con el infeliz.

Puedes hacerle alguna pregunta, o amenazarlo o simplemente decirle que sus días están contados.
Finalmente puedes botarlo del servidor gráfico para joder con él aún más.

¿Cómo funciona Prey?

prey-status-report-preview
El proceso es el siguiente: cada cierto intervalo de tiempo (pongámosle, 10 minutos) el programa se ejecuta y revisa si en la configuración pusiste una URL de checkeo o no.

En caso que no lo hayas hecho, o que lo hayas hecho y la URL sí exista
, el programa hará el proceso de recolección y envío de datos.

Si definiste una URL que no existe, el programa se apagará para volver a ejecutarse en 10 minutos más.

En otras palabras: puedes decirle a Prey que sólo te envíe la información cuando le dés el aviso (creando la URL de verificación que pusiste, después que te hayan robado el computador obviamente), o bien dejar ese campo vacío y que te mande la información cada vez que se ejecute.

Si defines una URL, Prey no te enviará nada hasta que pongas algo ahí (lo importante es que tenga algo de texto, puede ser una letra o lo que quieras).

La idea es que tengas la libertad de definir que se ejecute y esté siempre enviando la información, o bien sólo después que te roben el computador (que es lo que yo haría).

¿Cómo instalarlo?

Simple, baja el paquete, lo descomprimes y ejecutas el script de instalación. En un terminal, en la carpeta donde bajaste el ZIP:
$ unzip prey-0.1.zip
$ cd prey-0.1
$ chmod +x install.sh
$ ./install.sh


El programa te hará las preguntas de configuración, instalará el software necesario, copiará el archivo a su ubicación final y agregará la línea al crontab de root para que se ejecute en el intervalo de tiempo que definas.

El instalador sólo lo he probado en Ubuntu y en Mac pero debería funcionar en otras distribuciones de Linux (Fedora/Redhat, openSUSE y Arch). Si alguien lo prueba por favor que me avise!

Instalación manual

En caso que quieras instalarlo manualmente, son sólo tres pasos.

a) Primero, tienes que asegurarte que tu PC tenga el software necesario para que el programita corra.

En Mac OS ya viene todo lo necesario, pero en Linux debes asegurarte que esté instalado wget, traceroute, scrot o imagemagick, y las librerías Perl IO::Socket::SSL y NET::SSLeay. En caso que tengas una webcam necesitas instalar streamer para poder sacarle la foto al impostor.

Obviamente ésto lo puedes hacer usando el gestor de paquetes de tu distribución, o en la querida línea de comandos con:
$ sudo apt-get install wget streamer scrot traceroute libio-socket-ssl-perl libnet-ssleay-perl

En caso que uses Ubuntu o Debian. Si usas Fedora o Redhat el comando sería:
$ yum install wget traceroute scrot xawtv perl-IO-Socket-SSL perl-Net-SSLeay

b) Segundo, tienes que descargar el programa y configurar las opciones que quieras. Lo más importante es tu correo, la URL de verificación, y los datos de acceso a un servidor SMTP. Abre el archivo prey.sh y cambia los siguientes parámetros:
  1.  
  2. # url de verificacion, por defecto nada para que corra completo
  3. url=''
  4.  
  5. # mail
  6. emailtarget='mailbox@domain.com'
  7.  
  8. # configuracion smtp, no podemos mandarlo con sendmail/mailx porque rebota como spam
  9. smtp_server='smtp.gmail.com:587'
  10. smtp_username='username@gmail.com'
  11. smtp_password='password'
  12.  
c) Tercero, tienes que mover los archivos a alguna parte y agregar la línea en el crontab para que se ejecute entre ciertos intervalos de tiempo.

Puedes dejarlos donde quieras, ya sea en una carpeta oculta dentro de tu directorio de usuario o en alguna ruta de sistema (como /usr/local/bin o /usr/bin en Mac OS). El intervalo no debería ser tan largo (máximo-máximo una hora yo recomendaría).

Es decir:
$ unzip prey-0.1.zip
$ cd prey-0.1
(Modificas la configuración)
$ chmod +x prey.sh sendMail
$ mv prey.sh sendEmail /ruta/archivos


Eso moverá los archivos a la carpeta que tú definas (/ruta/archivos), asignándole antes los permisos de ejecución. En el caso de Mac OS también tienes que copiar el archivo isightcapture (en caso que tengas una iSight, claro):
$ mv isightcapture /ruta/archivos

Ahora, para modificar el crontab:
$ sudo crontab -e


Ojo que éste comando se ejecuta como Root (sudo), para que el programa se ejecute independientemente de si hay una sesión de usuario activa o no. Esto es bien importante porque a menos de que tengas el acceso sin login el tipo difícilmente va a poder ingresar como tu usuario!

Ahora, en caso que quisiéramos dejarlo cada 10 minutos, deberíamos agregar la siguiente línea al final del crontab:
*/10 * * * * cd /ruta/archivos; ./prey.sh > /dev/null

Y listo!

El “> /dev/null” de al final significa que al ejecutarse el programa no va a escupir texto a ningún lado. Si tienes más dudas sobre cron y el crontab, ya sabes para dónde tienes que ir.

Recuerda que si definiste una URL para que el programa se ejecute sólo cuando tú le avises, es bien importante que te la tatúes en algún lugar para que cuando te roben el computador — es decir, ojalá nunca — sepas exactamente dónde tienes que subir la página para que Prey haga su magia.

Para crear la URL puedes hacer un simple echo con algo de texto en la ruta que definiste de tu servidor web:
$ echo "DESAPARECIDO" > prey_check_url
(Gracias pOns por el aviso!)

Descarga

Actualización: Para descargar la última versión de Prey visita el nuevo sitio oficial, donde encontrarás toda la información.

Sírvase por favor.

Obviamente, cualquier comentario o duda que tengan, con confianza no más. Ahora, está claro que instalar Prey no significa que automáticamente el computador va a aparecer en sus manos por arte de magia, pero al menos eliminan la duda de sus cabezas.

No hay que olvidar que acá estamos hablando del robo físico de tu computador, es decir, que a) el tipo tiene acceso absoluto a la máquina, y por lo tanto b) puede hacer básicamente lo que quiera con el aparato, ya sea desarmarlo, cambiar el disco duro, qué se yo.

Esto quiere decir que c) este programita sólo te podrá ser útil en caso de que el tipo efectivamente bootee el PC y se conecte a la web, o bien en el caso de que esté en línea y actives la alarma antes de que alcance a apagarlo.

De lo contrario, si lo formatea ipso-facto antes de cualquier otra cosa, bueno, no hay mucho que hacer en ése caso amigo.

Quizás la solución sería ponerle una clave al CMOS para evitar que bootee desde un CD, pero eso también significa que no podrá ejecutarse Prey!

Por cierto, los interesados pueden ver el código en el repo que tengo en Github, y desde ya están más que invitados a contribuir, ya sea para corregir cosas, agregar otras o incluso documentar o traducir.

Como verán, el programa fue hecho totalmente a la rápida por lo que hay mil cosas que se pueden mejorar.

Ah, de veras, casi se me olvida! Muy importante:

SRTCRMCUC
significa “Si Recuperas Tu Computador Robado Me Compras Una Cerveza” así que ya saben a lo que deben atenerse si usan el programa! :)

FUENTE

No hay comentarios:

Publicar un comentario