30 Nov 2008

Detectando Rootkits en Linux con Chkrootkit

Chkrootkit (Check Rootkit) es un programa basado en Unix destinado a ayudar a los administradores de sistemas, verificando su sistema en busca de rootkits conocidos. Es un script de shell que usa herramientas básicas de UNIX/Linux como los comandos strings y grep para buscar en los programas del corazón del sistema en busca de signatures (firmas) y hace un recorrido por el sistema de archivos /proc para compararlos con la salida de ps (estado de los procesos) para buscar discrepancias.

Se puede usar desde un “disco de rescate” (por lo general, un Live CD) o puede, opcionalmente, utilizar un directorio alternativo para que pueda ejecutar la totalidad de sus propios comandos. Es como cuando nos dicen que iniciemos Windows en Modo Seguro, para evitar que algún virus interfiera con el escaneo.

Archivos generados y su funcionalidad:

ifpromisc.c : Comprueba si el interfaz está en modo promiscuo.
chklastlog.c : Comprueba para si hay canceladuras del lastlog.
chkwtmp.c : Comprueba para saber si hay canceladuras del wtmp.
check_wtmpx.c : Comprueba canceladuras del wtmpx. (Solaris solamente)
chkproc.c : Comprueba para saber si hay muestras de los trojans de LKM.
chkdirs.c : Comprueba para saber si hay muestras de los trojans de LKM.
strings.c : Reemplazo rápido de las secuencias.
chkutmp.c : Comprueba para saber si hay canceladuras del utmp.
chkrootkit : Script principal, usa los demás programas generados en su compilación.

Instalando de Chkrootkit:

Se puede instalar de dos maneras:

1. Abriendo un terminal y digitando lo siguiente:

$ sudo apt-get install chkrootkit

2.- A través de Gestor de paquetes Synaptic:

Chkrootkit01

Opciones de chkrootkit:

-h Muestra la ayuda

-V Muestra la versión

-l Muestra los test que realizará

-d Ejecución en modo depurador (Viendo el código)

-q Modo quiet (Solo saca los “infected”)

-x Modo experto (Saca la información de una forma más clara)

-r Para indicarle el directorio root (Por defecto /)

-p dir1:dir2:dirN Para indicarle a chkrootkit los path que usa chkrootkit para sus comandos (awk, cut, egrep, find, head, id, ls, netstat, ps, strings, sed, uname), en caso de no usar los estandars

-n Ignorara sistemas montados en NFS

Tests que se pueden realizar (Opcion -l):

aliens asp bindshell lkm rexedcs sniffer w55808 wted scalper slapper z2 chkutmp amd basename biff chfn chsh cron crontab date du dirname echo egrep env find fingerd gpm grep hdparm su ifconfig inetd inetdconf identd init killall ldsopreload login ls lsof mail mingetty netstat named passwd pidof pop2 pop3 ps pstree rpcinfo rlogind rshd slogin sendmail sshd syslogd tar tcpd tcpdump top telnetd timed traceroute vdir w write.

Ejemplos:

Para ejecutarlo desde la consola digitar:

$ sudo chkrootkit

Si queremos ejecutarlo en modo experto:

$ sudo chkrootkit -x

Para realizarlo desde un Live-CD, se instala desde la consola, como arriba indicamos, y luego el nombre de la partición Linux montada se encuentra en  Lugares > Carpeta Personal, haces clic en Sistema de archivos y luego hacen clic en media para ver el nombre con el cual se ha montado la partición Linux:

$ sudo chkrootkit -r /media/”partición montada”

$ sudo chkrootkit -r /media/disk-1

Chkrootkit02

NOTA: Si examinamos un binario que no tengamos en nuestra maquina saldrá “not found”, si lo tenemos y no esta infectado, “not infected”. Este Programa al ser solo un ejecutable y no requiere de instalación permite ejecutarlo desde algún disquete o cd-live, lo cual es recomendable debido a que si se tienen instalados en el sistema, un rootkit puede meter mano al detector para permanecer bien escondido.

Para realizar la siguiente entrada me ayude de este post.

Saludos . . .

TAGS:

Comments are closed.