Evaluación inicial sin contraseñas Presupuesto antes de intervenir Especialista responsable de principio a fin

Files Plugins Themes

Cómo encontrar archivos recientes sin tratar cada cambio como malware

Usa fechas de archivos como pistas y correlaciona actualizaciones, caché, logs y paquetes verificados antes de concluir que hay malware.

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.

ANTES DE ENVIAR LA SOLICITUD

Preguntas frecuentes.

¿Pedís contraseñas en el formulario?+

No. El formulario público nunca solicita accesos. Los datos seguros se piden únicamente después de aprobar el alcance y el presupuesto.

¿Quién revisa la incidencia?+

La solicitud llega a Jordi Ensenyat, fundador de Code Barcelona y especialista WordPress con más de 15 años de experiencia.

¿Se cambia algo antes del presupuesto?+

No. Primero se revisan los síntomas visibles y se define el alcance. La intervención empieza tras la aprobación y con una vía de vuelta preparada.

¿Trabajáis con webs en inglés y fuera de España?+

Sí. WP Repair atiende incidencias WordPress y WooCommerce en inglés y español, con servicio remoto.

Evaluar mi incidencia