¿Qué son los rootkits y cómo detectarlos?

¿Qué son los rootkits y cómo detectarlos?
Los raíces son una de las peores cosas que pueden sucederle a un sistema y son uno de los ataques más peligrosos, más peligrosos que el malware y los virus habituales, tanto en el daño que causan al sistema como en la dificultad para encontrarlos y detectarlos. RootKits puede permanecer en su sistema durante mucho tiempo sin que el usuario no se dé cuenta y puede causar algún daño grave al sistema.

La palabra "rootkit" proviene originalmente del mundo de los sistemas 'unix', donde la raíz es el usuario con más privilegios de acceso al sistema '. Mientras que el kit de palabras define el kit que contiene un conjunto de herramientas maliciosas como Keyloggers, robadores de credenciales bancarios, robadores de contraseñas, discapacitadores antivirus o bots para el ataque DDoS, etc. Poniendo a ambos estos juntos, obtienes rootkit.

Están diseñados de tal manera que permanecen ocultos y hacen cosas maliciosas como interceptar el tráfico de Internet, robar tarjetas de crédito e información bancaria en línea. RootKits brinda a los cibercriminales la capacidad de controlar su sistema informático con acceso administrativo completo, también ayuda al atacante a monitorear sus golpes clave y deshabilitar su software antivirus, lo que hace que sea aún más fácil robar su información secreta.

¿Cómo se encuentran los rootkits en el sistema??

Rootkits, según su tipo, son incapaces de extenderse por sí mismos. Por lo tanto, el atacante los extiende por tales tácticas que el usuario no puede notar que algo está mal con el sistema. Generalmente ocultándolos en un software tortuoso que parece legítimo y podría ser funcional. Sea como fuere, cuando otorgue el consentimiento del software que se introducirá en su marco, el RootKit se escabulle discretamente dentro de donde podría estar bajo hasta que el atacante/hacker lo actúe. Los raíces son muy difíciles de identificar porque pueden esconderse de usuarios, administradores y la mayoría de los productos antivirus. Básicamente, en caso de compromiso de un sistema por RootKit, el alcance del movimiento maligno es muy alto.

Ingeniería social:

El hacker intenta obtener el acceso a la raíz/administrador mediante la explotación de las vulnerabilidades conocidas o mediante el uso de la ingeniería social. Los cibercriminales emplean ingeniería social para hacer el trabajo. Intentan instalar RootKits en el sistema del usuario enviándolos en un enlace de phishing, estafas de correo electrónico, redirigirlo a sitios web maliciosos, parchear los RootKits en un software legítimo que parece normal a simple vista. Es importante saber que RootKits no siempre quiere que el usuario ejecute un ejecutable malicioso para colarse. A veces, todo lo que quieren es un usuario para abrir un documento PDF o Word para colarse.

Tipos de rutídos:

Para comprender correctamente los tipos de raíces, primero, debemos imaginar el sistema como un círculo de anillos concéntricos.

  • En el centro, hay un núcleo conocido como anillo cero. El núcleo tiene el nivel más alto de privilegios sobre un sistema informático. Tiene acceso a toda la información y puede operar en el sistema según lo desee.
  • El anillo 1 y el anillo 2 están reservados para procesos menos privilegiados. Si este anillo falla, los únicos procesos que se verán afectados son los que depende del anillo 3.
  • El anillo 3 es donde reside el usuario. Es el modo de usuario que tiene una jerarquía de acceso de privilegio estricto.

Críticamente, un procedimiento que se ejecuta en un anillo privilegiado más alto puede reducir sus beneficios y funcionar en un anillo externo, sin embargo, esto no puede funcionar de la manera inversa sin el asentimiento inequívoco de los instrumentos de seguridad del marco de trabajo. En situaciones en las que dichos componentes de seguridad pueden mantenerse alejados, se dice que existe una vulnerabilidad de escalada de privilegios. Ahora hay 2 tipos más destacados de RootKits:

RootKits de modo de usuario:

RootKits de esta categoría funcionan a nivel de bajo privilegiado o de usuario en el sistema operativo. Como se expresa antes de que RootKits haga que los piratas informáticos mantengan su autoridad sobre el sistema al dar un canal de pasaje secundario, el modo de usuario RootKit cambiará en general las aplicaciones significativas a nivel de usuario de esta manera ocultándose al igual que dar acceso a puerta trasera. Hay diferentes raíces de este tipo para Windows y Linux.

RootKits de modo de usuario de Linux:

Muchos RootKits de modo de usuario de Linux están disponibles hoy en día, por ejemplo:

  • Para obtener acceso remoto a la máquina del objetivo, los servicios de inicio de sesión como 'Iniciar', 'SSHD' están modificados por RootKit para incluir una puerta trasera. Los atacantes pueden tener acceso a la máquina del objetivo simplemente llegando a una puerta trasera. Recuerda que el hacker ya explotó la máquina, acaba de agregar una puerta trasera para volver otra vez.
  • Para realizar el ataque de escalada de privilegios. El atacante modifica comandos como 'SU', sudo de tal manera que cuando usa estos comandos a través de una puerta trasera obtendrá acceso a nivel de raíz a los servicios.
  • Para ocultar su presencia durante un ataque por
  • Ocultación de procesos: varios comandos que muestran datos sobre los procedimientos que se ejecutan en la máquina 'PS', 'Pidof', 'Top' se modifican con el objetivo de que el procedimiento de asaltante no se registra entre otros procedimientos de ejecución. Además, el comando 'matar todo' generalmente se cambia con el objetivo de que el proceso del hacker no se puede matar, y el orden 'crontab' se cambia para que los procesos maliciosos funcionen en un momento específico sin cambiar en la configuración de Crontab.
  • Ocultación de archivos: ocultar su presencia de comandos como 'ls', 'encontrar'. Además, escondido del comando 'du' que muestra el uso del disco de un proceso ejecutado por un atacante.
  • Ocultación de eventos: ocultar los registros del sistema modificando 'syslog.D 'Archivo para que no puedan iniciar sesión en estos archivos.
  • Ocultación de la red: ocultar los comandos como 'netstat', 'iftop' que muestra conexiones activas. Los comandos como 'ifconfig' también se modifican para erradicar su presencia.

Rootkits de modo de kernel:

Antes de pasar a RootKits de modo de núcleo, primero veremos cómo funciona el núcleo, cómo solicita el núcleo. El kernel permite que las aplicaciones se ejecuten con recursos de hardware. Como hemos discutido el concepto de anillos, las aplicaciones del anillo 3 no pueden acceder a un anillo más seguro o de alto privilegiado I.E anillo 0, dependen de las llamadas del sistema que procesan utilizando bibliotecas del subsistema. Entonces, el flujo es algo como esto:

Modo de usuario >> Bibliotecas del sistema >> Tabla de llamadas del sistema >> Kernel

Ahora lo que hará un atacante es alterar la tabla de llamadas del sistema usando Insmod y luego mapear instrucciones maliciosas. Luego insertará el código del núcleo malicioso y el flujo será así:

Modo de usuario >> Bibliotecas del sistema >> Tabla de llamadas de sistema alterada >>
Código de núcleo malicioso

Lo que veremos ahora es cómo se altera esta tabla de llamadas del sistema y cómo se puede insertar el código malicioso.

  • Módulos del núcleo: el núcleo de Linux está diseñado de tal manera que cargue un módulo de núcleo externo para admitir su funcionalidad e insertar algún código a nivel de núcleo. Esta opción les da a los atacantes un gran lujo para inyectar código malicioso en el núcleo directamente.
  • Cambio del archivo del kernel: cuando el kernel de Linux no está configurado para cargar módulos externos, la alteración del archivo del kernel se puede realizar en la memoria o el disco duro.
  • El archivo del núcleo contiene la imagen de memoria en el disco duro es /dev /kmem. El código de ejecución en vivo en el kernel también existe en ese archivo. Ni siquiera requiere un reinicio del sistema.
  • Si la memoria no se puede alterar, el archivo del núcleo en el disco duro puede ser. El archivo que contiene el kernel en el disco duro es vmlinuz. Este archivo solo puede ser leído y alterado por root. Recuerde que para que se ejecute un nuevo código, se requiere un reinicio del sistema en este caso. Cambiar el archivo del núcleo no necesita pasar del anillo 3 al anillo 0. Solo necesita permisos raíz.

Un excelente ejemplo de RootKits de núcleo es SmartService RootKit. Evita que los usuarios inicien cualquier software antivirus y, por lo tanto, sirve como guardaespaldas para todos los demás malware y virus. Era un famoso rootkit devastador hasta mediados de 2017.

Chkrootkit:

Estos tipos de malware pueden permanecer en su sistema durante mucho tiempo sin que el usuario no se dé cuenta y puede causar algún daño grave, ya que una vez que se detecta el RootKit, no hay otra forma que reinstalar todo el sistema y, a veces, incluso puede causar falla de hardware.

Afortunadamente, hay algunas herramientas que ayudan a detectar una variedad de raíces conocidas en sistemas Linux como Lynis, Clam AV, LMD (Linux Malware Detect). Puede verificar su sistema para obtener RootKits conocidos utilizando los comandos a continuación:

En primer lugar, necesitamos instalar chkrootkit usando el comando:

ubuntu@ubuntu: ~ $ sudo apt install chkrootkit

Esto instalará la herramienta Chkrootkit y puede usarla para verificar si hay raíces utilizando:

ubuntu@ubuntu: ~ $ sudo chkrootkit
Rootdir es '/'
Verificar 'AMD' ... no encontrado
Verificar 'CHSH' ... no infectado
Revisando 'cron' ... no infectado
Revisando 'crontab' ... no infectado
Comprobación de 'fecha' ... no infectada
Verificar 'du' ... no infectado
Verificar 'dirname' ... no infectado
Revisando 'su' ... no infectado
Verificar 'ifconfig' ... no infectado
Verificar 'inetd' ... no infectado
Verificar 'inetdconf' ... no encontrado
Verificar 'Identd' ... no encontrado
Verificar 'init' ... no infectado
Revisando 'killall' ... no infectado
Verificar 'iniciar sesión ... no infectado
Revisando 'ls' ... no infectado
Revisando 'lsof' ... no infectado
Revisando 'passwd' ... no infectado
Verificar 'Pidof' ... no infectado
Verificar 'PS' ... no infectado
Verificar 'Pstree' ... no infectado
Verificar 'rpcinfo' ... no encontrado
Revisando 'rlogind' ... no encontrado
Verificar 'RSHD' ... no encontrado
Verificar 'Slogin' ... no infectado
Verificar 'sendmail' ... no encontrado
Verificación 'SSHD' ... no encontrado
Revisando 'syslogd' ... no probado
Verificar 'Aliens' ... sin archivos sospechosos
Buscando los registros de Sniffer, puede llevar un tiempo ... nada encontrado
Buscando los archivos predeterminados de RootKit HidrootKit ... nada encontrado
Buscando los archivos predeterminados de RootKit T0RN ... nada encontrado
Buscando valores predeterminados de V8 de T0RN ... nada encontrado
Buscando los archivos predeterminados de Rootkit Lion ... nada encontrado
Buscando los archivos predeterminados de RootKit RSHA ... nada encontrado
Buscando los archivos predeterminados de Rootkit RH-Sharpe ... nada encontrado
Buscando archivos predeterminados de RootKit (ARK) de Ambient ..
Buscando archivos y directivos sospechosos, puede llevar un tiempo ..
Se encontraron los siguientes archivos y directorios sospechosos:
/usr/lib/debug/.Build-id/lib/módulos/5.3.0-45-Genérico/VDSO/.ID/lib/módulos de construcción/
5.3.0-46 Genérico/VDSO/.idiota
/usr/lib/debug/.Build-id/lib/módulos/5.3.0-45-Genérico/VDSO/.ID/lib/módulos de construcción/
5.3.0-46 Genérico/VDSO/.idiota
Buscando archivos de gusano LPD y DIR ... nada encontrado
Buscando archivos de ramen de gusanos y directs ... nada encontrado
Buscando archivos y directs maníacos ... nada encontrado
Buscando archivos RK17 y DIR ... nada encontrado
chkproc: advertencia: posible lkm troyano instalado
chkdirs: nada detectado
Revisando 'rexedcs' ... no encontrado
Verificar 'Sniffer' ... lo: no promisc y sin borderos de rastreador de paquetes
VMNET1: no promisc y sin enchufes de rastreador de paquetes
VMNET2: no promisc y sin enchufes de rastreador de paquetes
VMNET8: no promisc y sin enchufes de rastreo de paquetes
BNEP0: Packet Sniffer (/Sbin/Dhclient [432])
Verificar 'W55808' ... no infectado
Verificar 'WTTE' ... CHK WTMP: Nada eliminado
Verificar 'Scalper' ... no infectado
Verificar 'Slapper' ... no infectado
Verificar 'Z2' ... Chk LastLog: Nada eliminó
Comprobación de 'chkutmp' ... no se encontró el tty de los siguientes procesos del usuario
in/var/run/utmp !
! Ruid pid tty cmd
! 101 0 ES = v8_context_snapshot_data: 100, v8101 --msteams-process-type = NotificationsManager
! ESS-type = Pluginhost 0 TA: 100, V8_NATIVES_DATA: 101
! Root 3936 pts/0/bin/sh/usr/sbin/chkrootkit
! raíz 4668 pts/0 ./chkutmp
! Root 4670 pts/0 ps axk tty, ruser, args -o tty, pid, usuario, args
! raíz 4669 pts/0 sh -c ps axk "tty, ruser, args" -o "tty, pid, usuario, args"
! Root 3934 pts/0 sudo chkrootkit
! USMAN 3891 PTS/0 BASH
chkutmp: nada eliminado

El programa Chkrootkit es un script de shell que verifica los binarios del sistema en la ruta del sistema para la modificación maliciosa. También incluye algunos programas que verifican varios problemas de seguridad. En el caso anterior, verificó un signo de rootkit en el sistema y no encontró ninguno, bueno, esa es una buena señal.

Rkhunter (rootkithunter):

Otra herramienta increíble para cazar una variedad de raíces y hazañas locales en un sistema operativo es RKHUnter.

En primer lugar, necesitamos instalar Rkhunter usando el comando:

ubuntu@ubuntu: ~ $ sudo apt install rkhunter

Esto instalará la herramienta RKHUnter y puede usarla para verificar si hay raíces utilizando:

ubuntu@ubuntu: ~ $ sudo rkhunter --check | raíz
Comprobación de RootKits ..
Realización de la verificación de archivos y directorios de RootKit conocidos
55808 Trojan - Variante A [no encontrado]
Gusano adm [no encontrado]
Ajakit rootkit [no encontrado]
Adore rootkit [no encontrado]
Kit APA [no encontrado]
Apache Worm [no encontrado]
Ambient (arca) rootkit [no encontrado]
Balaur rootkit [no encontrado]
Beastkit rootkit [no encontrado]
bex2 rootkit [no encontrado]
Bobkit rootkit [no encontrado]
CB rootkit [no encontrado]
Cinik Worm (Slapper.B variante) [no encontrado]
Kit de abuso de Danny-Boy [no encontrado]
Devil rootkit [no encontrado]
Diamorfina LKM [no encontrado]
Dica-kit rootkit [no encontrado]
Sueños rootkit [no encontrado]
Duarawkz rootkit [no encontrado]
Ebury Backdoor [no encontrado]
Enye lkm [no encontrado]
Flea Linux rootkit [no encontrado]
Fu rootkit [no encontrado]
Fuck'it rootkit [no encontrado]
Gaskit rootkit [no encontrado]
Heroína LKM [no encontrado]
Kit HJC [no encontrado]
Ignokit rootkit [no encontrado]
Inxonia-ng rootkit [no encontrado]
Irix rootkit [no encontrado]
Jynx rootkit [no encontrado]
Jynx2 rootkit [no encontrado]
KBeast RootKit [no encontrado]
Kitko rootkit [no encontrado]
Kink Rootkit [no encontrado]
ld-linuxv.Entonces rootkit [no encontrado]
Li0n worm [no encontrado]
LOCKIT / LJK2 RootKit [no encontrado]
Mokes Backdoor [no encontrado]
RootKit de humor nt [no encontrado]
MRK Rootkit [no encontrado]
Ni0 rootkit [no encontrado]
Ohhara rootkit [no encontrado]
Kit de óptico (esmoquin) GULM [no encontrado]
Oz rootkit [no encontrado]
Phalanx rootkit [no encontrado]
Phalanx2 rootkit [no encontrado]
Phalanx RootKit (pruebas extendidas) [no encontrado]
Portacelo rootkit [no encontrado]
R3d Tormenta de tormentas [no encontrado]
RootKit de Rh-Sharpe [no encontrado]
RSHA's RootKit [no encontrado]
GUSTO DE SCALPER [no encontrado]
Sebek LKM [no encontrado]
Apagado rootkit [no encontrado]
Shv4 rootkit [no encontrado]
Shv5 rootkit [no encontrado]
Sin Rootkit [no encontrado]
Gusano de bolla [no encontrado]
Sneakin rootkit [no encontrado]
Rootkit 'español' [no encontrado]
Suckit rootkit [no encontrado]
Superkit rootkit [no encontrado]
TBD (Telnet Backdoor) [no encontrado]
Telekit rootkit [no encontrado]
T0rn rootkit [no encontrado]
Trnkit rootkit [no encontrado]
Kit Trojanit [no encontrado]
Tuxtendo rootkit [no encontrado]
Urk rootkit [no encontrado]
Vampiro rootkit [no encontrado]
Vckit rootkit [no encontrado]
Volc rootkit [no encontrado]
Xzibit rootkit [no encontrado]
zagal.Kit rootkit [no encontrado]
Zk rootkit [no encontrado]

Esto verificará una gran cantidad de raíces conocidas en su sistema. Para verificar los comandos del sistema y todos los tipos de archivos maliciosos en su sistema, escriba el siguiente comando:

ubuntu@ubuntu: ~ $ sudo rkhunter --c --enable todo -desacoso ninguno

Si se produce un error, comente las líneas de error en /etc /rkhunter.archivo conf y funcionará sin problemas.

Conclusión:

RootKits puede causar un daño irreversible grave al sistema operativo. Contiene una variedad de herramientas maliciosas como Keyloggers, robadores de credenciales bancarios, robadores de contraseñas, incapacitadores antivirus o bots para el ataque DDoS, etc. El software permanece oculto en un sistema informático y sigue haciendo su trabajo para un atacante, ya que puede acceder a remoto el sistema de la víctima. Nuestra prioridad después de detectar un RootKit debe ser cambiar todas las contraseñas del sistema. Puede parchear todos los enlaces débiles, pero lo mejor es limpiar y reformatear completamente el disco, ya que nunca se sabe lo que todavía está dentro del sistema.