Gracias por comentar.

Este Blog cuenta con detección automática de spam para los comentarios. Además, hasta que yo no los lea no se publicaran...

Buscar en este blog

domingo, 20 de junio de 2010

Dos antirootkits para Ubuntu, Chkrootkit y Rkhunter

Un rootkit es una herramienta, o un grupo de ellas que tiene como finalidad esconderse a sí misma y esconder otros programas, procesos, archivos, directorios, claves de registro, y puertos que permiten al intruso mantener el acceso a un sistema para remotamente comandar acciones o extraer información sensible.

En Linux tenemos 2 estupendos programas para buscar rootkits en nuestro sistema. Se trata de Chkrootkit y Rkhunter.

  1. Chkrootkit (Check Rootkit) es un programa informático de consola, común en sistemas operativos Unix y derivados. Permite localizar rootkits.
  2. Rkhunter (o Rootkit Hunter) es una herramienta de Unix que detecta los rootkits, los backdoors y los exploit locales. Buscando los directorios por defecto (de rootkits), los permisos incorrectos, los archivos ocultos, las cadenas sospechosas en los módulos del kernel, y las pruebas especiales para Linux y FreeBSD.

Para instalar estos programas podemos hacerlo desde el Gestor de Paquetes Synaptic (Gnome) o desde KPackagekit (KDE).

Funcionan desde un Terminal con permisos de Administrador. Para buscar rootkits con Chkrootkit tecleamos lo siguiente:

sudo chkrootkit

Y vamos viendo el resultado en el Terminal...

Con Rkhunter es parecido. Según he leído en internet, rkhunter guarda un registro con el estado del sistema la primera vez que lo instalas/ejecutas.

Si modificas ficheros importantes o instalas nuevos paquetes, necesitas actualizar la base de datos de rkhunter (rkhunter --propupd) para que los acepte como válidos. Eso sí, antes comprueba que son legítimos.

Vamos a ello, abrimos un Terminal y tecleamos:

rkhunter --propupd 

y luego actualizamos:

rkhunter --update 

Y ahora nos ponemos a buscar rootkits, tecleamos:

rkhunter -c --sk

Y como con Chkrookit nos ira mostrando el resultado en el Terminal (la -c es para buscar en el sistema y --sk es para que no haga pausas...).

Hacerlo así es un poco... rollo, por lo que la gente crea scrips (pequeños programas) para automatizarlo. Yo también lo he hecho, bueno, he hecho, uno para Gnome y otro para KDE basándome en ejemplos que encontré en Internet.

* Para GNOME (Ubuntu y tambien para Kubuntu, si nos gusta) :


gchkrkhunter.sh

Para usar mi script necesitamos tener instalado Zenity. Con Zenity se pueden crear cajas (o ventanas) de diálogos desde la linea de comandos o scripts que interactúen gráficamente con el usuario.

Podemos instalar Zenity desde el Gestor de Paquetes Synaptic (Gnome) o desde KPackagekit (KDE) o también desde un Terminal. En este ultimo caso pondríamos en el Terminal:

sudo apt-get install zenity

Ahora creamos un archivo de texto al que llamaremos gchkrkhunter.sh, lo editamos y en el copiamos el código que sigue a continuación.

#!/bin/bash
#Espera un minuto antes de comenzar a buscar rootkits...
sleep 1m
#Comprueba si quien ejecuta el script es root, y si no es root, se re-ejecuta como root.
[ "$UID" != "0" ] && gksu --message "La aplicación gchkrhunter.sh necesita que introduzca su contraseña para realizar tareas administrativas y buscar rootkits" $0
#Cuando temrina de ejecutarse como root, no va a tratar de ejecutarse como no-root
[ "$UID" != "0" ] && exit
echo "# A continuación comienza la busqueda de rootkits con gchkrhunter.sh..."

(
#rkhunter --propupd
echo "# A continuación se va a comenzar la búsqueda de rootkits con CHKROOTKIT..."

#Se ejecuta chkrootkit y los resultados se guardan en tu carpeta personal como informedechkrootkit.txt
chkrootkit>/home/pentell/informedechkrootkit.txt
echo "# Buscando actualizaciones para las firmas de rootkits de RKHUNTER..."
#Se actualiza rkhunter con las ultimas firmas de rootkits de RKHUNTER...
rkhunter --update
echo "# Buscando Rootkits en el Sistema con RKHUNTER..."
#Se ejecuta rkhunter, se consulta la ultima version del programa, se empieza a buscar rootkits y los resultados se guardan en tu carpeta personal como informederkhunter.txt
rkhunter -c --sk --versioncheck --logfile /home/pentell/informederkhunter.txt
echo "# Pulse Aceptar para ver los informes de resultados..."
)|zenity --progress \
--title="Busqueda diaria de rootkits" \
--text="Buscando rotkits en el Sistema con RKHunter..." \
--pulsate \
--percentage=0

if [ "$?" = -1 ] ; then
zenity --error \
--text="Busqueda cancelada..."
fi


#Se muestran los resultados de CHKROOTKIT y de RKHUNTER
zenity --title="Informe de CHKROOTKIT" --text-info --filename=/home/pentell/informedechkrootkit.txt
zenity --title="Informe de RKHUNTER" --text-info --filename=/home/pentell/informederkhunter.txt
zenity --info --title="gchkrhunter.sh" --text="Puede encontrar estos informes en su carpeta personal como informedechkrootkit.txt e informederkhunter.txt. Para ver informederkhunter.txt necesitara privilegios de Administrador."


Donde pone pentell, lo sustituimos por el nombre de nuestra carpeta personal y por ultimo le tenemos que dar permisos de ejecución, una forma de hacerlo seria haciendo clic sobre el script con el botón derecho de ratón y darle este permiso o desde un Terminal:

sudo chmod +x gchkrkhunter.sh

Y si queremos aun lo podemos automatizar mas haciendo que se ejecute cada cierto tiempo con cron, por ejemplo o hacemos que se ejecute al encender el ordenador en Kubuntu se haría en Preferencias del Sistema >> Autoarranque >> Avanzado >> Añadir script y en Ubuntu en Sistema >> Preferencias >> Aplicaciones al inicio >> Añadir

Cuando se ejecute gchkrkhunter.sh veremos algo así:



* Para KDE (Kubuntu)


kchkrhunter.sh

Si usamos Kubuntu y no queremos instalar Zenity podemos usar este otro script que usa Kdialog en vez de ese programa para mostrar diálogos...

#!/bin/bash
#kchkrhunter.sh
#Espera un minuto antes de comenzar a buscar rootkits
sleep 1m
#Comprueba si quien ejecuta el script es root, y si no es root, se re-ejecuta como root.
[ "$UID" != "0" ] && gksu --description "kchkrhunter.sh" $0
#Cuando temrina de ejecutarse como root, no va a tratar de ejecutarse como no-root
[ "$UID" != "0" ] && exit

(
#Buscando rootkits con CHKROOTKIT...
kdialog --title "kchkrhunter.sh" --passivepopup "Se ha comenzado a buscar rootkits en el Sistema con CHKROOTKIT..."
chkrootkit>/home/pentell/informedechkrootkit.txt
#Buscando actualizaciones para las firmas de rootkits de RKHUNTER...
kdialog --title "kchkrhunter.sh" --passivepopup "Buscando actualizaciones para las firmas de rootkits de RKHUNTER..."
rkhunter --update
#Buscando Rootkits en el Sistema con RKHUNTER...
kdialog --title "kchkrhunter.sh" --passivepopup "Se ha comenzado a buscar rootkits en el Sistema con RKHUNTER..."
rkhunter -c --sk --versioncheck --logfile /home/pentell/informederkhunter.txt
)
kdialog --title "kchkrhunter.sh" --passivepopup "A continuacion se mostraran los resultados de CHKROOTKIT y RKHUNTER."
kdialog --title="Informe del buscador de Rootkits CHKROOTKIT" --textbox /home/pentell/informedechkrootkit.txt 620 420
kdialog --title="Informe del buscador de Rootkits RKHUNTER" --textbox /home/pentell/informederkhunter.txt 620 420
kdialog --title "kchkrhunter.sh" --passivepopup "Terminada la busqueda de Rootkits..."

En pantalla se vera, de vez en cuando, un aviso como este:



y los resultados se nos presentaran así:




Zenity: http://library.gnome.org/users/zenity/stable/index-info.html.es
Contraseña de root: http://www.ubuntu-es.org/node/122335
Relacionado: http://vijamaroylinux.blogspot.com/2008/12/chkrootkit-un-buscador-de-rootkits.html

2 comentarios:

Mariano dijo...

ya se que sonara raro pero, Una vez que da los resultados que onda? como limpiamos o arreglamos?

VIJAMARO dijo...

Yo buscaria informacion sobre el problema por Internet y me aseguraria de lo que voy a hacer.