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...
Buenas, muchas gracias Gabriel por el excelente contenido, tenia el mismo problema de direccionamiento y pude eliminar el codigo incrustado. EL inconveniente que tengo ahora es que analizar la web con un antivirus me indica que el archivo class.theme-modules.php tanto en la carpeta del theme original y el anexo me arroja como virus y entro y no tiene nada y no puedo limpiarla . Y ademas en todas las url de mi web me agrega un sufijo de letras y numeros. Me ayudarias a limpiarlo por favor? [email protected]. Muchas Gracias. Martin
Hola Martín, no tuve oportunidad de ver tu comentario hasta ahorita, una disculpa.
Eso se debe a que posiblemente haya ya una infección mayor en tu sitio y ya afectó a otros archivos, se tendría que hacer una auditoría manual para ver exactamente que archivos son los involucrados.
Si aún necesitas ayuda por aquí estoy disponible, saludos Martín.
Me han infectado de virus y malware diferentes páginas de mi hosting HostEurope. El problema es que mi hosting me ha bloqueado todas esas páginas y no puedo acceder a ellas. Me piden que las baje a local, las limpe, y les haga un informe con los pasos hechos y lo volvamos a subir por ftp a una carpeta “prueba” y ellos puedan comprobar que está todo limpio. Pueden ayudarme con este proceso? Yo estoy en Alicante. Gracias, Virgilio
Hola Vir, claro que sí, será un gusto colaborar contigo.
Te dejo mi correo de contacto: [email protected]
Quedó pendiente máster.