Neteges un fitxer PHP i reapareix quan es desen els ajustos d’un connector o s’executa una tasca. El payload pot estar emmagatzemat en una opció, plantilla, snippet o taula pròpia mentre el connector escriu aquestes dades en una memòria cau o un fitxer generat.
Netejar només el sistema de fitxers deixa intacta la font. Esborrar files de la base sense identificar-ne la funció pot destruir una configuració legítima.
Construeix una cronologia del desencadenant
Registra quina acció precedeix la reescriptura: desar ajustos, regenerar memòria cau, executar cron, compilar un constructor visual o rebre una visita. Anota la ruta i el hash del fitxer abans i després.
Conserva un bolcat de la base i el directori del connector abans de repetir el desencadenant en una còpia aïllada. No continuïs generant fitxers maliciosos a producció.
Alinea les marques de temps de PHP, la base de dades i els logs d’accés en una mateixa zona horària.
Identifica el component que escriu
Busca el nom i el directori del fitxer generat dins del codi verificat del connector o tema. Determina quin callback l’escriu i quin valor de la base proporciona el contingut.
Connectors legítims de memòria cau o minificació generen derivats PHP o JavaScript, de manera que escriure fitxers no és maliciós per si mateix. Compara el valor emmagatzemat amb els ajustos esperats i investiga com va entrar a la base.
No executis la sortida generada durant l’anàlisi.
Localitza de manera segura la font a la base
Utilitza consultes de només lectura o eines que entenguin WordPress per buscar una cadena distintiva del payload, un domini extern o el nom de l’opció. Evita cerques genèriques que retornin contingut de clients.
Inspecciona opcions, entrades, ginys, blocs reutilitzables, taules de connectors de snippets i arguments d’accions programades. Protegeix els bolcats perquè poden contenir dades personals i credencials.
Exporta la fila concreta abans de canviar-la, conservant la serialització i la codificació.
Determina si l’escriptor està compromès
Compara el connector amb el paquet verificat. Un connector net pot compilar fidelment una plantilla maliciosa desada a la base; un connector modificat pot injectar codi encara que els ajustos emmagatzemats siguin correctes.
Revisa la versió, l’origen de l’actualització, les accions administratives i l’historial de vulnerabilitats. Comprova si el formulari d’ajustos no tenia control de capacitats, nonce o validació d’entrada.
Corregeix tant les dades com la ruta de codi. Eliminar-ne només una part permet que la infecció torni.
Correlaciona escriptures quan hi hagi registres
Els logs d’auditoria gestionats o el registre binari de MySQL poden mostrar quan va canviar un valor i quin usuari de base ho va fer. Consulta el proveïdor abans d’activar traces detallades: poden afectar el rendiment i capturar consultes sensibles.
WordPress sol connectar-se amb un únic usuari d’aplicació, així que aquest nom no identifica necessàriament una persona. Correlaciona l’hora amb els logs web i administratius i amb els callbacks de l’aplicació.
Conserva únicament els esdeveniments rellevants i evita incloure dades de clients a l’informe.
Neteja sense corrompre la configuració
Utilitza el mètode d’ajustos o restabliment admès pel connector quan existeixi. Per modificar un valor concret, treballa amb una còpia prèvia i preserva les estructures serialitzades mitjançant les API de WordPress.
Elimina només camps o files confirmats com a maliciosos. Reconstrueix els fitxers generats a partir de dades revisades o reinstal·la el connector des d’un paquet verificat.
No executis mai un REPLACE SQL massiu sobre opcions serialitzades: canviar la longitud d’una cadena pot impedir-ne la deserialització.
Revisa comptes i altres persistències
Inspecciona administradors, contrasenyes d’aplicació, cron, accés SFTP o al panell i webs veïnes. Una sessió administrativa robada pot tornar a inserir el valor a la base.
Rota les credencials afectades després d’assegurar els dispositius. Revisa els logs per atribuir el canvi d’ajustos i elimina automatitzacions desconegudes.
Comprova usuaris i accés remot de MySQL si és possible un compromís directe de la base.
Verifica el cicle complet
Posa en quarantena el fitxer generat, neteja la font a la base i activa la regeneració legítima en un staging aïllat. Confirma que la sortida coincideix amb el codi esperat i revisat.
Repeteix execucions programades i desaments d’ajustos. Després monitoritza hashes i valors de la base a producció durant més temps que l’antic interval de retorn.
Quan cal ajuda especialitzada
Demana una avaluació quan hi hagi opcions serialitzades, connectors de snippets o PHP generat. Comparteix noms d’opcions o taules i hashes, però censura els valors.
La reparació ha de netejar l’emmagatzematge i l’escriptor, conservar la configuració legítima i demostrar que la regeneració normal ja no pot recrear el malware.