Uno de los problemas de estar on-line y no tener actualizado tu CMS es que en cualquier momento pueden inyectarnos scripts con código malicioso aprovechando alguna de las vulnerabilidades de la aplicación.

En muchos casos los utilizan para enviar spam, pero en otros para realizar ataques a otros sites. Sea cual sea la finalidad, nuestro servidor se ve afectado, ya sea por carga elevada de CPU, porque pongan nuestra IP en una lista negra o bien el propio centro de datos o proveedor pueda llegar a desactivarlo hasta solucionar la amenaza.

A continuación indico algunos comandos que pueden ser de utilidad para localizar estos archivos:

Find

Nos permite buscar un archivo de forma recursiva:

find /var/www/website -type f -name “license.txt”

Si queremos localizar los archivos modificados en los 7 últimos días:

find /var/www/website -type f -ctime -7

Para localizar archivos con una extensión determinada, que hayan cambiado en los últimos 10 días:

find /var/www/website -type f -name “*.php” -ctime -10

Grep

Busca cadenas de texto dentro de los archivos.

Para localizar la palabra hola mundo en un directorio concreto:

grep -r “hola mundo” /var/www/website

Si encuentra una coincidencia nos devolverá el nombre del archivo y número de línea donde se encontró la cadena.

Stat

Muestra el estado de un archivo.

stat /var/www/website/index.php

El resultado sería similar a este:

File: ‘index.php’
Size: 549 Blocks: 8 IO Block: 4096 regular file
Device: c6h/198d Inode: 852371517 Links: 1
Access: (0644/-rw-r–r–) Uid: (10000/ webuser) Gid: ( 1002/ webuser)
Access: 2017-12-25 01:53:30.682354000 +0100
Modify: 2016-11-03 11:52:02.475768000 +0100
Change: 2017-12-25 01:55:17.392124933 +0100
Birth: –

La línea con “Access / Uid / Gid” muestra los permisos de lectura / escritura / ejecución del archivo, y quién lo posee en usuario y grupo. Las últimas tres líneas se refieren a la marca de tiempo del archivo.
“Access” normalmente se refiere a cuando se creó por primera vez o se escribió por última vez.
“Modify” hace referencia a la última vez que el archivo cambió los permisos, o fue renombrado.
“Change” se refiere a la última vez que se modificaron los contenidos reales del archivo.

Muchos scripts maliciosos pueden mantener el acceso y modificar las marcas de tiempo, pero la marca de tiempo de cambio siempre reflejará que alguien ha estado dentro del archivo. Si un archivo se ha modificado a través de FTP, las tres marcas de tiempo se cambiarán a la misma fecha.