Recientemente son muy comunes los ataques a los sitios web de WordPress, y es algo relativamente normal, pero muchas veces es un dolor de cabeza encontrar cuáles son los archivos infectados, vamos a ver algunos códigos que pueden ser de utilidad para encontrar estos archivos.
Estos comandos deben ser ejecutados desde la consola, y suponemos que usas Linux (Ubuntu – Debian) para ejecutarlos, aunque podrían funcionar bien en otras distribuciones.
Encontrar archivos falsamente marcados como sospechosos
Los atacantes piensan en todo, así que, muchos archivos están escondidos a la vista, marcados como sospechosos, como si un antivirus los hubiera detectado, para encontrarlos, usa el siguiente comando
find . -name '*.suspected' -print
Fuente: Javier Elices
Patrón de Malware 1
En este patron se usa $GLOBALS para esconder el codigo, puedes encontrarlo con este codigo.
egrep -Rl '\$GLOBALS.*\\x'
Fuente: Javier Elices
Patrón de Malware 2
En este, se hacen inclusiones de código o de código de otras web o de unos «iconos» que vamos a ver más adelante como se eliminan, puedes encontrar estos codigo, asi
egrep -Rl -Ezo '/\*(\w+)\*/\s*@include\s*[^;]+;\s*/\*'
Fuente: Javier Elices
Patrón de Malware 3
En este codigo se utiliza $_COOKIE y $_POST, para detectarlos puedes usar el siguiente codigo:
egrep -Rl -E '^.+(\$_COOKIE|\$_POST).+eval.+$'
Fuente: Javier Elices
Eliminar archivos .ico
Mucho de este codigo maligno, es escondido como archivos .ico para que sean mas dificiles de detectar, los encuentras asi
find . -name '.*.ico' -print
Bloqueos con archivos .htaccess
En muchos casos, hemos visto que en los ataques, se bloquean los accesos a carpetas del admin, para inhabilitarlo, este bloqueo es especialmente particular porque no da de baja el sitio, solo la interfaz de administrador, para encontrar los archivos .htaccess escondidos dentro de otras carpetas puedes usar el siguiente comando.
Esto está muy relacionado con el error «AH01797 Client denied by server configuration» que genera un error 403 Forbidden
find . -name ".htaccess"
Recuerda que el único archivo .htaccess que debe existir, es el de la raíz del sitio.
Restaurar archivo .htaccess
El archivo .htaccess pudo haber sido modificado, así que, es probable que debas restaurarlo, ten en cuenta que esto solo funcionara en instalaciones de WordPress sencillas y no para multisitios o subdominios, o cuando se hace el forzado de SSL desde .htaccess, así que, ten cuidado.
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
Fuente: WordPress Article
¿Cómo asignar los permisos de archivos correctamente?
Para wordpress, los permisos sobre las carpetas deben ser 755 y para los archivos 644, estos dos comandos seran de utilidad para asignarlos.
sudo find . -type f -exec chmod 644 {} +
sudo find . -type d -exec chmod 755 {} +
El archivo wp-config.php podría ser 600, aunque esto podría no funcionar bien en algunos proveedores de hosting, así que, ten cuidado.
sudo chmod 660 wp-config.php
Comentarios finales
¿Tienes algún otro comando que pueda ser de utilidad? puedes dejarlo en los comentarios y actualizaremos esta publicación con ellos 😀