Videotutoriales (YouTube)
Parte 1 / 2
Parte 2 / 2
1. Primero: cambiar todas las claves
- Contraseña de cPanel.
- Cuentas de FTP (eliminá las que no uses).
- Usuario de MySQL: cambiar password en cPanel y reflejarlo en
wp-config.php. - Renová las claves SALT de
wp-config.php.
2. Buscar plugins infectados
Carpetas sospechosas típicas a revisar:
wp-content/plugins/ubh wp-content/plugins/lou
Si las ves, borralas. Y revisá el listado de plugins que no recordás haber instalado.
3. Auto-actualización del core
En wp-config.php agregá:
define( 'WP_AUTO_UPDATE_CORE', true );
4. .htaccess blindado
Options -Indexes
# Bloquear xmlrpc.php
<Files xmlrpc.php>
Order deny,allow
Deny from all
</Files>
# Proteger archivos .ht*
<Files ~ "^.*\.([Hh][Tt][Aa])">
Order allow,deny
Deny from all
Satisfy all
</Files>
# Proteger wp-config.php
<Files wp-config.php>
Order deny,allow
Deny from all
</Files>
# Proteger contra inyección SQL
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule ^(.*)$ index.php [F,L]
# Antispam: bloquear posts a wp-comments-post sin referer válido
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
RewriteCond %{HTTP_REFERER} !.*tudominio.com.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) http://%{REMOTE_ADDR}/$ [R=301,L]
5. robots.txt recomendado
User-agent: * Disallow: /cgi-bin Disallow: /wp-admin Disallow: /wp-includes Disallow: /wp-content/plugins/ Disallow: /wp-content/cache/ Disallow: /wp-content/themes/ Disallow: */trackback/ Disallow: */feed/ Disallow: /*/feed/rss/$ Disallow: /category/* User-Agent: Googlebot Allow: /*.css$ Allow: /*.js$
6. Reset de usuarios desde phpMyAdmin
Útil si te bloquearon el acceso o hay administradores fantasma. Hacé backup antes:
DELETE FROM wp_users WHERE ID > 0;
DELETE FROM wp_usermeta WHERE user_id > 0;
INSERT INTO wp_users (ID, user_login, user_pass, user_nicename, user_email, user_registered, user_status, display_name)
VALUES (1, 'adminweb', MD5('NUEVACLAVE'), 'Webmaster', 'EMAIL@EMAIL.COM', '2026-01-01 00:00:00', 0, 'Administrador');
INSERT INTO wp_usermeta (umeta_id, user_id, meta_key, meta_value)
VALUES (NULL, 1, 'wp_capabilities', 'a:1:{s:13:"administrator";s:1:"1";}');
INSERT INTO wp_usermeta (umeta_id, user_id, meta_key, meta_value)
VALUES (NULL, 1, 'wp_user_level', '10');
INSERT INTO wp_usermeta (umeta_id, user_id, meta_key, meta_value)
VALUES (NULL, 1, 'rich_editing', 'true');
Generá NUEVACLAVE con nuestro generador.
7. Verificaciones finales
- Antivirus en tu computadora (puede ser ahí donde está la fuga).
- Cambio de claves de cPanel y FTP (otra vez, después de limpiar).
- Extensiones del navegador desactivadas mientras administrás.
- Plugins instalados: reCAPTCHA, Wordfence, Salt Shaker.