WordPress hacked : inyección de código malicioso.






Hace un tiempo mientras navegaba y queriendo ver el estado de otro sitio que tengo me encontré con un mensaje de bienvenida que alertaba de que mi sitio contenía software malicioso y que bajo mi responsabilidad podía seguir navegando en mi sitio.

Claramente me sorprendió dicho mensaje y comencé a ver que podría ser. Cada vez que cargaba mi sitio en : chrome, firefox, opera e internet explorer , buscando dicho código, no aparecía nada que hiciera sospechar y sin embargo pasaba por unos scanners online y si me aparecia el mensaje de virus. Así que decidí desactivar el Antivirus (AVAST) y ahí pude apreciar en el código html que se cargaba al final del código un script “no autorizado”.

Procediendo a buscar solución a este virus encontré que se trataba de una inyección de código en los archivos PHP que se encontraran dentro del directorio raíz. Mas encima este código estaba colocado bajo code base 64. Entonces ir uno a uno, de forma manual por cada archivo php y encontrar el famoso código inyectado y borrarlo era una tarea de muchos minutos.

Buscando una solución mas eficiente y eficaz , me encontré con un script que solución mi problema.

El script se llama “clrvir – The web virus cleaning utility” y lo pueden descargar en la siguiente página: http://maciej.taranienko.pl/projects/clrvir.html

Lo que hace este script es súper simple: lee el código fuente de cada archivo que se encuentre en el directorio donde fue colocado y busca la existencia de algún código malicioso para luego eliminarlo.
Es importante advertir que es un script experimental, que aunque haya sido utilizado por varias personas con mucho éxito se recomienda de todas formas tomar los resguardos pertinentes. Esto quiere decir que antes de utilizarlo debes respaldar los archivos de tu sitio web.

Modo de uso(como yo lo use) :

  1. Descargamos el script desde http://maciej.taranienko.pl/projects/clrvir.html
  2. Descomprimimos el contenido del empaquetado en nuestro carpeta de dominio (ej: /www.tusitio.com/ )
  3. Debemos darle permiso de ejecución, escritura y lectura. Yo opte por darle permiso 777 . Como tengo acceso via SSH cambie el modo del archivo via comando: chmod 777 clrvir.php
  4. Luego procedí a ejecutar el archivo via consola ./clrvir.php y asunto solucionado.

Algunos screenshot pertenecientes al funcionamiento del script(pertenecen al autor pero la forma de actuar es idéntico en cada escaneo):

 

Algunas recomendaciones de seguridad  via .htaccess para proteger nuestro wordpress: 

 

1- Prohibimos que se despliegue el contenido interno de cualquier carpeta del sitio. Por ejemplo si alguna carpeta no cuenta con un archivo index podemos desplegar todo el contenido de esa carpeta (carpetas y archivos).

 

Options All –Indexes

 

2- Prevenir la inyección de código malicioso o secuencias de comandos que alteren el correcto funcionamiento de tu sitio.

 
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]

 

3- Protección ante spmammer :

 
RewriteEngine On RewriteCond %{REQUEST_METHOD} POST RewriteCond %{REQUEST_URI} .wp-comments-post\.php* RewriteCond %{HTTP_REFERER} !.*yourblog.com.* [OR] RewriteCond %{HTTP_USER_AGENT} ^$ RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]

 
4- Proteger nuestro .htacces:

 
<Files .htaccess>
order allow,deny
deny from all
</Files>

 
5- Proteger nuestro config.php :

 
<Files wp-config.php>
order allow,deny
deny from all
</Files>

 

Existen muchas otras formas de proteger nuestro wordpress  , estas son algunas de ellas. Ta recomiendo siempre ver la actualización del sistema, no abusar ni experimentar con muchos plugins  y bueno, siempre respaldar el contenido de tu sitio web ya que siempre existirá la forma de violar alguna protección