Hacer una backdoor en tu sistema Linux

Creo que cuando se escribe algo así hay que decir que uno no se hace responsable del mal uso que pueda darse a esta información. En fin, no se si cambiaría algo si pusiera “Yo me hago totalmente responsable de vuestros actos presentes y futuros si decidís usar esta información para putear a vuestra antigua empresa o a vuestro centro de estudios”, supongo que ante un juez no colaría, la verdad. En todo caso, tal vez lo deje escrito en mi testamento por si alguien quiere probar frente a la ley (si cuando me muera, espero que dentro de muchos años, todavía se pueden meter backdoors de esta forma, que me imagino que no, es más, como Apple siga creciendo así y dando por culo con demandas de patentes igual de aquella ya ni siquiera hay software libre).

¿Qué es un Backdoor? No es una jugada de baloncesto que consiste en desmarcarte por la espalda de un rival para recibir cerca de la canasta, sino una “puerta trasera” al equipo. Si os gusta el cine de ci-fi o el de espionaje, habréis visto muchos películas donde hábiles y/o malvados hackers utilizan estas puertas traseras para acceder a equipos ajenos, todo rodeado de un misticismo y secretismo al más puro estilo SPECTRA, pero realmente no es muy difícil crear una puerta trasera en un sistema Linux. En principio sólo necesitas un equipo (con un sistema operativo Linux, aunque creo que esto debería funcionar en la mayoría de sistemas basados en UNIX) donde meterla y una cuenta de usuario (en este caso, además, que la cuenta tenga permisos de root).

¿Por qué utilizar una puerta trasera en tu equipo? Bueno, aparte de las aplicaciones malvadas expuestas en el primer párrafo (y que son pecado y, en muchos casos, delito, así que ya sabéis, no lo hagáis malos malos malosos) es una medida de seguridad por si por algún motivo alguien logra hackear tu sistema y pierdes tu contraseña de root. Simplemente con un sencillo script de pocas líneas, un archivo de contraseñas y el uso del Cron puedes hacerte una puerta trasera a tu sistema.

Lo primero que tienes que hacer es un archivo de contraseñas propio, ya sea una copia de seguridad del archivo original o un archivo distinto, pero el caso es que tenga una contraseña de root que tú conozcas. En este caso lo puedes crear en /var/spool/mail/ (puedes meterlo en cualquier sitio realmente, pero la idea es esconderlo para el hacker/administrador no lo encuentre) y ponerle un nombre que no llame la atención como .stampcfg (la idea es que parezca un archivo más de configuración secundario, no le llaméis password ni backdoor, ni cualquier cosa cantosa).

Ok, ya tenemos dentro del sistema, y bien camufladito, un archivo de contraseñas con una contraseña de root que nosotros conocemos. Lo siguiente es hacer un script tal que así, al que llamaremos .cleaning y guardaremos en /bin/usr (como ya he dicho antes, le puedes poner el nombre que quieras y guardarlo donde quieras, pero la idea es que pase desapercibido en el sistema):

#!/bin/sh

cp /etc/passwd /etc/.tmppssw

cp /var/spool/mail/.stampcfg /etc/passwd

sleep 180

mv /etc/.tmppssw /etc/passwd

 

Explicando por encima el script, lo que hace es hace una copia de del archivo de contraseñas del sistema, sobreescribir el archivo de contraseñas del sistema con el vuestro, esperar 3 minutos (sleep 180, es decir “espera 180 segundos”, y podéis poner la cantidad de segundos que creáis necesaria, pero cuanto menos mejor por aquello de no llamar la atención) y finalmente restaurar el archivo de contraseñas del sistema. De esta forma disponéis de tres minutos para entrar como root y, en caso de que no lo hagáis, borra vuestras huellas para que el administrador no lo detecte. No olvides darle permisos al script después de crearlo para que sea ejecutable.

Finalmente tenéis que hacer que el script se ejecute en un momento determinado, por lo que vamos a usar el Cron. El Cron es un demonio ‘temporal’, o sea, se encarga de hacer que el sistema ejecute la orden que tú quieras cuando tú quieras. Si pones crontab en el shell te dirá cómo introducir, eliminar y ejecutar crons. El fichero de configuración, en Ubuntu, es /var/spool/cron/crontabs/root (si trabajas con otra distro de Linux o con Solaris o BSD sólo te puedo decir que investigues si es el mismo o está en otra parte). La idea es que metas en ese archivo una línea similar a la siguiente:

30 2 * * * /bin/usr/.cleaning

Bueno, os explico un poco qué implica esto: cada tarea que metéis en Cron tiene 6 parámetros, los cinco primeros nos permiten definir la fecha en que queremos que se ejecute y el sexto es el script a ejecutar. El primer parámetro es el minuto en que queremos que se ejecute, y el segundo la hora (en este caso, hemos puesto 30 y 2, es decir, a las dos y media, pero podéis poner la hora que queráis). Los siguientes serían el día del mes(1-31), el mes del año(1-12) y el día de la semana(0-6), y al introducir un asterisco lo que decimos es que no queremos definir ninguno en concreto. De esta forma esa línea lo que dice es “ejecuta lo que hay en /bin/usr/.cleaning todos los días a las 2:30”.

Así que, si todo va bien, todos los días, entre las 2:30 y las 2:33 (ya que el script está configurado para restaurar la contraseña original), vosotros podréis acceder como root al sistema y hacer lo que queráis (la idea es recuperar el control del sistema, pero bueno, lo dejo a vuestra imaginación). No es un sistema indetectable, pero si el administrador/hacker mira la lista de tareas del crontab sólo verá que, a una hora intempestiva (pensando siempre en horario comercial/de oficina/de estudios), se ejecuta un proceso llamado .cleaning (nombre que incita a pensar que se trata de una tarea de mantenimiento simple, que limpia el sistema de archivos temporales, o basura, o algo así), y si no coincide que tenga que usar la contraseña de root durante el tiempo que esta cambia (y teniendo en cuenta la hora elegida y los pocos minutos que dura el cambio, es muy posible que no ocurra) no debería darse cuenta de que está actuando.

Ahí tenéis una puerta de atrás simple pero efectiva, así que si decidís meterla en vuestra equipo… “con sentidiño”, que no se diga que yo he incitado a usar esto para robar datos de una empresa, modificar notas en un centro de estudios o simplemente dejar sin acceso a un usuario. Y por supuesto, cuando tengáis el control del sistema de nuevo aseguráos de que no os hayan dejado otras backdoors funcionando.

 

Anuncios

Un comentario en “Hacer una backdoor en tu sistema Linux

  1. Como método de seguridad para recuperar el acceso si entran en tu sistema y te cambian la contraseña de root lo veo muy útil, pero para entrar en ordenadores ajenos no me acaba de convencer, ya que cuando estas creando la backdoor imagino que necesitarás permisos de root para poder darle los permisos necesarios al script para su correcta ejecución luego, y a la hora de entrar en el sistema a posteriori necesitarías tener también acceso físico al equipo en cuestión (a no ser que puedas acceder por ssh o telnet).

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s