La fecha de modificación ayuda durante un incidente, pero actualizaciones, cachés, uploads, traducciones y copias también cambian archivos. Una lista ordenada es una pista cronológica, no un veredicto.
Conserva metadatos antes de que actualizaciones o copias masivas los reinicien y relaciona cada grupo con actividad legítima.
Trabaja desde una instantánea
Crea un snapshot o copia que mantenga rutas y fechas. Deja el original intacto y busca en un duplicado fuera de la raíz.
Registra zona horaria y hora de recopilación. La modificación refleja contenido; el cambio de metadatos puede indicar permisos o propietario. Ninguno equivale necesariamente a creación.
No ejecutes reparaciones antes de capturar si puedes contener primero.
Conserva además propietario, grupo, permisos, tamaño y, cuando exista, inode. Un archivo reemplazado por despliegue puede conservar el nombre pero cambiar de objeto; uno editado en sitio puede mantenerlo. Ningún dato aislado atribuye al escritor, pero juntos reducen hipótesis.
Define una ventana limitada
En un Linux autorizado:
find /path/to/wordpress -type f
-newermt '2026-07-20 00:00:00'
! -newermt '2026-07-21 00:00:00'
-printf '%TY-%Tm-%Td %TH:%TM:%TS %s %pn'
Ajusta ruta y fechas. No busques desde una raíz amplia ni sigas symlinks no confiables. El soporte varía en hosting gestionado.
Guarda el resultado; no modifiques lo listado.
Ordena una copia del inventario por segundo y directorio para descubrir grupos, manteniendo el resultado bruto intacto. Un clúster coherente con un paquete completo es diferente de modificaciones dispersas en núcleo, configuración y uploads durante varias horas.
Agrupa por propietario esperado
Separa núcleo, plugins, temas, uploads, caché, idiomas, copias y raíz desconocida.
Una actualización modifica cientos de archivos en un minuto; una imagen crea miniaturas; la caché cambia continuamente.
Un PHP aislado en uploads o un archivo del núcleo modificado horas después del grupo requiere más atención.
Relaciona con registros
Compara fechas con actualizaciones, despliegues, acciones administrativas, SFTP, panel, cron, copias y seguridad.
Los archivos copiados pueden conservar fechas antiguas y los ZIP asignar la hora de extracción. Una restauración puede hacer que todo parezca nuevo.
No encontrar log no demuestra malware: quizá caducó la retención.
Comprueba desfase entre servidor web, base, CDN y panel. Convierte a una cronología común sin modificar los originales. Diez minutos pueden separar falsamente un POST del archivo creado.
Anota también si una copia o herramienta de seguridad tocó permisos sin cambiar contenido. Esto explica cambios de metadatos y evita atribuir al atacante una operación legítima posterior al incidente.
Compara contenido con fuentes fiables
Verifica checksums del núcleo y compara plugins y temas con el paquete exacto. Contrasta código propio con repositorio.
Los hashes son más fuertes que la fecha. Un archivo reciente idéntico al paquete es explicable; uno antiguo con hash malicioso sigue infectado.
No sustituyas temas propios por diferir del tema padre.
Cuando el proveedor no publique hashes, descarga el mismo paquete dos veces desde la fuente autorizada y conserva el ZIP de referencia. Para plugins comerciales, registra cuenta, versión y fecha; el mismo número de versión puede haber sido reemplazado silenciosamente por el vendedor.
Prioriza anomalías de alto riesgo
Revisa ejecutables en uploads, PHP raíz aleatorio, cambios en wp-config.php o .htaccess, mu-plugins desconocidos y dominios externos extraños.
Inspecciona estáticamente en cuarentena. No abras ni decodifiques públicamente.
Busca cadenas relacionadas en base y tareas; el tiempo de archivos no descubre persistencia en la base.
Construye una referencia repetible
Después de limpiar, crea un manifiesto de hashes para código confiable y documenta directorios escribibles esperados. Monitoriza cambios significativos, no cada caché.
Actualiza la referencia solo después de despliegue y validación aprobados; de lo contrario un archivo comprometido puede convertirse en “conocido”.
Conserva manifiestos con seguridad y excluye secretos. Revisa anualmente sus propietarios.
Valida la referencia sobre cada nodo o release activo. Una base creada solo desde un servidor limpio puede ocultar que otro origen mantiene archivos diferentes y alterna respuestas.
Cuándo hace falta más análisis
Solicita evaluación si hay grupos inexplicados, paquetes diferentes o varias webs con escritura compartida. Envía cronología y rutas censuradas, no ejecutables.
Una revisión profesional combina tiempo, procedencia, contenido, logs y comportamiento para mantener el trabajo legítimo y eliminar cambios maliciosos.