Autor: Koji
Fecha: 14/08/2001

Espiando terminales en FreeBSD

 Espiar terminales en FreeBSD es una tarea fácil y sencilla, tan solo necesitamos compilar un nuevo kernel con alguna opción de mas y hacer uso del comando watch

Compilando el kernel

Antes de compilar tenemos que añadir a nuestro kernel el pseudo-device snp, suponiendo que mi kernel se llama mi-kernel haremos:

vi /usr/src/sys/i386/conf/mi-kernel

(me sitúo al final del archivo y añado lo que sigue)

pseudo-device    snp    3

(Los espacios en blanco de separación deben ser tabuladores)

Grabamos y esto es todo. Ahora vayamos a la compilación:

cd /usr/src/sys/i386/conf
config mi-kernel
cd ../../compile/mi-kernel
make depend;make;make install

(Si todo ha ido bien reiniciamos)

NOTA: Si no tenéis un kernel personalizado usad de nombre GENERIC. También tenéis que aseguraros de que habéis instalado los fuentes del kernel (sección src/sys). Podéis instalarlos posteriormente mediante /stand/sysinstall sección Distributions)

Ahora necesitamos crear el dispositivo del que hace uso el watch, así que pondremos:

cd /dev
sh MAKEDEV snp0

Aquí acaba la parte de configuración. Ahora ya podemos hacer uso del comando watch para espiar terminales.
Es importante crear el dispositivo snp0 ya que si no estuviera creado y al usar el watch nos diría algo del estilo:

watch: fatal: cannotsnoop device

La sintaxis de watch es la que se suele usar comunmente, es decir, watch [-opciones ] terminal
No hace falta especificar la ruta /dev a la hora de poner el nombre de terminal, es optativo. Lo que si es obligatorio es ejecutar watch como root

No hay demasiadas opciones en watch. Comentaré las mas significativas poniendo un ejemplo. 

Imaginaros que estáis en vuestra maquina y tras hacer un who veis lo siguiente:

root    ttyv0 Aug 12 10:20
chuck ttyp0 Aug 12 16:)


Website templates are pre-designed websites all you need to do is add your own personal content and you're ready to jump start your own website. Website templates by Vooweb

El usuario chuck a conectado remotamente a nuestra maquina, y vemos que usa la terminal ttyp0. El otro usuario somos nosotros en consola. Para espiarle podemos teclear watch ttyp0. A partir de ese momento todo lo que teclee y vea el usuario chuck lo veremos nosotros. Si por el contrario le da por hacer un exit y finaliza su sesión veremos un mensaje del estilo:

Snoop stopped due to tty close. Reconnecting.
Enter device name [/dev/ttyp0]:

Como el usuario en cuestión ya no está, watch nos invita a teclear otro terminal para espiar a otro usuario.

Esto diríamos que es al usar el comando tal cual, sin ningún tipo de opción. Veamos algunas teclas y opciones interesantes:

Teclas que nos pueden interesar

<control-G>
Para salir del programa watch

<control-W>
Para limpiar la pantalla

<control-X>
Para espiar a otro terminal

Otras opciones que nos pueden interesar

Para mi las opciones mas interesantes son estas:

-c
Sirve para que watch se ponga en modo espera si el usuario teclea exit o finaliza su sesión. Es decir, cuando el usuario acabe su sesión en la maquina nosotros veremos el clasido login: y cuando se vuelva a usar esa terminal watch seguirá espiando

-W
Permite escribir en la terminal del usuario al que espiamos, como si de él nos tratásemos.

Para un mayor detalle de las opciones remitiros al manual del watch tecleando man watch

eldemonio.org El site BSD en Castellano Articles catalogue

Website templates are pre-designed websites all you need to do is add your own personal content and you're ready to jump start your own website. Website templates by Vooweb

eldemonio.org v 4_2