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!