De acuerdo a la definición en wikipedia un rootkit es una herramienta, o un grupo de ellas que tiene como finalidad ocultarse a sí misma y ocultar otros programas, procesos, archivos, directorios, llaves de registro, y puertos que facultan al intruso mantener el entrada a un sistema para remotamente comandar acciones o extraer información sensible, a menudo con fines maliciosos o destructivos. De hecho que un hacker (black hat) te instale un root kit en tu equipo Linux es la máxima intrusión a la que estarías expuesto. Recuerda que en GNU/Linux el peligro no son virus como en el mundo Windows sino las vulnerabilidades que se descubren a diario en los muy diferentes proyectos que usa el sistema. Por eso la relevancia de comprobar y actualizar lo más continuo probable el sistema en su totalidad. En este producto de LinuxTotal.com.mx te presento dos utilerías que te permitirán comprobar tu equipo por probables cambios en los ficheros y proyectos más comunes, ya que ha menudo los rootkits se disfrazan como proyectos de uso muy comun como o , inclusive conservan la misma funcionalidad (que es el objetivo, que el usuario no se entere que ya ha sido hackeado con un rootkit) pero a la vez de forma furtiva realizan su esfuerzo de ejecutar comandos remotos, abrir puertos, hacer ataques DoS, instalar servidores Web ocultos, utilizar ancho de banda para transferencia de ficheros, monitorear con keylogers, etc., etc. chkrootkit chkrootkit muy popular checador de rootkits, verifica localmente por señales de estos. Es una buena alternativa para equipos Desktop, laptops, inclusive para servidores como un complemento más de este tipo de programas. Después de que lo descargues hay que compilarlo: (como root) > wget ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz > tar xvzf chkrootkit.tar.gz > cd chkrootkit (o el directorio donde se haya descomprimido) > make sense (se compilan los fuentes en C) Con lo previo debes de tener ahora en el mismo directorio un binario llamado chkrootkit, se ejecuta sin argumentos de la próximo manera: > ./chkrootkit ROOTDIR is `/' Checking `amd'... not found Checking `basename'... not infected Checking `biff'... not found Checking `chfn'... not infected Checking `chsh'... not infected Checking `cron'... not infected Checking `crontab'... not infected Checking `date'... not infected Checking `du'... not infected Checking `dirname'... not infected Checking `echo'... not infected Checking `egrep'... not infected Checking `env'... not infected Checking `find'... not infected . .. (varias líneas más de verificación de archivos, directorios y procesos) Es probable ver la lista de pruebas que chkrootkit puede hacer mediante la alternativa y ejecutar solo una o algúnas a la vez: >./chkrootkit -l . /chkrootkit: tests: 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 > ./chkrootkit tar top (verificamos solos dos pruebas) ROOTDIR is `/' Checking `tar'... not infected Checking `top'... not infected chkrootkit no tiene alternativa (al menos hasta la versión 0.48) para enviar a archivo el fruto del escaneo realizado, pero se resulve con direccionamiento: > ./chkrootkit > chkrootkit20080414.txt Puedes realizar un script donde se agregue la fecha automáticamente (ver Comando date, sus usos y respaldo de ficheros ) y a través de una acceso de cron ejecutarlo diariamente. Revisar y/o comparar esttos ficheros diariamente te ayudarán a detectar cambios en tu sistema. rkhunter rkhunter en mi opinión, es un checador de rootkits mucho más completo y potente que chkrootkit, es ideal para ser usado en servidores. En su página de descarga sostiene (a modo de broma) que verifica en eun 99.9% que estás abierta de indeseables rootkits, es decir, realmente se trata de una capa más de seguridad. rkhunter verifica el sistema por: Comparación de hashes MD5 Busca por ficheros comunes usados por rootkits Permisos equivocados para binarios Busca por cadenas de texto sospechosoas en módulos LKM (Loadable Kernel Modules) y KLD (Kernel Loadable Device) Busca por ficheros ocultos Opciones de escaneo dentro de ficheros binarios y planos Después de descargar el tar.gz lo instalamos: > tar xvzf rkhunter-1.3.2.tar.gz > cd rkhunter (o el directorio donde se haya descomprimido) > ./installer.sh --layout default --show PREFIX: /usr/local Application: /usr/local/bin Configuration file: /etc Documents: /usr/local/share/doc/rkhunter-1.3.2 Man page: /usr/local/share/man/man8 Scripts: /usr/local/lib/rkhunters Databases: /var/lib/rkhunter/db Temporary files: /var/lib/rkhunter/tmp (lo que hice aqui fuese presentar previó a la instalación, donde quedarían la aplicación y demás con una instalación 'default') (usa ./installer.sh para ver las alternativas de la instalación) (ahora si realizo la instalación) > ./installer.sh --layout default --install Una vez instalado, la forma más escencial de ejecutar rkhunter es asi: > rkhunter -c [ Rootkit Hunter version 1.3.2 ] Checking system commands... Performing 'strings' command checks Checking 'strings' command [ OK ] Performing 'shared libraries' checks Checking for preloading variables [ None found ] Checking for preload file [ Not found ] Checking LD_LIBRARY_PATH variable [ Not found ] Performing file properties checks Checking for prerequisites [ OK ] /bin/awk [ OK ] /bin/basename [ OK ] /bin/bash [ OK ] /bin/cat [ OK ] /bin/chmod [ OK ] /bin/chown [ OK ] /bin/cp [ OK ] /bin/csh [ OK ] /bin/cut [ OK ] /bin/date [ OK ] /bin/df [ OK ] .... (varias líneas más) rkhunter con la alternativa realiza un escaneo muy completo del sistema, no es probable apreciarlo aqui, pero en cada sección del escaneo la salida se interrumpe como para poder analizarlo, y hasta que no se presiones ?Enter? continua. Puedes deshacerte de este comportamiento interactivo con la alternativa ?sk, por cierto, la lista de alternativas o ayuda, la obtienes invocando rkhunter sin ningún argumento. Si debiera algo que reportar, el archivo /var/log/rkhunter.log, pero puedes cambiar la salida del archivo a otro que tu desees: > rkhunter -c --sk --logfile /root/rkhunter20080414.txt Lo previo enviará toda la salida al archivo indicado y sin hacer pausas para continuar. También es probable hacer pruebas personalizadas y no todas a la vez. > rkhunter --list (lista de pruebas posibles) Available test names: additional_rkts all apps attributes deleted_files filesystem group_accounts group_changes hashes hidden_procs immutable known_rkts local_host malware network none os_specific other_malware packet_cap_apps passwd_changes ports possible_rkt_files possible_rkts possible_rkt_strings promisc properties rootkits running_procs scripts shared_libs shared_libs_path startup_files startup_malware strings suspscan system_commands system_configs trojans Grouped test names: additional_rkts => possible_rkt_files possible_rkt_strings group_accounts => group_changes passwd_changes local_host => filesystem group_changes passwd_changes startup_malware system_configs malware => deleted_files hidden_procs other_malware running_procs suspscan ... (varias líneas más) > rkhunter --enable hidden_procs,system_commands (se ejecutan solo las pruebas deseadas) > rkhunter --disable system_commands (lo contrario, se ejecutan todas las pruebas menos la indicada(s)) Como ya se mencionó previamente, es conveniente que se ejecute periódicamente a través de un cron y con un control por fechas de los reportes que se generan, asi se teendrá una bitacora muy completa de cuando pudieron ocurrir cambios en el sistema. También, recuerda que estos anti-rootkits son solo una medida de seguridad más para la protección de tu sistema, hay que actualizar continuamente, apagar los servicios que no se usen, configurar adecuadamente ssh, apache, servidores de correo, etc. Fuente: