Video Soft BBS


Video Soft BBS
Menú Principal
Anti Trojans
Antivirus
Hoaxes
Subscripciones
Otro software
Artículos
Links
Sugerencias
Sobre el BBS
Direcciones
Las Noticias
Galería
Chat

Controlado desde el 19/10/97 por NedStat

VSAntivirus   
Esta página es un servicio gratuito de Video Soft BBS -
SUBSCRIBASE en nuestras listas de correo.
Es usted nuestro visitante número  desde el 12 de agosto de 1996

KIS, un troyano en Linux
 
VSantivirus No. 382 - Año 5 - Miércoles 25 de julio de 2001

KIS, un troyano en Linux

KIS (Kernel Intrusion System), es un troyano introducido en la conferencia Defcon de Las Vegas de este año.

El troyano, está designado para automatizar la carga del kernel (el corazón del sistema). Una vez cargado, el nuevo módulo intenta ocultar su presencia y se pone a la escucha de instrucciones desde la red.

Se trata de un híbrido entre un demonio (1) zombie (2), (termino que salió a la luz a raíz del ataque simultáneo (DDoS) (3) a importantes sitios de Internet a comienzos del 2000), y una herramienta usada para ocultar su presencia en un sistema, antes de comprometerlo exitosamente.

En su nivel de cliente de control remoto, el troyano KIS se asemeja al Back Orifice o al SubSeven.

Ejecutando comandos desde un cliente KIS remoto, un individuo es capaz de ejecutar diferentes procesos en el host de la víctima, como esconder arbitrariamente archivos, sub- procesos y conexiones a la red.

El troyano puede ser introducido en el sistema en la forma de un código binario ejecutable, que contiene tanto el módulo del kernel como el propio troyano.

Una vez que el archivo es ejecutado, se instala el troyano, y se carga el módulo del Kernel.

El troyano reemplaza el binario /sbin/init con su propio código. Al reiniciar la computadora, el /sbin/init "troyanizado" carga el kernel del KIS y llama luego al "init" original, el cuál ha sido copiado con otro nombre, como oculto. Esto asegura que el troyano sea siempre el primer módulo kernel cargado en el sistema.

KIS parece diseñado para funcionar solamente si es cargado desde init. Múltiples ejecuciones del código binario, como las que ocurrirían si el troyano reemplazara /bin/sh u otro binario que se cargara a menudo, pueden causar el cuelgue del sistema, generando el mensaje "Out of Memory", o dejándolo inestable.

Durante su carga, el módulo kernel del KIS, realiza estas tareas:

Oculta la presencia del módulo, removiéndolo de la lista de módulos.

Reemplaza las llamadas importantes del sistema.

Reemplaza porciones de la estructura vfs de net/tcp, net/udp, y net/raw en procfs.

Genera un kernel_thread para procesar los comandos que ingresen desde Internet.

Reemplaza la estructura ip_packet_type por una nueva que le permite al KIS monitorear todo el tráfico IP de la red y agregar comandos.

Los comandos son enviados al sistema infectado, desde el cliente KIS, directamente en paquetes IP de una longitud específica.

Los comandos disponibles son:

  • Ejecución de un proceso
  • Ocultar los procesos en ejecución
  • Mostrar un proceso oculto
  • Esconder o mostrar un archivo
  • Esconder o mostrar una conexión
  • Ping
  • Remover el propio troyano

El KIS permite la ejecución remota de cualquier proceso en la computadora de la víctima. Combinado esto con su habilidad para ocultar la ejecución de procesos normales, archivos y actividad de la red, el sistema se convierte en una plataforma desde la cuál pueden ejecutarse otros procesos.

A pesar de la necesidad de compilar un troyano por cada kernel, un troyano KIS pre-compilado podría ser distribuido en el paquete a instalar.

El troyano podría ser detectado por un monitor de integridad como el StMichael 0.05 Linux Kernel Module.

En los sistemas que no se esté ejecutando este monitor, o donde se sospeche la infección de un virus, las siguientes observaciones pueden determinar si se está o no infectado.

Durante una operación normal, la ejecución de este comando, puede revelar dos procesos "init":

ps -auwx | grep init

La carga del sistema será alta, no cayendo por debajo de 0.8, aún cuando todos los procesos están durmiendo u ociosos.

Repetir las cargas de "init" (el troyano), así como los cambios entre diferentes niveles de ejecución o reiniciar, causan que el sistema se bloquee, genere mensajes de error, o se cuelgue.

Un escaneo de puertos en el sistema, revela puertos abiertos y a la escucha, que no son reflejados por un netstat.

Alternativamente, si el sistema puede ser reiniciado desde un soporte de rescate limpio, busque en el sistema un archivo llamado "HT" en modo 000. Esta es la tabla usada por el KIS para listar los archivos ocultos.

find / -name ht -mode 000 -print

Además, el proceso "init" troyanizado, es copiado en un archivo en el mismo directorio donde se encuentre el "init" original, pero con el nombre "init.".

find / -name init\. -print

En forma adicional, para determinar si los archivos están ocultos por KIS o por cualquier otro troyano, los siguientes métodos pueden ser aplicados.

Inicie el sistema normalmente, y genere una lista de archivos:

find / -type f -print > listing.1

Reinicie el sistema usando un disco de rescate. Monte todos los sistemas de archivos (por ejemplo en /mnt)

find /mnt -type f -print | sed -e "/\/mnt//g" > listing.2

Aplique la orden Diff a los dos listados, para encontrar los archivos ocultos.

diff -u listing.1 listing.2

Para limpiar el KIS, se deberá reemplazar el init por uno limpio o por el original.

El init original es guardado en el mismo directorio que se encuentra el archivo HT. Existen dos archivos con nombres muy similares:

"init" (el init troyanizado)
"init." (la copia del init original).

Copie el archivo "init" original sobre el troyanizado:

cp init /sbin/init

El archivo HT puede contener la lista de ciertos archivos y directorios que están ocultos. Estos archivos pueden contener información acerca del ataque y cuántas veces ha sido usado el troyano.

Pueden recuperarse las fuentes del KIS, en ese caso el archivo server.h contiene los módulos y todo lo necesario para comunicarse con el troyano.


Glosario:

(1) DEMONIO (Daemon) - Un proceso que se ejecuta en segundo plano. Es un termino UNIX, aunque muchos otros sistemas lo soportan, incluso Windows, pero con otros nombres.

(2) ZOMBIE - Una computadora generalmente infectada con un troyano de acceso remoto, capaz de recibir ordenes externas, y de actuar, generalmente en actividades maliciosas, sin el conocimiento de sus dueños.

(3) D.D.o.S (Distributed Denial of Service). Ataques de negación de servicio distribuidos. En lugar de una sola computadora, se utilizan cientos o hasta miles de ellas, todas actuando al mismo tiempo contra una misma víctima, un servidor o cualquier computadora conectada a Internet, la que recibe una sucesión de solicitudes de servicio, con tal frecuencia y cantidad, que al no poder ser respondidas van disminuyendo paulatinamente su rendimiento, ocasionando casi siempre la caída del sistema, además de la saturación del ancho de banda asignado.


Fuente: Linux Today (http://linuxtoday.com)
(c) Video Soft - http://www.videosoft.net.uy

 

Copyright 1996-2001 Video Soft BBS