¿Cómo reparar un Worpress Hackeado? Os dejamos un pequeño tutorial.
Seguro que si eres un webmaster alguna vez te has encontrado un WordPress hackeado. Incluso después de haberlo limpiado te vuelves a encontrar el problema. Te han llegado algunas empresas desesperadas porque no lo consiguen limpiar. REcuerda que limpiar un sitio no suele ser barato, ya que pueden ser varias horas de un informático bueno.
WordPress al ser el CMS más utilizado del mundo, es muy propenso a ser atacado. Tanto su parte core , como sus plugins. Con algunos trucos podemos mejorar nuestra seguridad
Eso es porque no lo han hecho correctamente. La mayoría de las veces cuando llegan a nosotros, ya han intentado limpiar el sitio, y el hacker a vuelto a entrar. Esto sucede si no lo limpia correctamente. No se encarga a gente no muy cualificada.
Actualizar un WordPress hackeado no te va a arreglar el problema, al igual que actualizar los plugins. Hay que hacer una pequeña auditoria de nuestro servidor
Si tenemos acceso a la administración de WordPress debemos ver si se han generado usuarios que no son nuestros. Hay que borrarlos y cambiar la contraseña del tuyo. También es recomendable cambiar la contraseña de FTP o acceso al servidor por SSH.
La segunda cosa que debemos hacer es bajarnos del servidor los logs del FTP y de navegación HTTP. Los analizaremos más adelante
La tercera cosa que debemos hacer ante este problema es desactivar el servidor HTTP, momentáneamente hasta que lo limpiemos, ya que podemos perder el SEO que tantos años nos ha costado ganar.
Tener en cuenta que si ya tenemos instalada backdoor (puertas traseras). Tu limpiaras archivo,s pero el hacker sera capaz de generar más y nunca lo limpiaras del todo.
Las puertas traseras más complejas, pueden permitir que el hacker pueda ejecutar código PHP, enviado desde el navegador. Otros tienen una interfaz de usuario que les permite enviar mensajes de correo electrónico como su servidor (spam), ejecutar consultas SQL, y todo lo demás que quieren hacer.
¿Cómo reparar un Worpress Hackeado?
Vamos al lió. Empezamos a buscar puertas traseras en una instalación de WordPress, empezaremos en los siguientes lugares:
Directorio Temas
Lo más probable es que incluso no estén en el tema actual que está utilizando. Suelen meter inyecciones de código en los temas pro defecto de WordPress. Se recomienda que elimine todos los temas inactivos. Borrar el tema actual y copiarlo de nuevo desde nuestra copia de seguridad. se es un tema comprado, volverlo a subir. Si lo sobrescribes puede que se te pasen ficheros que ha subido el hacker. Por lo que es mejor subirlo después de borrarlo. Revisa también el funtions.php de tu tema.
Directorio de Plugins
Los plugins son un buen lugar para dejar ficheros modificados pro el hacker. Uno, porque la gente realmente no miran. Dos, porque las personas no les gusta actualizar sus plugins, por lo que sobreviven las mejoras (la gente a mantenerse al día). Tres, hay algunos plugins mal codificados que probablemente tienen sus propias vulnerabilidades, para empezar. Hay que tener cuidado con los plugins y solo dejar los necesarios. La mayoria de las vuneravilidades de WP viene por ellos Por ejemplo trazas como /wp-content/plugins/revslider/temp/update_extract/revslider/cache.php /wp-content/plugins/wp-mobile-detector/resize.php intentan atacarcon con el plugin de Revolution slider y Mobile detecto que en su día tuvieron agujeros de seguridad.
Directorio de subidas
Es probable que tenga miles de imágenes en las subidas carpeta divididos por año y mes. Es muy fácil para los hackers para cargar una puerta trasera. Una gran cantidad de puertas traseras que encontramos son de allí. Si hay fichero php en la carpet de upload hay que borrarlos. WordPress no lo tienen. Pero tienes acceso SSH, sólo tiene que escribir el siguiente comando:
find uploads -name «*.php» -print y te darán todos los php que debes borrar.
Directorios de WordPress
/wp-includes /wp-admin Lo mejor que puedes acerlo es borrar esas dos carpetas y subirlas de nuevo del zip original de wordpress
wp-config.php
Este es también uno de los archivos modificador por los piratas informáticos. Es también uno de los primeros lugares mayoría de la gente me dijo que mirara.
Directorio raiz del servidor
Es otro lugar que nos encontramos con puertas traseras. Algunos hackers tienen más de un archivo de puerta trasera. Una vez que suben uno, que se sumará otra copia de seguridad para garantizar su acceso.
.htaccess
Si el site se redirecciona. Seguramente este fichore esta modificado y hay que arreglarlo. A veces se añaden los códigos de redirección . Simplemente elimine el archivo o reparelo. Si no ensu panel de administración de WordPress. Ajustes »Enlaces permanentes. Haga clic en el botón de guardar allí. Se volverá a crear el archivo .htaccess.
.robots.txt
Pueden romper el sEO de tu blog.
Scan base de datos para Exploits y SPAM
Un hacker inteligente nunca va a tener en tu BD sus funciones PHP, cuentas administrativas, enlaces de spam, etc en la base de datos. Si usted no sabe lo que está haciendo con el SQL, entonces usa algún lugin de escáner de código como puede ser Sucuri (versión de pago).
Limpiarlo es tan fácil como borrar el archivo o código. Sin embargo, la parte difícil es encontrarlo. Por SSH podemos sacar los últimos ficheros modificados
find /htmlpub/public_html/ -type f -printf «%T@ %p\n» | sort -nr | head -100
Sacara los últimos 100 archivos modificados del directorio public_html pero si han actualizado WordPress o los plugins se complica su búsqueda.
¿Por qué hackean un WordPress?
Normalmente lo hace para conseguir enlaces a sus webs, servir su publicidad y mandar span de correo. Asi que se pueden estar lucrando a tu costa y lo pero desde tu servidor.
Si tenemos acceso al log debemos buscar trazas POST. Os dejos unas trazas del un sitio con wordpressque estaba hackeado, antes de limpiarlo. Todo vino por un bug de la version 4.5. Se puede ver como suben ficheros como qiptdj.php o modifican algunos de WordPress. Para tener acceso. En este caso utilizaban el servido para mandar emails de spam.
Lo que había provocado que la ip de ese servidor, ya estuviera en las listas negras de correo y Google dijera que estaba infectado perdiendo el SEO
Por otro lado vemos que estan intentado atacar el WP con wp-login.php por fuerza bruta.
198.204.235.26 – – [28/May/2017:17:15:14 +0200] «POST /wp-login.php HTTP/1.1» 200 4606 «-» «Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36»
198.204.235.26 – – [28/May/2017:17:15:42 +0200] «POST /wp-login.php HTTP/1.1» 200 4606 «-» «Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36»
198.204.235.26 – – [28/May/2017:17:16:10 +0200] «POST /wp-login.php HTTP/1.1» 200 4606 «-» «Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36»
198.204.235.26 – – [28/May/2017:17:16:30 +0200] «POST /wp-login.php HTTP/1.1» 200 4606 «-» «Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36»
198.204.235.26 – – [28/May/2017:17:16:49 +0200] «POST /wp-login.php HTTP/1.1» 200 4606 «-» «Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36»
198.204.235.26 – – [28/May/2017:17:17:13 +0200] «POST /wp-login.php HTTP/1.1» 200 4606 «-» «Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36»
198.204.235.26 – – [28/May/2017:17:17:34 +0200] «POST /wp-login.php HTTP/1.1» 200 4606 «-» «Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36»
198.204.235.26 – – [28/May/2017:17:17:58 +0200] «POST /wp-login.php HTTP/1.1» 200 4606 «-» «Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36»
198.204.235.26 – – [28/May/2017:17:18:23 +0200] «POST /wp-login.php HTTP/1.1» 200 4606 «-» «Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36»
198.204.235.26 – – [28/May/2017:17:18:51 +0200] «POST /wp-login.php HTTP/1.1» 200 4606 «-» «Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36»
198.204.235.26 – – [28/May/2017:17:19:14 +0200] «POST /wp-login.php HTTP/1.1» 200 4606 «-» «Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36»
50.63.197.110 – – [28/May/2017:17:19:17 +0200] «GET /wp-admin/user/themes.php HTTP/1.0» 200 – «http://www.xxxxxxx.com/wp-admin/user/themes.php» «Mozilla/5.0 (X11; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0 SeaMonkey/2.26»
178.159.242.67 – – [28/May/2017:17:19:18 +0200] «GET /wp-content/plugins/woocommerce/templates/product-searchform.php HTTP/1.0» 200 – «http://www.xxxxxxx.com/wp-content/plugins/woocommerce/templates/product-searchform.php» «Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.48 Safari/537.36»
72.167.232.230 – – [28/May/2017:17:19:20 +0200] «GET /wp-includes/Requests/Exception/HTTP/system.php HTTP/1.0» 200 – «http://www.xxxxxxx.com/wp-includes/Requests/Exception/HTTP/system.php» «Mozilla/5.0 (X11; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0 SeaMonkey/2.26»
58.64.185.192 – – [28/May/2017:17:19:22 +0200] «GET /wp-content/plugins/woocommerce/includes/gateways/paypal/includes/settings-paypal.php HTTP/1.0» 200 – «http://www.xxxxxxx.com/wp-content/plugins/woocommerce/includes/gateways/paypal/includes/settings-paypal.php» «Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:24.0) Gecko/20100101 Firefox/24.0»
41.193.5.59 – – [28/May/2017:17:19:24 +0200] «GET /qiptdj.php HTTP/1.0» 200 49 «http://www.xxxxxxx.com/qiptdj.php» «Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:24.0) Gecko/20100101 Firefox/24.0»
91.203.135.229 – – [28/May/2017:17:19:25 +0200] «GET /wp-content/plugins/instagram-feed/js/ini73.php HTTP/1.0» 404 29950 «http://www.xxxxxxx.com/wp-content/plugins/instagram-feed/js/ini73.php» «Mozilla/5.0 (Linux; Android 5.0; SM-N900V Build/LRX21V) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.83 Mobile Safari/537.36»
173.254.69.82 – – [28/May/2017:17:19:29 +0200] «GET /wp-includes/Requests/Exception/HTTP/428.php HTTP/1.0» 500 – «http://www.xxxxxxx.com/wp-includes/Requests/Exception/HTTP/428.php» «Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:24.0) Gecko/20100101 Firefox/24.0»
50.62.161.185 – – [28/May/2017:17:19:31 +0200] «GET /wp-includes/Requests/Exception/HTTP/505.php HTTP/1.0» 500 – «http://www.xxxxxxx.com/wp-includes/Requests/Exception/HTTP/505.php» «Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.48 Safari/537.36»
198.204.235.26 – – [28/May/2017:17:19:38 +0200] «POST /wp-login.php HTTP/1.1» 200 4606 «-» «Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36»
217.28.146.30 – – [28/May/2017:17:19:50 +0200] «POST /qiptdj.php HTTP/1.0» 200 71 «http://www.xxxxxxx.com/qiptdj.php» «Mozilla/5.0 (X11; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0 SeaMonkey/2.26»
72.167.190.172 – – [28/May/2017:17:19:52 +0200] «GET /wp-content/plugins/taqyeem/_HELP/start10.php HTTP/1.0» 200 49 «http://www.xxxxxxx.com/wp-content/plugins/taqyeem/_HELP/start10.php» «Mozilla/5.0 (X11; U; Linux i686; en-US) U2/1.0.0 UCBrowser/9.3.1.344»
184.168.193.16 – – [28/May/2017:17:19:53 +0200] «POST /qiptdj.php HTTP/1.0» 200 53 «http://www.xxxxxxx.com/qiptdj.php» «Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:24.0) Gecko/20100101 Firefox/24.0»
184.168.152.178 – – [28/May/2017:17:19:54 +0200] «GET /wp-includes/class-http.php HTTP/1.0» 403 49 «http://www.xxxxxxx.com/wp-includes/class-http.php» «Mozilla/5.0 (X11; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0 SeaMonkey/2.26»
184.168.193.76 – – [28/May/2017:17:19:55 +0200] «POST /qiptdj.php HTTP/1.0» 200 55 «http://www.xxxxxxx.com/qiptdj.php» «Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.48 Safari/537.36»
198.71.228.38 – – [28/May/2017:17:19:56 +0200] «GET /wp-admin/includes/test98.php HTTP/1.0» 404 29950 «http://www.xxxxxxx.com/wp-admin/includes/test98.php» «Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.85 Safari/537.36»
184.168.152.164 – – [28/May/2017:17:20:00 +0200] «POST /wp-content/plugins/taqyeem/_HELP/start10.php HTTP/1.0» 200 76 «http://www.xxxxxxx.com/wp-content/plugins/taqyeem/_HELP/start10.php» «Mozilla/5.0 (X11; U; Linux i686; en-US) U2/1.0.0 UCBrowser/9.3.1.344»
184.168.193.159 – – [28/May/2017:17:20:02 +0200] «GET /wp-content/plugins/woocommerce/dummy-data/utf.php HTTP/1.0» 200 49 «http://www.xxxxxxx.com/wp-content/plugins/woocommerce/dummy-data/utf.php» «Mozilla/5.0 (X11; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0 SeaMonkey/2.26»
68.178.254.145 – – [28/May/2017:17:20:03 +0200] «POST /wp-content/plugins/taqyeem/_HELP/start10.php HTTP/1.0» 200 101 «http://www.xxxxxxx.com/wp-content/plugins/taqyeem/_HELP/start10.php» «Mozilla/5.0 (X11; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0 SeaMonkey/2.26»
97.74.144.134 – – [28/May/2017:17:20:05 +0200] «GET /wp-content/plugins/wordpress-seo-premium-master/frontend/class-twitter.php HTTP/1.0» 200 49 «http://www.xxxxxxx.com/wp-content/plugins/wordpress-seo-premium-master/frontend/class-twitter.php» «Mozilla/5.0 (X11; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0 SeaMonkey/2.26»
198.204.235.26 – – [28/May/2017:17:20:04 +0200] «POST /wp-login.php HTTP/1.1» 200 4606 «-» «Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36»
91.234.217.191 – – [28/May/2017:17:20:06 +0200] «POST /qiptdj.php HTTP/1.0» 200 59 «http://www.xxxxxxx.com/qiptdj.php» «Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:24.0) Gecko/20100101 Firefox/24.0»
50.62.177.192 – – [28/May/2017:17:20:07 +0200] «GET /wp-content/uploads/2012/user.php HTTP/1.0» 200 49 «http://www.xxxxxxx.com/wp-content/uploads/2012/user.php» «Mozilla/5.0 (X11; U; Linux i686; en-US) U2/1.0.0 UCBrowser/9.3.1.344»
104.238.120.9 – – [28/May/2017:17:20:09 +0200] «POST /qiptdj.php HTTP/1.0» 200 63 «http://www.xxxxxxx.com/qiptdj.php» «Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.48 Safari/537.36»
193.232.240.13 – – [28/May/2017:17:20:11 +0200] «GET /wp-includes/ID3/module.audio.dts.php HTTP/1.0» 200 49 «http://www.xxxxxxx.com/wp-includes/ID3/module.audio.dts.php» «Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.48 Safari/537.36»
192.185.82.142 – – [28/May/2017:17:20:13 +0200] «POST /wp-content/plugins/woocommerce/dummy-data/utf.php HTTP/1.0» 200 72 «http://www.xxxxxxx.com/wp-content/plugins/woocommerce/dummy-data/utf.php» «Mozilla/5.0 (X11; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0 SeaMonkey/2.26»
92.53.96.109 – – [28/May/2017:17:20:14 +0200] «GET /wp-content/plugins/wordpress-seo/css/diff.php HTTP/1.0» 200 49 «http://www.xxxxxxx.com/wp-content/plugins/wordpress-seo/css/diff.php» «Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:24.0) Gecko/20100101 Firefox/24.0»
85.198.104.252 – – [28/May/2017:17:20:16 +0200] «POST /wp-content/plugins/woocommerce/dummy-data/utf.php HTTP/1.0» 200 102 «http://www.xxxxxxx.com/wp-content/plugins/woocommerce/dummy-data/utf.php» «Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.48 Safari/537.36»
150.129.81.136 – – [28/May/2017:17:20:18 +0200] «GET /wp-content/plugins/wordpress-seo/admin/import/class-import-aioseo-hooks.php HTTP/1.0» 200 49 «http://www.xxxxxxx.com/wp-content/plugins/wordpress-seo/admin/import/class-import-aioseo-hooks.php» «Mozilla/5.0 (X11; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0 SeaMonkey/2.26»
178.210.90.90 – – [28/May/2017:17:20:20 +0200] «POST /wp-content/plugins/wordpress-seo-premium-master/frontend/class-twitter.php HTTP/1.0» 200 52 «http://www.xxxxxxx.com/wp-content/plugins/wordpress-seo-premium-master/frontend/class-twitter.php» «Mozilla/5.0 (X11; U; Linux i686; en-US) U2/1.0.0 UCBrowser/9.3.1.344»
50.62.208.207 – – [28/May/2017:17:20:21 +0200] «GET /wp-admin/user/credits.php HTTP/1.0» 200 49 «http://www.xxxxxxx.com/wp-admin/user/credits.php» «Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:24.0) Gecko/20100101 Firefox/24.0»
198.204.235.26 – – [28/May/2017:17:20:27 +0200] «POST /wp-login.php HTTP/1.1» 200 4606 «-» «Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36»
198.204.235.26 – – [28/May/2017:17:20:53 +0200] «POST /wp-login.php HTTP/1.1» 200 4606 «-» «Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36»
¿Cree que has limpiado tu WP?
¡Piensa otra vez! Si no se hace bien puede que el ataque vuelva
Abra su navegador en un modo de incógnito para ver si el problema regresa. A veces el problema solo se ve si no esta logeado. Tratar de cambiar agente de usuario del navegador como Google. A veces, los piratas informáticos sólo se quieren apuntar a los motores de búsqueda enlaces a sus web para conseguir SEO. Estate alerta unos días después de la limpieza revisado si hay fichero nuevos o modificados en el FTP.
Algunas trucos a tener en cuenta para mejorar la seguridad de WordPress:
Utilice contraseñas seguras – Fuerza contraseñas seguras en sus usuarios. Empezar a utilizar una utilidad de gestión de contraseña como 1Password.
Autenticación en 2 Pasos – Si la contraseña quedó comprometida, el usuario tendría que tener el código de verificación de tu teléfono.
Límite de intentos de conexión – Este plugin le permite bloquear el usuario después de un número X de intentos de conexión fallidos. Pro ejemplo puedes usar https://es.wordpress.org/plugins/wordfence/
Tema y desactivar Editores Plugin – Esto evita problemas de escalas de usuario. Incluso si se intensificaron los privilegios del usuario, no podían modificar su tema o plugins utilizando el wp-admin. Pare ello hay que poner define( ‘DISALLOW_FILE_EDIT’, true ); en el fichero wp-config. Hay plugins como iThemes Security que te lo hace el.
La contraseña protege wp-admin – Puedes proteger con contraseña el directorio completo. También puede limitar el acceso de IP. vital en entornos profesinales.Dentro de /wp-admin crear un archivo .htaccess. para generar el fichero de contraseñas podemos utilizar una página como http://www.htaccesstools.com/htpasswd-generator/
ErrorDocument 401 default
AuthUserFile /home/[usuario-web]/[ficherocontrasena]
AuthName «Acceso restringido»
AuthType Basic
Require valid-user
Order allow,deny
Allow from all
Satisfy any
Otra opción por ip
order deny,allow
allow from 25.18.24.26
deny from all
Por ultimo en el raíz de tu sitio en el fichero .htaccess debes protejer wp-login.php
ErrorDocument 401 default
AuthType Basic
AuthName «Acceso restringido»
AuthUserFile /home/[usuario-web]/[ficherocontrasena]
Require valid-user
Importante poner ErrorDocument 401 default o se quedará en un bucle y no podras acceder a la administración del CMS.
Desactivar PHP ejecución en ciertos directorios de WordPress – Este desactiva la ejecución de PHP en el directorio uploads y otros directorios de su elección. Básicamente lo que incluso si alguien era capaz de cargar el archivo en la carpeta de archivos, que no sería capaz de ejecutarlo.Creas un fichero .htaccess en el directorio /wp-content/uploads/
deny from all
Mantenerse actualizado – Ejecutar la última versión de WordPress, y actualizar sus plugins.
Por último, la informática no es barata cuando se trata de seguridad. Siempre decimos que la mejor medida de seguridad es tener copias de seguridad. Si te atacan lo mejor es recuperar un backup limpio.
Os recomendamos los siguientes enlaces para completar el tutorial ¿Cómo reparar un Worpress Hackeado?:
https://codex.wordpress.org/FAQ_My_site_was_hacked
https://wordpress.org/support/topic/268083#post-1065779
http://sitecheck.sucuri.net/scanner/
http://www.unmaskparasites.com/
https://secure.sitelock.com
http://www.wpbeginner.com/wp-tutorials/how-to-find-a-backdoor-in-a-hacked-wordpress-site-and-fix-it/
Y dos analizadores online
https://www.gravityscan.com
https://www.wpdoctor.es/
Esperamos que te sirva para mejorar la seguridad de tu WordPress.
. Leer artículo completo en Frikipandi ¿Cómo reparar un Worpress Hackeado?.