Linux/XOR.DDoS En sistemas Elastix

El pasado 12 de Diciembre tu ve la necesidad de reinstalar un Sistema basado en Elastix por que la versión 2.5 daba muchos problemas y no era posible mantener operando el servidor asi. Todo iba bien hasta que de pronto el servicio de Internet del sitio empezó a fallar. Despues de una serie de pruebas en la red, se determino que el origen del problema era el PBX, así que procedi a revisar si estaba corriendo el elxupdaterd, que es un proceso que por lo general consume demasiados recursos, pero este proceso no estaba corriendo, pero encontre muchos procesos que corrian y que saturaban la conexión de salida, por lo que procedí a generar reglas de IPTABLES para bloquear esas IP's.

Sin embargo eso no detuvo el proceso de intento de peticiones, y me di cuenta que a la larga esos procesos que corrian en el sistema, lograban cambiar de IP y entonces tenia la misma saturación pero a otras IP's.

Busque información en Internet pero no encontre nada que explicara eso que sucedia, hasta que llegue a esta pagina:  https://blog.avast.com/2015/01/06/linux-ddos-trojan-hiding-itself-with-an-embedded-rootkit/

En ella se explica que el problema es causado por un ataque de Denegación de servicio llamado:

Linux/XOR.DDoS


Por lo que llegue a este sitio: http://blog.malwaremustdie.org/2014/09/mmd-0028-2014-fuzzy-reversing-new-china.html, que desde el 29 de Septiembre de 2014 habia indentificado el problema.

SOLUCION:

Quiza no se ha limpiado la infección en el sistema, pero fue una manera de detener el proceso en el que el server se la pasaba generando peticiones a diversas IP's.

1.- Como mi única opción era un acceso por ssh, y el sistema estaba tan saturado, prepare unas cadenas de iptables de las direcciones IP a las que intentaba acceder el equipo, algo como: /sbin/iptables -A OUTPUT -s 162.211.0.0/255.255.0.0 -j DROP, o la direccion a la que intete acceder, esto lo pueden ver con:   netstat -antop (ironicamente el script genera esa instrucción a cada momento)

2.- Según las instrucciones procedi a eliminar el archivo:   /etc/cron.hourly/cron.sh, luego del archivo /etc/crontab se debe quitar la linea:  */3 * * * * root /etc/cron.hourly/cron.sh

3.- Buscar en:  /etc/init.d todos los archivos que tengan menos de un dia de creados, o quiza mas facil, los scripts que se deben borrar tienen nombres de 10 letras sin ningun significado, cosas como:  izxgfjwter o si los editas vas a ver algo como esto:


Una vez que los elimines, deberas tambien quitar esos mismos nombres de la lista de servicios que se incian. 

4.- Reinicia el sistema y checa que los procesos ya no se encuentren operando.
5.- Es recomendable asegurar el password con el cual se entra al sistema, y verificar si es que nos estan haciendo ataques de fuerza bruta a ese puerto, una recomendación mejor sería cambiar el numero de puerto para el protocolo ssh.

Espero a alguien le sirva esta información.

Comentarios

Entradas populares de este blog

Crear un codigo para escuchar una llamada en tiempo real

Limitar el tiempo de una llamada por extensión para troncal G0

Como deshabilitar temporalmente la opción de "Weak Passsword Deteccion" en un sistema Elastix