Fitxers o usuaris reapareixen a intervals encara que no hi hagi cap administrador actiu. Un esdeveniment de WP-Cron, Action Scheduler o del cron del servidor pot executar el mecanisme de persistència.
No esborris tots els esdeveniments desconeguts: WooCommerce, les còpies, el correu i les actualitzacions depenen de tasques programades legítimes.
Relaciona la recurrència amb l’horari
Crea una cronologia dels canvis i compara-la amb els intervals de les tasques. WP-Cron es pot retardar: en webs amb poc trànsit, un esdeveniment venç però no s’executa fins que arriba el visitant següent.
Llista els esdeveniments des d’un entorn autoritzat:
wp cron event list --fields=hook,next_run_gmt,next_run_relative,recurrence
Desa la sortida abans de modificar res i no forcis l’execució de hooks sospitosos.
Atribueix cada hook qüestionable
Busca el nom i el callback en fonts verificades. Comprova que el component propietari estigui actiu, mantingut i tingui una raó funcional per programar-lo.
Noms aleatoris, callbacks situats a uploads, descàrrega de codi remot i tasques sense propietari mereixen una revisió. Un esdeveniment amb nom legítim també pot estar segrestat mitjançant un callback modificat.
Protegeix els arguments exportats perquè poden incloure dades personals, tokens o altres secrets.
Inspecciona Action Scheduler per separat
WooCommerce i molts plugins utilitzen Action Scheduler en comptes de WP-Cron. Revisa les accions pendents, fallides i recurrents, i també els hooks, grups i logs.
No purguis una cua gran: podria contenir pagaments, subscripcions, webhooks, correus o actualitzacions d’estoc.
Conserva l’acció maliciosa com a evidència, elimina només la persistència confirmada i repara el codi que la registrava.
Comprova el cron del servidor
cPanel, Plesk i un VPS poden executar PHP o cridar URL fora de WordPress. Exporta els comandaments i registra’n l’usuari, l’interval i, quan sigui possible, la data de creació.
No executis un comandament desconegut ni visitis la seva URL. Conserva’l com a text i examina el fitxer referenciat fora de línia. Revisa webs veïnes perquè una sola tasca pot apuntar a diverses arrels.
Inclou temporitzadors del sistema, automatitzacions del panell i scripts de còpia o desplegament. Resol les rutes reals: un enllaç simbòlic o una carpeta compartida pot fer que una tasca escrigui en una altra instal·lació. Registra propietaris i permisos sense alterar-los durant la recollida d’evidències.
Elimina el registrador abans que l’esdeveniment
Si el codi programa la tasca en cada petició, esborrar primer l’esdeveniment només farà que torni. Contén l’incident, conserva la mostra i elimina o substitueix el registrador amb una versió obtinguda d’una font fiable.
Després desprograma el hook i els arguments exactes amb eines segures. Esborra opcions o transients relacionats només després d’atribuir-los.
No afegeixis un nou script de neteja a producció sense revisió i còpia prèvia de la base de dades.
Inspecciona les dependències externes
Un hook de nom legítim pot tenir un callback alterat que descarrega instruccions o llegeix un payload de la base. Rastreja’l estàticament i registra dominis, temps d’espera i destinacions.
Bloquejar un domini confirmat pot contenir temporalment l’activitat, però no neteja la web: el codi pot canviar de domini. Elimina el callback compromès i revisa la resta d’esdeveniments del mateix component.
Restaura un cron controlat
Confirma que continuen funcionant publicacions, actualitzacions, còpies i tasques de WooCommerce. Si utilitzes cron de sistema amb DISABLE_WP_CRON, verifica el runner abans d’activar o modificar la constant.
Escalona escanejos i còpies pesants, però no retardis comandes o subscripcions sense entendre’n l’impacte. Documenta la referència esperada d’horaris, propietaris i freqüències.
Demostra que la tasca no torna
Monitoritza esdeveniments, fitxers i usuaris durant diversos intervals anteriors. Prova tant el cron activat per visitants com el runner autoritzat.
Busca als logs intents de cridar la ruta eliminada i confirma que no apareix un hook equivalent amb un nom diferent.
Compara la referència neta després de trànsit real, una actualització de plugins i el processament normal de comandes. Revisa tasques pendents, completades i fallides: una persistència pot executar-se una vegada, esborrar la seva fila i deixar un altre esdeveniment de relleu. Si un callback falla, comprova que no hagi creat parcialment cap fitxer, usuari o fragment a la base.
Quan cal una neteja especialitzada
Demana ajuda si els hooks reapareixen, hi ha callbacks ofuscats o la cua conté processos de comerç electrònic. Envia noms i hores amb els arguments censurats.
Una neteja completa elimina l’esdeveniment, el codi que el registra i la via d’accés que va introduir tots dos.