El día de hoy pase por un momento un poco incómodo, pues uno de mis sitios se infecto con un malware, por eso quería compartirles un poco de lo que hice para mitigar y eliminar este malware que afecta a WordPress.

Pude darme cuenta rápido de que se había inyectado código en mi sitio debido a que aparece un warning de PHP proveniente de mi archivo functions.php, vi un código extraño y procedí rápidamente a buscar de que se trataba.

Elimine muy rápido el código que se colo en mi fichero, pero les comparto un fragmento de código similar a lo que hacia el que elimine:

Ese código lo encontré en Google, no es el que se coló en mi WP pero funciona similar. Note que estaba lanzando request al dominio marors.com

Primer paso

Lo que hice primeramente fue eliminar el código del functions.php, posteriormente me baje un backup infectado a mi maquina local para poder revisarlo manualmente.

Posteriormente utilice el comando grep de Linux para buscar las funciones o el nombre de dominio al que se estaban lanzando las peticiones.

Con esto pude localizar fácilmente los archivos que infectaron el sitio o me gustaría llamarlos “archivos cero” jajaja, suena más como de película.

Segundo paso

Me puse a analizar cómo funcionaba este código y pude entender que archivos había infectado, de ahí me surgió la posible solución para mitigar este malware, a continuación les comparto el código que encontré:

El código venia en un archivo llamado class.theme-modules.php, con esto pude cerciorarme que el problema venía desde el theme que activamos.

Tercer paso

Puse en modo mantenimiento la web para frenar la ejecución del código y procedí a desmembrar el código poco a poco.

Primero note que capturaba el AUTH_SALT y el nombre de dominio y luego lo mandaba a la url: http://www.marors.com/o.php lo que descargaba los ficheros que infectan el WP.

Entonces entendí que estaba editando ficheros, incrustando el código malicioso  en functions.php, por lo que regrese a mi servidor de producción y vi los registros de las ediciones recientes de archivos y note que efectivamente había editado el functions.php y un archivo llamado post.php dentro de la carpeta wp-includes.

Cuarto paso

Procedí a eliminar manualmente los trozos de código que se había incrustarlo, fue fácilmente localizarlos debido a que los incrustaba arriba de todo el código agregando una apertura de php extra a la que ya tenía el archivo.

Con esto ya no se hacía los request, pero aún hacia falta algo, es por eso que pase el antivirus por el servidor para analizar posibles archivos infectados que yo no he podido verificar manualmente. Después de un par de minutos no lanzo ninguna alerta, entonces me tranquilice y procedí con el quinto paso.

Quinto paso

Cambie absolutamente todas claves, desde la base de datos hasta el login del administrador de WP, los prefijos en la base de datos y volví a generar WordPress Security Keys de nuevo. Esto, como medida extra ya que el script estaba capturando las llaves y enviandolas a la web atacante.

Por suerte no hubo una modificación a la base de datos ni tampoco se modificó la web, ni incrustaron nada ya que me di cuenta rápidamente.

Después de un rato volví a analizar el sitio y verificar si los archivos seguían tal cual los había dejado y realmente fue así, por lo que procedí a reinstalar el core de WP, sin perder configuraciones ni archivos.

En este caso he tenido algo de suerte de haber visto este warning en mi sitio a tiempo y con esto evitar la ejecución de más código malicioso.

Recomendaciones si tu WordPress ha sido infectado:

  • Dale un vistazo al frontend de tu web, te ayudará a saber si ha sido infectado.
  • Revisa primero manualmente los archivos de tu WordPress.
  • Analiza con herramientas como el antivirus de cPanel o plugins enfocados en contrarrestar el Malware.
  • Si es posible, tómate tu tiempo en analizar la amenaza, te ayudará demasiado para entender que archivos están infectados y poder mitigarlo.
  • Verifica si hubo modificaciones en tu base de datos.
  • Una vez mitigado el malware, cambia absolutamente todas las contraseñas y los usuarios si es posible.

Espero poder haberte ayudado aunque sea un poco, si te ha gustado este artículo compártelo en redes sociales, me ayudarás a seguir trayendo contenido de calidad al blog.

Un abrazo virtual!! 😀

Obtén beneficios exclusivos

Suscríbete al boletín y obtén beneficios exclusivos directo en tu correo.

Gracias por suscribirte...

Algo salió mal...