05 febrero 2010

Sebek 3: Conoce a tu enemigo

En SbD hemos citado Sebek en varias ocasiones, cuando se trató el tema de los Honeypots corporativos y los ataques desde el interior, y para monitorizar sesiones SSH. Hoy vamos a ver Sebek un poco más de cerca.

Sebek 3 pertenece al proyecto Honeynet. Sebek investiga las acciones de usuarios y administradores en los propios equipos Host.

Observa las acciones del usuario en los equipos de la organización. Permite defenderse contra las técnicas de evasión de la auditoría y la vigilancia.

Utiliza las técnicas de ocultación de los rootkits, lo que le hace indetectable. Al residir en la parte privilegiada del sistema, los usuarios no pueden ni manipularlo, ni detectarlo.

Sebek permite registrar todas las llamadas al sistema, como las pulsaciones de teclado, recupera ficheros copiados y captura contraseñas.

Este proyecto está diseñado para entornos Win32 y Linux.

La arquitectura de Sebek es cliente-servidor. El servidor sebek se implanta en una máquina Linux, mientras que los clientes se implantarán en los honeypots Linux y Windows.


Es interesante leer el paper Know yor enemy: Sebek para conocer un poco más a fondo la arquitectura y diseño de los componentes del proyecto Sebek. También es interesante este otro paper que nos muestra como instalar una honeynet virtual, este último en lugar de instalar únicamente el servidor sebek, lo instala como parte de Roo Honeywall.

La instalación del servidor sebek (versión 3.0.3) no es costosa, debemos tener en cuenta que tenemos que tener instalado libpcap. Después es tan sencillo como:

$ ./configure
$ make
$ make install

Después de esto aparecen en /usr/local/bin/ unos módulos que serán los que usaremos para extraer la información. Algunos de estos módulos son:

sbk_extract: lo invocaremos para extraer la información, posee entre otros los flags -i para identificar la interfaz y -p para identificar el puerto
sbk_ks_log.pl: permite extraer las pulsaciones de teclado
sbk_upload.pl: sirve para almacenar los datos en una base de datos mysql. El schema de la base de datos difiere de la versión de Sebek2 y su antigua consola, ya que en Sebek3 permite la integración con Walleye.

Una vez instalado el servidor, instalamos el cliente sebek en nuestro honeypot, el código fuente lo podemos sacar de aquí. Podemos seguir esta guía como base para crear el paquete e instalarlo en nuestro honeypot. Se recomienda compilar el código en una máquina distinta para no dejar trazas.

Para crear el paquete que luego desplegaremos en el honeypot Linux:

$ cd sebek
$ ./configure --disable-raw-socket-replacement
$ make

(Se generará un archivo sebek-lin*-bin.tar.gz que será copiado al honeypot)

Cuando vayamos a configurar nuestro cliente sebek, debemos tener en cuenta 3 parámetros importantes de la configuración en el archivo sbk_install.sh o Configuration Wizard.exe (para entornos Linux y Windows, respectivamente):

DESTINATION_IP: se recomienda no poner la IP de la máquina donde estará instalado el servidor sebek para que no sea detectado por el intruso.
DESTINATION_MAC: se debe poner la dirección MAC del recolector.
DESTINATION_PORT: elegiremos un puerto, que será el mismo que debemos usar con sbk_extract para que recoja la información en el servidor.
MAGIC_VAL: elegimos un valor que debe ser idéntico en los clientes sebek de los honeypots.

Para configurar los parámetros e instalarlo:

En Linux:

$ vi sbk_install.sh (Cambiamos los parámetros indicados arriba)
$ sudo ./sbk_install.sh

En Windows (versión cliente Sebek Win32 3.0.5):

Ejecutar Configuration Wizard.exe y modificar los parámetros.

Después Setup.exe.

Podemos ver como funciona Sebek 3 con un ejemplo en un entorno virtual (servidor sebek en máquina Linux y cliente sebek en máquina Windows).



2 comments :

Skye dijo...

Sería interesante que ampliases el post hablando de las técnicas que usa sebek para hacerse ""indetectable"". son técnicas usadas por diversos rootkits y que ayudan a sebek a ser una herramienta bastante potente :)


PD: hablando solo de la instalación...Ni que fueras consultora xDDDDDD :DD

Anónimo dijo...

@Skye: X'D Tienes toda la razón, lo ampliaré. Añadiré la task a mi FIFO.

Besos