Scansione del Database per individuare Dati Malevoli
Dopo che il sito di un amico è stato hackerato, gli ho consigliato di ripulire tutto e ricominciare da zero così da essere sicuro che nessun file sia stato alterato.
Potrei scansionare il sito per lui con strumenti come grep e simili (Per iniziare: Grep e altri strumenti) ma mi sono chiesto come scansionare il database. E se qualche hacker avesse inserito del payload all'interno del database? Potrebbe essere qualcosa di semplice come XSS o addirittura codice PHP nel caso ci sia ancora qualche eval in esecuzione nel core (o c'era al momento dell'attacco).
Avete suggerimenti? Ho pensato di utilizzare query SQL con la funzione di confronto LIKE oppure è possibile utilizzare anche le REGEX. Ma forse qualcuno ha già fatto questo tipo di operazione o vuole farlo e ha alcune idee da condividere.
Ho letto che scaricare il database come file di testo e cercare al suo interno è un buon metodo. Puoi cercare con phpMyAdmin, ma è limitato. Dipende dalle dimensioni del database e da un buon editor di testo, ma puoi eliminare le revisioni di articoli/pagine prima di scaricare il database per ridurne le dimensioni. Oppure puoi scaricare poche tabelle alla volta.

Eliminare le revisioni prima della scansione mi sembra una buona strategia. Chiederò all'amico se ne ha ancora bisogno o meno. Hai qualche consiglio per le stringhe di ricerca effettive? Ma prima di chiedere, penso che dovrei fare i miei compiti e cercare su Google vulnerabilità note, devo averne anche linkate alcune dal mio blog.

Guarderei le solite stringhe eval(base64_decode
. E se visualizzi il sorgente del sito e vedi link spam, cerca quelli. http://sucuri.net/ tiene traccia delle stringhe di malware relative a WordPress

I miei siti su un account sono stati tutti infettati da uno script Decode_Base64 che ha contagiato molti file php, e nonostante abbia ripulito un sito, operazione che ha richiesto ore, è stato reinfettato poche ore dopo.
Alla fine ho scaricato la cartella wp-content/uploads e qualsiasi altro file aggiornato manualmente utilizzando una connessione ftp sicura.
Ho anche preso appunti/backup dei temi, plugin e altre personalizzazioni che avrei dovuto riapplicare.
Poi ho cambiato tutte le password dell'account/ftp, ho modificato manualmente le password del database/utente utilizzando phpMyAdmin, per negare l'accesso quando i siti sarebbero tornati online.
Successivamente ho cancellato TUTTO il codice Wordpress da TUTTI i siti e ho caricato invece un semplice file index.html che comunicava che i siti erano in manutenzione.
Ho controllato le cartelle WP-content/uploads per qualsiasi elemento che non fosse un'immagine o contenuto mio, cercando in particolare script (che non dovrebbero esserci).
Poi, ho scaricato l'ultima versione di WP, l'ho configurata per il database esistente con una nuova password e l'ho caricata sul server.
Ho effettuato l'accesso al sito, che a questo punto avrà solo Akismet attivo. Ho controllato e cancellato tutto ciò che non doveva esserci (pagine, post, link ecc.).
Ho installato un plugin di backup per assicurarmi di avere backup del database/cartelle.
Ho installato il plugin Bulletproof-Security (o simile) che crea file .htaccess protetti per te e ti indica come proteggere i tuoi file/cartelle. Ho seguito le sue raccomandazioni.
Infine, ho riapplicato gradualmente le mie personalizzazioni.
Se hai più domini, ripeti l'operazione per ciascuno.
Nel mio caso, stavo effettivamente pianificando di passare a un nuovo host, quindi dopo aver fatto tutto questo, ho salvato tutto sito per sito e li ho ricreati sul nuovo host, una volta sicuro che la vecchia versione ricostruita fosse pulita.
Buona fortuna e spero che questo possa esserti d'aiuto.
