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.gzLuego extraiga el contenido del paquete.
tar zxvf rkhunter-1.4.2.tar.gzIntroduzca el directorio tarball.
cd rkhunter-1.4.2Parche (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 filesInstale el parche utilidad con yum.
yum install patchAhora descarga el parche.
curl http://sourceforge.net/p/rkhunter/patches/44/attachment/rkhunter.patch -o rkhunter.patchAlternativamente, 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/localTambié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 gccInstale glibc-static, necesario para crear los binarios seccionados.
yum install glibc-staticCompile mostrar-linux.
gcc -Wall -O2 --static -pthread unhide-linux*.c unhide-output.c -o unhide-linuxCompilar unhide-tcp.
gcc -Wall -O2 --static unhide-tcp.c unhide-tcp-fast.c unhide-output.c  -o unhide-tcpInstale 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=suspscanConcha 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=noSe 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=0Puertos de red
Puertos de red permitidos con formato protocolo:puerto
PORT_WHITELISTConfigure la lista blanca para algunos programas con la sintaxis ruta_a_binario:protocolo:número_puerto
PORT_PATH_WHITELIST=/usr/sbin/squid:TCP:3801Versió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.29Rastreadores
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-plainEsto permitirá que la interfaz de red enumerada escuche la red en modo promiscuo.
ALLOWPROMISCIF=eth0Archivos
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/.javaPermitir 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.gzEsta 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/lddPermitir que el archivo sea editable en todo el mundo.
WRITEWHITELIST=/usr/bin/datePermitir que el archivo tenga cambios de atributos.
ATTRWHITELIST=/usr/bin/datePermitir que el proceso consulte los archivos eliminados.
ALLOWPROCDELFILE=/sbin/cardmgrOpciones de registro
Esto definirá en qué archivo iniciar sesión.
LOGFILE=/var/log/rkhunter.logEstablé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=0Si desea conservar el archivo de registro cuando algo ande mal, establezca la siguiente opción en 1.
COPY_LOG_ON_ERROR=0Quite los comentarios y establezca la función de registro si desea utilizar syslog.
USE_SYSLOG=authpriv.warningDe 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=0Opciones del sistema operativo
Establezca la opción del administrador de paquetes en RPM en sistemas similares a Red Hat, que incluyen CentOS.
PKGMGR=RPMHabilite 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_CHANGEDónde encontrar el archivo de versión del sistema operativo, configurado en /etc/redhat-release en CentOS.
OS_VERSION_FILE=/etc/redhat-releaseBloqueo
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=0Si habilitó el uso de bloqueos, debe establecer un tiempo de espera para evitar interbloqueos.
LOCK_TIMEOUT¿Deberíamos advertir sobre sesiones bloqueadas?
SHOW_LOCK_MSGSInicio y Superdeamon
¿Dónde está el archivo de configuración de inetd?
INETD_CONF_PATH=/etc/inetd.confQué servicios pueden ejecutarse a través de inetd.
INETD_ALLOWED_SVC=/usr/sbin/rpc.metad /usr/sbin/rpc.metamhdArchivo de configuración de Xinetd.
XINETD_CONF_PATH=/etc/xinetd.confRutas de los archivos de inicio de RC.
STARTUP_PATHS=/etc/rc.d /etc/rc.localCuentas
El archivo que contiene las contraseñas sombreadas.
PASSWORD_FILE=/etc/shadowPermitir cuentas de usuario que no sean raíz tener UID 0.
UID0_ACCOUNTS=toor rootyPermitir cuentas sin contraseña.
PWDLESS_ACCOUNTS=abcRegistro del sistema
Archivo de configuración de Syslog.
SYSLOG_CONFIG_FILE=/etc/syslog.confPermita que syslog inicie sesión de forma remota.
ALLOW_SYSLOG_REMOTE_LOGGING=0Informes
Informar el número de advertencias?
SHOW_SUMMARY_WARNINGS_NUMBER¿Mostrar el tiempo total necesario para ejecutar las pruebas?
SHOW_SUMMARY_TIMEPara 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 -CActualizació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 --propupdInformar solo advertencias.
rkhunter --rwoA 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 --skPara 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>&1Conclusió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!