Detectar y limpiar hackeos en WordPress
Domingo por la mañana y recibes un email del equipo de abuse de tu proveedor de hosting. Parece que alguien se ha colado en tu máquina…
Paso 1: Acceso a la consola
El primer paso es acceder a la consola de linux si tu hosting lo permite. Con ello podremos investigar que está ocurriendo de forma sencilla. Otras opciones podrían ser activar los antivirus en nuestros paneles o abrir un ticket con soporte para que nos echen un cable.
ssh usuario@ip
Una vez conectados con el usuario (¿root?) y contraseña podemos ponerlos manos a la obra. El puerto por defecto es el 22 pero comprueba que tu proveedor no lo haya cambiado por seguridad.
Paso 2: Listar procesos
Una vez dentro usuaremos el comando «top», que en linux nos muestra los procesos que están corriendo en la máquina y se refresca cada 3 segundos. Con ello podremos localizar algún proceso con nombre extraño o que este consumiendo muchos recursos de la máquina. Los atacantes suelen tratar de camuflarlos con nombres parecidos a los del sistema: «infoapp_64», «webapp», etc. La clave suele estar en localizar aquellos con uso intensivo de CPU, el comando «top» te muestra en lo alto de la lista aquellos que más recursos están consumiendo:
top
¿Ya tenemos algún candidato? Vamos a buscar su origen…
Paso 3: Localizar origen
Una vez tengamos nuestro proceso localizado podemos utilizar el siguiente comando para localizar el archivo de origen:
#Sustituimos PID por el número correspondiente ls -la /proc/PID/exe
Nos devolverá información tipo, donde tras el «->» podremos localizar la ruta de interés:
lrwxrwxrwx 1 root root 0 Nov 3 19:46 /proc/7111/exe -> /usr/sbin/sshd
Vale ya tenemos el problema, pero nos interesa localizar el origen, la brecha que ha permitido al atacante correr su malware en nuestra máquina.
Paso 4: Localizar brecha
Localizado el origen del proceso abierto podríamos borrar esos archivos, pero posiblemente la brecha de seguridad se encuentre en otro lado. Una buen práctica sería apuntar la fecha y hora del archivo malicioso y buscar en el access_log de apache que ocurrió exactamente en ese momento.
Con un «ls -l» podríamos listar y localizar estos datos. En este caso nos interesa el 31 de octubre a las 13:57. Bastaría con dirigirnos a la ruta del access_log y utilizar el comando grep. Por ejemplo para localizar movimientos respecto a ese archivo o respecto a la hora:
grep 'Flying-Banners-1' access_log grep '31/Oct/2019:13:57' access_log
Seguramente con esto ya tengamos una pista de que se realizo un acceso a un archivo php o se ejecuto algun plugin de WordPress. Ahora queda actuar: actualizarlo, limpiarlo o eliminarlo.
Paso 5: Actualizar o borrar
Una vez localizado el origen, los archivos y el proceso podemos tratar de eliminarlo todo. Los archivos con un sencillo «rm archivo» y el proceso podemos acabarlo con «kill -9 PID»
rm Flying-Banners-1 kill -9 12402
Si se trata de algun plugin conocido, es importante revisar si existen actualizaciones y aplicarlas de inmediato.
Paso 6: Monitorización
Es importante mantener un control en los días siguientes en esa máquina para verificar que la actuación fue eficaz y que no se ha vuelto a instalar ningún script malicioso en nuestro servidor.
top
Dejar un comentario
¿Quieres unirte a la conversación?Siéntete libre de contribuir!