La palabra “RootKit” proviene originalmente del mundo de los sistemas ‘Unix’, donde el root es el usuario con más privilegios de acceso al sistema ‘. Mientras que la palabra kit define el kit que contiene un conjunto de herramientas maliciosas como keyloggers, ladrones de credenciales bancarias, ladrones de contraseñas, desactivadores de antivirus o bots para ataques DDos, etc. Al juntar ambos, obtienes RootKit.
Están diseñados de tal manera que permanecen ocultos y realizan acciones maliciosas como interceptar el tráfico de Internet, robar tarjetas de crédito e información bancaria en línea. Los rootkits brindan a los ciberdelincuentes la capacidad de controlar su sistema informático con acceso administrativo completo, también ayuda al atacante a monitorear sus pulsaciones de teclas y deshabilitar su software antivirus, lo que hace que sea aún más fácil robar su información secreta.
¿Cómo entran los RootKits en el sistema?
Los rootkits son, según su tipo, incapaces de propagarse por sí mismos. Por lo tanto, el atacante los propaga mediante tácticas tales que el usuario no puede darse cuenta de que algo anda mal en el sistema. Por lo general, ocultándolos en un software engañoso que parece legítimo y podría ser funcional. Sea como fuere, cuando otorga el consentimiento del software para que se introduzca en su marco, el rootkit se cuela discretamente en un lugar donde podría permanecer oculto hasta que el atacante / hacker lo activa. Los rootkits son muy difíciles de identificar porque pueden esconderse de los usuarios, administradores y la mayoría de los productos antivirus. Básicamente, en caso de que Rootkit comprometa un sistema, el alcance del movimiento maligno es muy alto.
Ingeniería social:
El hacker intenta obtener acceso de administrador o root explotando vulnerabilidades conocidas o utilizando ingeniería social. Los ciberdelincuentes emplean la ingeniería social para hacer su trabajo. Intentan instalar rootkits en el sistema del usuario enviándolos en un enlace de phishing, estafas por correo electrónico, lo redireccionan a sitios web maliciosos, parchean los rootkits en software legítimo que parece normal a simple vista. Es importante saber que los rootkits no siempre quieren que el usuario ejecute un ejecutable malicioso para colarse. A veces, todo lo que quieren es que un usuario abra un documento PDF o Word para colarse.
Tipos de RootKits:
Para comprender correctamente los tipos de rootkits, 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 kernel 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 como quiera.
- El anillo 1 y el anillo 2 están reservados para procesos con menos privilegios. Si este anillo falla, los únicos procesos que se verán afectados son aquellos de los que depende el anillo 3.
- El anillo 3 es donde reside el usuario. Es el modo de usuario que tiene una jerarquía de acceso con privilegios estrictos.
Fundamentalmente, un procedimiento que se ejecuta en un anillo privilegiado superior puede reducir sus beneficios y ejecutarse en un anillo externo, pero esto no puede funcionar al revés sin el consentimiento 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:
Los rootkits de esta categoría operan a un nivel de usuario o de privilegios bajos en el sistema operativo. Como se expresó antes, los rootkits hacen que los piratas informáticos mantengan su autoridad sobre el sistema al proporcionar un canal de paso secundario, el Rootkit de modo de usuario en general cambiará las aplicaciones importantes a nivel de usuario de esta manera, ocultándose a sí mismo como dando acceso de puerta trasera. Existen diferentes rootkits de este tipo tanto para Windows como para Linux.
RootKits en 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 ‘login’, ‘sshd’ son modificados por el rootkit para incluir una puerta trasera. Los atacantes pueden tener acceso a la máquina del objetivo con solo llegar a una puerta trasera. Recuerde que el hacker ya explotó la máquina, solo agregó una puerta trasera para volver en otro momento.
- Para realizar el ataque de escalada de privilegios. El atacante modifica comandos como ‘su’, sudo de modo que cuando use estos comandos a través de una puerta trasera obtendrá acceso de nivel raíz a los servicios.
- Para ocultar su presencia durante un ataque por
- Ocultación de procesos: se modifican varios comandos que muestran datos sobre procedimientos que se ejecutan en la máquina como ‘ps’, ‘pidof’, ‘top’ con el objetivo de que el procedimiento de asalto no se registre entre otros procedimientos en ejecución. Además, el comando ‘matar a todos’ generalmente se cambia con el objetivo de que el proceso del pirata informático no se pueda eliminar, y el orden ‘crontab’ se cambia para que los procesos maliciosos se ejecuten en un momento específico sin cambiar la configuración de crontab.
- Ocultar archivos: ocultar su presencia de comandos como ‘ls’, ‘buscar’. Además, ocultarse del comando ‘du’ que muestra el uso del disco de un proceso ejecutado por un atacante.
- Ocultación de eventos: ocultarse de los registros del sistema modificando el archivo ‘syslog.d’ para que no puedan iniciar sesión en estos archivos.
- Ocultación en la red: ocultación de comandos como ‘netstat’, ‘iftop’ que muestra conexiones activas. Los comandos como ‘ifconfig’ también se modifican para erradicar su presencia.
Rootkits en modo kernel:
Antes de pasar a los rootkits en modo kernel, primero veremos cómo funciona el kernel, cómo maneja las solicitudes. El kernel permite que las aplicaciones se ejecuten utilizando 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 con muchos privilegios, es decir, el anillo 0, dependen de las llamadas al sistema que procesan utilizando bibliotecas de subsistemas. Entonces, el flujo es algo como esto:
Ahora, lo que hará un atacante es alterar la tabla de llamadas del sistema utilizando insmod y luego mapear instrucciones maliciosas. Luego, insertará un código de kernel malicioso y el flujo será así:
Malicious Kernel Code
Lo que veremos ahora es cómo se modifica esta Tabla de llamadas del sistema y cómo se puede insertar el código malicioso.
- Módulos del kernel: el kernel de Linux está diseñado de tal manera que carga un módulo del kernel externo para admitir su funcionalidad e insertar código en el nivel del kernel. Esta opción ofrece a los atacantes un gran lujo para inyectar código malicioso en el kernel 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 en el disco duro.
- El archivo del kernel que contiene la imagen de la 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 reiniciar el sistema.
- Si la memoria no se puede modificar, el archivo del kernel 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, es necesario reiniciar el sistema en este caso. Para cambiar el archivo del kernel no es necesario pasar del anillo 3 al anillo 0. Solo necesita permisos de root.
Un excelente ejemplo de rootkits de Kernel 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. Fue un famoso rootkit devastador hasta mediados de 2017.
Chkrootkit:
Este tipo de malware puede permanecer en su sistema durante mucho tiempo sin que el usuario se dé cuenta y puede causar serios daños ya que una vez que se detecta el Rootkit no hay otra forma que reinstalar todo el sistema y, en ocasiones, incluso puede causar fallas en el hardware. .
Afortunadamente, existen algunas herramientas que ayudan a detectar una variedad de rootkits conocidos en sistemas Linux como Lynis, Clam AV, LMD (Linux Malware Detect). Puede verificar si su sistema tiene rootkits conocidos usando los siguientes comandos:
Primero que nada, necesitamos instalar Chkrootkit usando el comando:
Esto instalará la herramienta Chkrootkit y puede usarla para verificar si hay rootkits usando:
ROOTDIR is `/’
Checking `amd’… not found
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 `su’… not infected
Checking `ifconfig’… not infected
Checking `inetd’… not infected
Checking `inetdconf’… not found
Checking `identd’… not found
Checking `init’… not infected
Checking `killall’… not infected
Checking `login’… not infected
Checking `ls’… not infected
Checking `lsof’… not infected
Checking `passwd’… not infected
Checking `pidof’… not infected
Checking `ps’… not infected
Checking `pstree’… not infected
Checking `rpcinfo’… not found
Checking `rlogind’… not found
Checking `rshd’… not found
Checking `slogin’… not infected
Checking `sendmail’… not found
Checking `sshd’… not found
Checking `syslogd’… not tested
Checking `aliens’… no suspect files
Searching for sniffer’s logs, it may take a while… nothing found
Searching for rootkit HiDrootkit’s default files… nothing found
Searching for rootkit t0rn’s default files… nothing found
Searching for t0rn’s v8 defaults… nothing found
Searching for rootkit Lion’s default files… nothing found
Searching for rootkit RSHA’s default files… nothing found
Searching for rootkit RH-Sharpe’s default files… nothing found
Searching for Ambient’s rootkit (ark) default files and dirs… nothing found
Searching for suspicious files and dirs, it may take a while…
The following suspicious files and directories were found:
/usr/lib/debug/.build-id /lib/modules/5.3.0-45-generic/vdso/.build-id /lib/modules/
5.3.0-46-generic/vdso/.build-id
/usr/lib/debug/.build-id /lib/modules/5.3.0-45-generic/vdso/.build-id /lib/modules/
5.3.0-46-generic/vdso/.build-id
Searching for LPD Worm files and dirs… nothing found
Searching for Ramen Worm files and dirs… nothing found
Searching for Maniac files and dirs… nothing found
Searching for RK17 files and dirs… nothing found
chkproc: Warning: Possible LKM Trojan installed
chkdirs: nothing detected
Checking `rexedcs’… not found
Checking `sniffer’… lo: not promisc and no packet sniffer sockets
vmnet1: not promisc and no packet sniffer sockets
vmnet2: not promisc and no packet sniffer sockets
vmnet8: not promisc and no packet sniffer sockets
bnep0: PACKET SNIFFER(/sbin/dhclient[432])
Checking `w55808’… not infected
Checking `wted’… chk wtmp: nothing deleted
Checking `scalper’… not infected
Checking `slapper’… not infected
Checking `z2’… chk lastlog: nothing deleted
Checking `chkutmp’… The tty of the following user process(es) was not found
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
! root 4668 pts/0 ./chkutmp
! root 4670 pts/0 ps axk tty,ruser,args -o tty,pid,user,args
! root 4669 pts/0 sh -c ps axk “tty,ruser,args” -o “tty,pid,user,args”
! root 3934 pts/0 sudo chkrootkit
! usman 3891 pts/0 bash
chkutmp: nothing deleted
El programa Chkrootkit es un script de shell que comprueba los archivos binarios del sistema en la ruta del sistema en busca de modificaciones maliciosas. También incluye algunos programas que verifican varios problemas de seguridad. En el caso anterior, buscó un signo de rootkit en el sistema y no encontró ninguno, bueno, eso es una buena señal.
Rkhunter (RootkitHunter):
Otra herramienta increíble para buscar una variedad de rootkits y exploits locales en un sistema operativo es Rkhunter.
Primero que nada, necesitamos instalar Rkhunter usando el comando:
Esto instalará la herramienta Rkhunter y puede usarla para verificar si hay rootkits usando:
Checking for rootkits…
Performing check of known rootkit files and directories
55808 Trojan – Variant A [ Not found ]
ADM Worm [ Not found ]
AjaKit Rootkit [ Not found ]
Adore Rootkit [ Not found ]
aPa Kit [ Not found ]
Apache Worm [ Not found ]
Ambient (ark) Rootkit [ Not found ]
Balaur Rootkit [ Not found ]
BeastKit Rootkit [ Not found ]
beX2 Rootkit [ Not found ]
BOBKit Rootkit [ Not found ]
cb Rootkit [ Not found ]
CiNIK Worm (Slapper.B variant) [ Not found ]
Danny-Boy’s Abuse Kit [ Not found ]
Devil RootKit [ Not found ]
Diamorphine LKM [ Not found ]
Dica-Kit Rootkit [ Not found ]
Dreams Rootkit [ Not found ]
Duarawkz Rootkit [ Not found ]
Ebury backdoor [ Not found ]
Enye LKM [ Not found ]
Flea Linux Rootkit [ Not found ]
Fu Rootkit [ Not found ]
Fuck`it Rootkit [ Not found ]
GasKit Rootkit [ Not found ]
Heroin LKM [ Not found ]
HjC Kit [ Not found ]
ignoKit Rootkit [ Not found ]
IntoXonia-NG Rootkit [ Not found ]
Irix Rootkit [ Not found ]
Jynx Rootkit [ Not found ]
Jynx2 Rootkit [ Not found ]
KBeast Rootkit [ Not found ]
Kitko Rootkit [ Not found ]
Knark Rootkit [ Not found ]
ld-linuxv.so Rootkit [ Not found ]
Li0n Worm [ Not found ]
Lockit / LJK2 Rootkit [ Not found ]
Mokes backdoor [ Not found ]
Mood-NT Rootkit [ Not found ]
MRK Rootkit [ Not found ]
Ni0 Rootkit [ Not found ]
Ohhara Rootkit [ Not found ]
Optic Kit (Tux) Worm [ Not found ]
Oz Rootkit [ Not found ]
Phalanx Rootkit [ Not found ]
Phalanx2 Rootkit [ Not found ]
Phalanx Rootkit (extended tests) [ Not found ]
Portacelo Rootkit [ Not found ]
R3d Storm Toolkit [ Not found ]
RH-Sharpe’s Rootkit [ Not found ]
RSHA’s Rootkit [ Not found ]
Scalper Worm [ Not found ]
Sebek LKM [ Not found ]
Shutdown Rootkit [ Not found ]
SHV4 Rootkit [ Not found ]
SHV5 Rootkit [ Not found ]
Sin Rootkit [ Not found ]
Slapper Worm [ Not found ]
Sneakin Rootkit [ Not found ]
‘Spanish’ Rootkit [ Not found ]
Suckit Rootkit [ Not found ]
Superkit Rootkit [ Not found ]
TBD (Telnet BackDoor) [ Not found ]
TeLeKiT Rootkit [ Not found ]
T0rn Rootkit [ Not found ]
trNkit Rootkit [ Not found ]
Trojanit Kit [ Not found ]
Tuxtendo Rootkit [ Not found ]
URK Rootkit [ Not found ]
Vampire Rootkit [ Not found ]
VcKit Rootkit [ Not found ]
Volc Rootkit [ Not found ]
Xzibit Rootkit [ Not found ]
zaRwT.KiT Rootkit [ Not found ]
ZK Rootkit [ Not found ]
Esto buscará una gran cantidad de rootkits conocidos en su sistema. Para verificar los comandos del sistema y todo tipo de archivos maliciosos en su sistema, escriba el siguiente comando:
Si ocurre un error, comente las líneas de error en el archivo /etc/rkhunter.conf y funcionará sin problemas.
Conclusión:
Los rootkits pueden causar graves daños irreversibles al sistema operativo. Contiene una variedad de herramientas maliciosas como keyloggers, ladrones de credenciales bancarias, ladrones de contraseñas, desactivadores de antivirus o bots para ataques DDos, etc. El software permanece oculto en un sistema informático y sigue haciendo su trabajo para un atacante, ya que puede acceder de forma remota al sistema de la víctima. Nuestra prioridad después de detectar un rootkit debería ser cambiar todas las contraseñas del sistema. Puede parchear todos los enlaces débiles, pero lo mejor es borrar completamente y reformatear la unidad, ya que nunca se sabe qué hay dentro del sistema.