GNU/Linux >> Tutoriales Linux >  >> Cent OS

Cómo instalar RKHunter en CentOS 7

En este artículo vamos a aprender a instalar y encontrar rootkits con Rootkit Hunter, entre otras amenazas, podrás usarlo para encontrar indicios de algunas variantes del malware XOR.DDoS, que actualmente se usa para crear botnets con Sistemas Linux para ataques masivos distribuidos de denegación de servicio.

Índice

  • Instalar
    • Descargar
    • Parche - (opcional)
    • Instalar
  • Configurar
    • pruebas
    • registros
    • listas while
    • miscelánea
  • Corre
    • banderas
    • programación cron

Instalar RKHunter

Descarga Rkhunter, prueba cURL para hacer esto.

curl http://nbtelecom.dl.sourceforge.net/project/rkhunter/rkhunter/1.4.2/rkhunter-1.4.2.tar.gz -o rkhunter-1.4.2.tar.gz

Luego extraiga el contenido del paquete.

tar zxvf rkhunter-1.4.2.tar.gz

Introduzca el directorio tarball.

cd rkhunter-1.4.2

Parche (opcional)

Este paso parcheará el script rkhunter y su base de datos para buscar el malware XOR DDoS Linux. Este parche se basa en el puerto y los archivos encontrados en los informes realizados por Akamai, Avast y Malware Must Die.

Ingrese al directorio de archivos en el directorio rkthunter.

cd files

Instale el parche utilidad con yum.

yum install patch

Ahora descarga el parche.

curl http://sourceforge.net/p/rkhunter/patches/44/attachment/rkhunter.patch -o rkhunter.patch

Alternativamente, puede copiar y pegar el contenido del archivo rkhunter.patch desde aquí.

--- rkhunter    2014-03-12 17:54:55.000000000 -0300
+++ rkhunter.new        2015-10-02 17:01:25.040000000 -0300
@@ -7797,6 +7797,19 @@
#

+       # XOR.DDoS
+       XORDDOS_FILES="/lib/udev/udev
+                      /lib/udev/debug
+                      /etc/cron.hourly/cron.sh
+                      /etc/cron.hourly/udev.sh
+                      /lib/libgcc4.so
+                      /var/run/udev.pid
+                      /var/run/sftp.pid"
+       XORDDOS_DIRS=
+       XORDDOS_KSYMS=
+
+
+
# 55808 Variant A
W55808A_FILES="/tmp/.../r
/tmp/.../a"
@@ -11907,6 +11920,13 @@
return
fi

+       # XOR.DDoS Rootkit
+       SCAN_ROOTKIT="XOR.DDoS - Rootkit"
+       SCAN_FILES=${XORDDOS_FILES}
+       SCAN_DIRS=${XORDDOS_DIRS}
+       SCAN_KSYMS=${XORDDOS_KSYMS}
+       scanrootkit
+

# 55808 Trojan - Variant A

--- backdoorports.dat   2010-11-13 20:41:19.000000000 -0300
+++ backdoorports.dat.new       2015-10-02 17:10:24.086000000 -0300
@@ -12,6 +12,7 @@
2001:Scalper:UDP:
2006:CB Rootkit or w00tkit Rootkit SSH server:TCP:
2128:MRK:TCP:
+3502:Possible XOR.DDoS Botnet Malware:TCP:
6666:Possible rogue IRC bot:TCP:
6667:Possible rogue IRC bot:TCP:
6668:Possible rogue IRC bot:TCP:

Aplicar el parche en el rkhunter script y backdoors.dat archivos con el siguiente comando.

patch < rkhunter.patch

El parche está listo, ahora regrese al directorio raíz de tarball para continuar con la instalación.

cd ..

Instalar archivos

Ejecute el script de instalación con los siguientes parámetros para instalarlo en /usr/local.

./installer.sh --install --layout /usr/local

También puede usar los --examples bandera para mostrar más información de diseño y ejemplos o y --show opción en lugar de --install para mostrar lo que se va a instalar en su diseño.

Instalar Mostrar (recomendado)

El mostrar y mostrar-tcp Las utilidades buscarán procesos y puertos ocultos, aunque no es obligatorio, es muy recomendable ya que la mayoría de los rootkits sofisticados ocultarán su presencia.

Primero, necesitamos instalar GNU Compiler Collection.

yum install gcc

Instale glibc-static, necesario para crear los binarios seccionados.

yum install glibc-static

Compile mostrar-linux.

gcc -Wall -O2 --static -pthread unhide-linux*.c unhide-output.c -o unhide-linux

Compilar unhide-tcp.

gcc -Wall -O2 --static unhide-tcp.c unhide-tcp-fast.c unhide-output.c  -o unhide-tcp

Instale los archivos en /usr/local/bin y cree un enlace simbólico para mostrar.

cp unhide-linux unhide-tcp /usr/local/bin && cd /usr/local/bin/ && ln -s unhide-linux unhide && cd -

Configurar

En esta sección mostraré algunas de las opciones que se encuentran en rkhunter.conf archivo, las opciones se separan en grupo y su descripción se simplifica, lea la descripción real en el archivo y, si no está seguro, simplemente ignórelo, ya que las opciones predeterminadas deberían ser suficientes, la mayoría de ellas están comentadas.

Le animamos a realizar una primera ejecución antes de realizar los cambios reales en el archivo de configuración, esto le dará una mejor comprensión de cómo funciona rkhunter y la posibilidad de identificar algunos falsos positivos para incluirlos en la lista blanca en el archivo de configuración.

Simplemente llame a rkhunter con -c o --marque parámetros.

rkhunter -c

Como puede ver en la imagen de arriba, habrá algunas advertencias sobre archivos como egrep o ifup to be script en lugar de binarios ELF, sin embargo, son archivos de sistema legítimos y la mayoría de las opciones en el archivo de configuración son sobre cómo hacer que rkhunter los ignore. ocurrencias.

Pruebas

Las siguientes opciones ENABLE_TESTS y DISABLE_TESTS establecen qué tipos de testes se van a hacer, habilite todos y luego deshabilite los no deseados. Es una buena idea tener al menos suspscan deshabilitado de forma predeterminada, ya que es propenso a falsos positivos.

ENABLE_TESTS=ALL

DISABLE_TESTS=suspscan

Concha segura

Nunca es una buena idea habilitar el inicio de sesión raíz en las conexiones SSH, use su/sudo en su lugar, de lo contrario establezca esto en sí.

ALLOW_SSH_ROOT_USER=no

Se sabe que la versión 1 del protocolo SSH es insegura, configúrelo en 1 para ignorar esta verificación de protocolo

ALLOW_SSH_PROT_V1=0

Puertos de red

Puertos de red permitidos con formato protocolo:puerto

PORT_WHITELIST

Configure la lista blanca para algunos programas con la sintaxis ruta_a_binario:protocolo:número_puerto

PORT_PATH_WHITELIST=/usr/sbin/squid:TCP:3801

Versión de la aplicación

Esta opción le permite ejecutar algunas aplicaciones desactualizadas, generalmente no se recomienda y debe asegurarse de que la aplicación sea segura antes de incluirla en esta lista.

APP_WHITELIST=openssl:0.9.7d gpg httpd:1.3.29

Rastreadores

Permitir el uso de sniffers, software que captura paquetes de red.

Permita que el siguiente proceso escuche la red, como la siguiente línea.

ALLOWPROCLISTEN=/usr/sbin/snort-plain

Esto permitirá que la interfaz de red enumerada escuche la red en modo promiscuo.

ALLOWPROMISCIF=eth0

Archivos

Necesitará crear algunas excepciones a las pruebas realizadas por rkhunter, las siguientes opciones le permiten omitir las pruebas a objetos específicos, como archivos, directorios.

Permitir algunos directorios ocultos.

ALLOWHIDDENDIR=/etc/.java

Permitir algunos archivos ocultos.

ALLOWHIDDENFILE=/usr/share/man/man1/..1.gz
ALLOWHIDDENFILE=/usr/share/man/man5/.k5identity.5.gz
ALLOWHIDDENFILE=/usr/share/man/man5/.k5login.5.gz

Esta lista blanca permitirá que algunos archivos sean scripts en lugar de un binario ELF.

SCRIPTWHITELIST=/usr/sbin/ifdown
SCRIPTWHITELIST=/usr/sbin/ifup
SCRIPTWHITELIST=/usr/bin/egrep
SCRIPTWHITELIST=/usr/bin/fgrep
SCRIPTWHITELIST=/usr/bin/ldd

Permitir que el archivo sea editable en todo el mundo.

WRITEWHITELIST=/usr/bin/date

Permitir que el archivo tenga cambios de atributos.

ATTRWHITELIST=/usr/bin/date

Permitir que el proceso consulte los archivos eliminados.

ALLOWPROCDELFILE=/sbin/cardmgr

Opciones de registro

Esto definirá en qué archivo iniciar sesión.

LOGFILE=/var/log/rkhunter.log

Establézcalo en 1 si desea continuar iniciando sesión en el mismo archivo cada vez que se ejecuta rkhunter, el valor predeterminado es 0, que agregará '.old' al archivo de registro y creará uno nuevo.

APPEND_LOG=0

Si desea conservar el archivo de registro cuando algo ande mal, establezca la siguiente opción en 1.

COPY_LOG_ON_ERROR=0

Quite los comentarios y establezca la función de registro si desea utilizar syslog.

USE_SYSLOG=authpriv.warning

De forma predeterminada, los elementos de la lista blanca se mostrarán bien en las pruebas; si desea resaltar los elementos de la lista blanca, debe establecer esta opción en 1.

WHITELISTED_IS_WHITE=0

Opciones del sistema operativo

Establezca la opción del administrador de paquetes en RPM en sistemas similares a Red Hat, que incluyen CentOS.

PKGMGR=RPM

Habilite esto para informar una advertencia cuando el sistema operativo cambie de versión/lanzamiento.

WARN_ON_OS_CHANGE

¿Deberíamos actualizar nuestra base de datos cuando cambie el sistema operativo?

UPDT_ON_OS_CHANGE

Dónde encontrar el archivo de versión del sistema operativo, configurado en /etc/redhat-release en CentOS.

OS_VERSION_FILE=/etc/redhat-release

Bloqueo

Si es probable que tenga más de un rkhunter ejecutándose al mismo tiempo, debe habilitar esta opción para habilitar el uso de archivos de bloqueo y evitar la corrupción de la base de datos.

USE_LOCKING=0

Si habilitó el uso de bloqueos, debe establecer un tiempo de espera para evitar interbloqueos.

LOCK_TIMEOUT

¿Deberíamos advertir sobre sesiones bloqueadas?

SHOW_LOCK_MSGS

Inicio y Superdeamon

¿Dónde está el archivo de configuración de inetd?

INETD_CONF_PATH=/etc/inetd.conf

Qué servicios pueden ejecutarse a través de inetd.

INETD_ALLOWED_SVC=/usr/sbin/rpc.metad /usr/sbin/rpc.metamhd

Archivo de configuración de Xinetd.

XINETD_CONF_PATH=/etc/xinetd.conf

Rutas de los archivos de inicio de RC.

STARTUP_PATHS=/etc/rc.d /etc/rc.local

Cuentas

El archivo que contiene las contraseñas sombreadas.

PASSWORD_FILE=/etc/shadow

Permitir cuentas de usuario que no sean raíz tener UID 0.

UID0_ACCOUNTS=toor rooty

Permitir cuentas sin contraseña.

PWDLESS_ACCOUNTS=abc

Registro del sistema

Archivo de configuración de Syslog.

SYSLOG_CONFIG_FILE=/etc/syslog.conf

Permita que syslog inicie sesión de forma remota.

ALLOW_SYSLOG_REMOTE_LOGGING=0

Informes

Informar el número de advertencias?

SHOW_SUMMARY_WARNINGS_NUMBER

¿Mostrar el tiempo total necesario para ejecutar las pruebas?

SHOW_SUMMARY_TIME

Para recibir informes por correo cuando rkhunter encuentre algo, debe configurar las siguientes opciones, así como tener una aplicación de correo.

Quién recibirá el correo electrónico.

[email protected]

Qué comando usó para enviar correos electrónicos.

MAIL_CMD=mail -s "[rkhunter] Warnings found for ${HOST_NAME}"

Ejecutando rkhunter

Bien, en este punto ya debería haber ejecutado rkhunter al menos una vez, ahora eche un vistazo a otras banderas que se pueden usar con rkhunter.

Revise sus cambios

Una vez que haya terminado con la configuración, ejecute rkhunter con -C o --check-config marca para comprobar si hay algún error en el archivo.

rkhunter -C

Actualización de propiedades

Ahora, y cada vez que cambie el archivo de configuración, asegúrese de actualizar la base de datos de propiedades del archivo.

rkhunter --propupd

Informar solo advertencias.

rkhunter --rwo

A veces desea ejecutar solo una prueba específica, para esto intente --list tests para obtener los nombres de las pruebas disponibles y luego use --enable indicador seguido del nombre de la prueba.

rkhunter --list tests

La siguiente opción deshabilitará la solicitud de pulsación de tecla.

rkhunter --sk

Para ejecutar rkhunter en un cronjob, use --cronjob flag, cree el archivo ejecutable /etc/cron.daily/rkhunter.sh con los siguientes contenidos para hacer una revisión diaria

#!/bin/sh

( /usr/local/bin/rkhunter --versioncheck
/usr/local/bin/rkhunter --update

/usr/local/bin/rkhunter --cronjob -c ) >> /dev/null 2>&1

Conclusión

Esto debería ayudarlo a comenzar con rkhunter, brindándole una capa de seguridad más, sin embargo, esto no será suficiente si descuida los principios básicos de seguridad y si coloca todas las advertencias que encontró en listas blancas en lugar de mitigar los problemas. También tenga en cuenta que rkhunter lo ayudará a evitar que sus máquinas se conviertan en miembros de una red de bots de Linux, pero no protegerá su sitio de ser objetivo de una campaña DDoS. ¡Gracias por leer!


Cent OS
  1. Cómo instalar PHP 7, 7.2 y 7.3 en CentOS 7

  2. Cómo instalar Java 11 y 12 en CentOS 7

  3. Cómo instalar Wine 4.0 en CentOS 7

  4. Cómo instalar Vim 8.2 en CentOS 7

  5. Cómo instalar VirtualBox en CentOS 7

Cómo instalar Ruby en CentOS 7

Cómo instalar PostgreSQL en CentOS 7

Cómo instalar Go en CentOS 7

Cómo instalar R en CentOS 7

Cómo instalar R en CentOS 8

Cómo instalar Rootkit Hunter en CentOS 6