En Internet, preguntas como “¿Cómo verificar si mi enrutador, computadora, cámara IP o cualquier otro dispositivo es parte de la botnet?” Son muy comunes. Esto me motivó a hablar sobre uno de los pocos casos de colisión con botnets de mi práctica.
Al estudiar el tráfico sospechoso, me encontré con la dirección IP del enrutador, desde el cual se hicieron intentos fallidos para conectarse a través de SSH a mi HONEYPOT. En /var/log/auth.log vi esto:
... Oct 9 23:52:04 dvrh sshd[3523]: Failed password for root from 129.***.***.29 port 35276 ssh2 Oct 9 23:52:04 dvrh sshd[3523]: Connection closed by authenticating user root 129.***.***.29 port 35276 [preauth] Oct 9 23:52:05 dvrh sshd[3525]: Connection closed by authenticating user root 129.***.***.29 port 35278 [preauth] Oct 9 23:52:06 dvrh sshd[3529]: Failed password for root from 129.***.***.29 port 35280 ssh2 Oct 9 23:52:06 dvrh sshd[3529]: Connection closed by authenticating user root 129.***.***.29 port 35280 [preauth] Oct 9 23:52:06 dvrh sshd[3531]: Invalid user admin from 129.***.***.29 port 35282 Oct 9 23:52:07 dvrh sshd[3531]: Failed password for invalid user admin from 129.***.***.29 port 35282 ssh2 Oct 9 23:52:07 dvrh sshd[3531]: Connection closed by invalid user admin 129.***.***.29 port 35282 [preauth] Oct 9 23:52:08 dvrh sshd[3533]: Invalid user test from 129.***.***.29 port 35286 Oct 9 23:52:11 dvrh sshd[3533]: Failed password for invalid user test from 129.***.***.29 port 35286 ssh2 Oct 9 23:52:11 dvrh sshd[3533]: Connection closed by invalid user test 129.***.***.29 port 35286 [preauth] Oct 9 23:52:11 dvrh sshd[3535]: Invalid user test from 129.***.***.29 port 35288 Oct 9 23:52:12 dvrh sshd[3535]: Failed password for invalid user test from 129.***.***.29 port 35288 ssh2 Oct 9 23:52:12 dvrh sshd[3535]: Connection closed by invalid user test 129.***.***.29 port 35288 [preauth] Oct 9 23:53:12 dvrh sshd[3537]: Invalid user admin from 129.***.***.29 port 35290 Oct 9 23:53:12 dvrh sshd[3537]: Connection closed by invalid user admin 129.***.***.29 port 35290 [preauth] ...
La conclusión no fue difícil: alguien intentó acceder a mi servidor utilizando un conjunto de inicios de sesión y contraseñas estándar. Además (a juzgar por los intervalos de tiempo) esto se hizo en modo automático. Esto significa que lo más probable es que este sea otro enrutador que sea miembro de la botnet.
De hecho, esta imagen es típica para hosts con un puerto abierto de 22. Puede verificar esto usted mismo: abra ssh para acceder desde Internet externo, permita la entrada de contraseña y los bots no lo harán esperar. Al mismo tiempo, ~ 80% de los intentos serán de China.
Afortunadamente, después de un tiempo, logré acceder a esta IP desafortunada a través de ssh usando uno de los inicios de sesión y contraseñas estándar (¿Sorprendido? No lo hago). Pero resultó que este no es un enrutador ordinario, sino un dispositivo llamado Calix GigaSpire.
Calix GigaSpire es un sistema de control doméstico inteligente bajo el sistema operativo EXOS. GigaSpire incluye las siguientes características:
- Admite Wi-Fi 6 (802.11ax), con 8x8 @ 5 GHz y 4x4 a 2.4 GHz
- Servicio Multi Gigabit
- Servicios de nivel 2 y nivel 3
- Gestionado por Calix Support Cloud
- Compatibilidad con IoT (Bluetooth Low Energy, Zigbee 3.0 y Z-Wave Pro)
- Asistente de Amazon Alexa Voice
Lo primero que hice al iniciar sesión en el sistema fue mirar la lista de procesos en ejecución para encontrar algo interesante. Y este "algo interesante" se veía así:
[router] / # ps ... 2978 root 1444 S {kkbs2l3mdqjq} ipjq2njq5qjq 9729 root 1584 S {kkbs2l3mdqjq} ipjq2njq5qjq 14871 root 5532 S {hgoj42jadsjvebc} m6ojj5oj5gojj2h08b8l 19037 root 308 S {hgoj42jadsjvebc} m6ojj5oj5gojj2h08b8l 19041 root 284 S {hgoj42jadsjvebc} m6ojj5oj5gojj2h08b8l ...
La sospecha es la "aleatoriedad" de los nombres de estos procesos. Para comprender cuáles son estos procesos, sugiero recordar qué es el sistema de archivos / proc:
procfs es un sistema de archivos especial utilizado en sistemas operativos tipo UNIX. Le permite acceder a la información del núcleo sobre los procesos del sistema. Necesario para ejecutar comandos como ps, w, top. Por lo general, se monta en / proc. Desde este directorio puede obtener cualquier información sobre su sistema. Por ejemplo, cuánta memoria de intercambio se está utilizando actualmente, qué tan grande es el tamaño de la memoria caché del procesador, qué módulos del núcleo están cargados, cuántos discos o particiones están disponibles, etc.
Estamos interesados en directorios que contienen información sobre procesos sospechosos encontrados. Tienen el formulario / proc / PID, donde PID es la ID del proceso para el que este directorio contiene información. Si observa su contenido, puede encontrar los siguientes archivos:
- cmdline : contiene el comando con el que se inició el proceso, así como los parámetros que se le pasaron
- cwd : enlace simbólico al directorio de trabajo actual del proceso
- exe : enlace al archivo ejecutable
- root : enlace a la carpeta raíz
- ambient : variables de entorno disponibles para el proceso
- fd : contiene descriptores de archivos, archivos y dispositivos que utiliza el proceso
- mapas , estadísticas y memoria: procesa información de la memoria
- stat , status - estado del proceso
¿Qué podemos hacer al respecto? Lo primero que viene a la mente es calcular la suma de verificación de uno de los archivos ejecutables y buscar coincidencias en Internet:
/ # md5sum /proc/2978/exe d204e97ac15a6d0a3ed7e415edfa582e /proc/2978/exe
Encontré este md5 en la
lista de sumas de verificación de Mirai , que indica la naturaleza del origen del archivo. ¿Pero qué podemos hacer ahora? Para deshacerse del bot Mirai, simplemente reinicie el enrutador. Pero en este caso, es inútil, ya que un nuevo malware pronto se subirá a un enrutador con una contraseña simple, y cambiar la contraseña de otra persona es un exceso, ya sabes qué.