Come verificare di aver completamente rimosso un hack di WordPress?

10 giu 2011, 15:31:42
Visualizzazioni: 17.9K
Voti: 110

Il mio blog WordPress per divertimento su http://fakeplasticrock.com (con WordPress 3.1.1) è stato hackerato - mostrava un <iframe> su ogni pagina in questo modo:

<iframe src="http://evilsite.com/go/1"></iframe>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 

Ho fatto quanto segue:

  1. Aggiornato a WordPress 3.1.3 tramite il sistema di aggiornamento integrato
  2. Installato Exploit Scanner (molti avvisi critici su file insoliti) e AntiVirus (questo mostrava tutto verde e pulito, quindi l'ho disinstallato dopo l'esecuzione)
  3. Cambiato la password di MySQL
  4. Cambiato tutte le password degli utenti WordPress
  5. Connesso via FTP e scaricato l'intero filesystem (non è grande, è un host Linux condiviso solo per WordPress)
  6. Confrontato il filesystem con un ZIP ufficiale di WordPress 3.1.3 e rimosso o sovrascritto tutto ciò che non corrispondeva

Sono abbastanza sicuro che:

  • tutti i file sul disco siano file ufficiali di WordPress 3.1.3
  • non ci siano file "extra" sul disco oltre al mio unico /theme, al plugin Exploit Scanner (appena scaricato), alla cartella /uploads e a qualche altro file previsto. Il mio altro plugin, wp-recaptcha, corrisponde alla versione ufficiale scaricata
  • Ho anche controllato il file .htaccess e non sembra esserci nulla di sospetto

confronto file wordpress 3.1.3 in Beyond Compare

Non ho toccato il database, ma faccio fatica a pensare come qualcosa nel database possa essere dannoso senza codice PHP speciale per farlo funzionare?

Il mio blog WordPress sembra ora a posto e libero da hack (credo), ma c'è altro che dovrei controllare?

1
Commenti

Dovresti mantenere il blog aggiornato. :)

fuxia fuxia
20 lug 2014 19:49:51
Tutte le risposte alla domanda 12
9
84

Hai identificato il vettore di exploit? Se no, potresti lasciarti aperto a futuri attacchi.

Altre cose da considerare:

  1. Cambia le password degli utenti amministratori di WordPress - fatto
  2. Cambia la password dell'account di hosting
  3. Cambia le password FTP
  4. Cambia la password dell'utente del database MySQL - fatto
  5. Cambia il prefisso delle tabelle del database
  6. Aggiorna i nonce/salt in wp-config
  7. Controlla i permessi di directory/file
  8. Blocca l'accesso alla navigazione delle directory, tramite .htaccess
  9. Esamina tutto nella voce del Codex Hardening WordPress
  10. Esamina tutto nella voce del Codex FAQ Il mio sito è stato hackerato
10 giu 2011 15:58:31
Commenti

scusa, ho dimenticato di menzionarlo -- ho naturalmente cambiato le password di WordPress. Ho aggiornato il post e spuntato la lista qui! Non riesco a pensare a nessun modo in cui potrebbero avere la mia password di hosting, o la password FTP, solo entrando in WordPress; quelle informazioni non sono da nessuna parte nel filesystem o nel database.

Jeff Atwood Jeff Atwood
10 giu 2011 16:18:09

Hai invertito il probabile vettore di exploit; non è probabile WordPress -> account hosting, ma piuttosto account hosting (tramite server o FTP) -> WordPress.

Chip Bennett Chip Bennett
10 giu 2011 16:20:28

Vorrei aggiungere "cambia il nome utente admin". Dovrebbe essere un must!

Bainternet Bainternet
10 giu 2011 16:26:00

@chip come mai? Le password di hosting e FTP non le ho letteralmente usate da 12 mesi (ovviamente le ho usate oggi), e sono ultra-casuali come assegnate dall'host.

Jeff Atwood Jeff Atwood
10 giu 2011 16:31:13

Il fatto che sia un host condiviso (potenzialmente) non ti espone a problemi?

Travis Northcutt Travis Northcutt
10 giu 2011 16:33:56

@Jeff alcuni exploit a livello server non li puoi controllare (a parte trovare un host migliore). Ma solo perché tu non hai usato le credenziali host/FTP non significa che qualcuno non le abbia rubate, accedendo al tuo account di hosting.

Chip Bennett Chip Bennett
10 giu 2011 16:36:49

C'è un exploit molto comune in circolazione in cui un malware infetta la tua workstation (o quella di un contractor), scava tra le password salvate nel tuo programma FTP preferito (o abilitato per FTP) e le invia all'attaccante, che poi compromette il tuo sito e lo utilizza per diffondere lo stesso malware ad altri webmaster. Questo è un modo comune in cui la tua password FTP viene rubata. Ciò che è particolarmente insidioso è che si diffonde attraverso siti normali come il tuo, non quelli loschi dove è più probabile che tu stia attento.

tylerl tylerl
10 giu 2011 17:09:03

Penso che tu abbia dimenticato di menzionare la scansione dei tuoi temi e plugin. Alcune persone li scaricano da siti dubbi, e molti di essi contengono già codice dannoso - comprese iniezioni SQL nel database (non sarà sufficiente disabilitarli o eliminarli).

krembo99 krembo99
9 feb 2014 10:50:43

Per tua informazione, se hai accesso alla riga di comando, WP-CLI ha un comando verify checksums che controllerà ogni file rispetto a wordpress.org

William Turrell William Turrell
4 apr 2015 11:58:00
Mostra i restanti 4 commenti
3
26

Guardando il messaggio di "navigazione sicura" di Google Chrome, stai ricevendo l'hack ".cc iFrame" che sembra diffondersi molto ultimamente. Penso che la versione 3.1.3 risolverà il problema, ma controlla il tuo file index.php nella radice del sito, è lì che continuava a colpirmi finché non ho aggiornato TUTTO e cambiato le password.

C'è un sacco di roba MOLTO subdola che le persone possono fare con iniezioni nei post e nei commenti. Puoi eseguire le seguenti query sul tuo database per aiutare a trovarne alcune. Ho bloggato il resto del mio "tracciamento" qui.

SELECT * FROM wp_posts WHERE post_content LIKE '%<iframe%'
UNION
SELECT * FROM wp_posts WHERE post_content LIKE '%<noscript%'
UNION
SELECT * FROM wp_posts WHERE post_content LIKE '%display:%'
UNION
SELECT * FROM wp_posts WHERE post_content LIKE '%<?%'
UNION
SELECT * FROM wp_posts WHERE post_content LIKE '%<?php%'
SELECT * FROM wp_comments WHERE comment_content LIKE '%<iframe%'
UNION
SELECT * FROM wp_comments WHERE comment_content LIKE '%<noscript%'
UNION
SELECT * FROM wp_comments WHERE comment_content LIKE '%display:%'
UNION
SELECT * FROM wp_comments WHERE comment_content LIKE '%<?%'
UNION
SELECT * FROM wp_comments WHERE comment_content LIKE '%<?php%'

Spero che questo ti aiuti!

10 giu 2011 16:00:39
Commenti

Aggiungerei SELECT * FROM wp_* WHERE comment_content LIKE '%<?%' e SELECT * FROM wp_* WHERE comment_content LIKE '%<?php%' per essere sicuri...

SeanJA SeanJA
10 giu 2011 16:04:40

Oh, un'ultima nota. Presumo che tu abbia Google Webmaster Tools collegato a questo dominio. Una volta che avrai pulito tutto, puoi inviare una richiesta dal tuo account webmaster tools per far riscansionare il sito a Google e rimuovere il messaggio di avviso. Di solito elaborano le richieste da webmaster tools entro un giorno. Altrimenti finisci nella "lista nera" per ben 90 giorni.

Dillie-O Dillie-O
10 giu 2011 16:06:09

Ho trovato un sacco di risultati ma è a causa degli iframe incorporati per Vimeo.

tooshel tooshel
10 giu 2011 16:19:22
6
20

Il database può contenere anche codice dannoso: account utente nascosti o valori che vengono stampati senza escape da qualche parte. Inoltre, controlla la tua directory di upload per file che non dovrebbero essere lì.

Oh, e cerca di capire come l'attaccante ha trovato la strada per entrare nel tuo sito. Su account condivisi spesso è l'intero server. Controlla gli altri siti sul server per blog o altre pagine hackerate. Leggi il tuo log FTP. Se non capisci come è successo, non puoi prevenire il prossimo attacco.

10 giu 2011 15:47:11
Commenti

lo scanner Exploit non troverebbe eventuali account utente nascosti?

Jeff Atwood Jeff Atwood
10 giu 2011 15:52:34

@Jeff Atwood non mi affiderei a quello. La tua tabella degli utenti non è così grande. Puoi leggerla facilmente senza alcun plugin.

fuxia fuxia
10 giu 2011 15:55:31

ho controllato la tabella wp_users e solo 2 righe, entrambe quelle previste.. niente di insolito nella cartella /upload (solo gif, png e jpeg)

Jeff Atwood Jeff Atwood
10 giu 2011 16:00:12

@Jeff Atwood Hai controllato i file o solo le estensioni? Tutti quei file sono elencati nella libreria multimediale?

fuxia fuxia
10 giu 2011 16:02:17

I file immagine sono un metodo abbastanza comune per il trasporto di payload. Vedi qui, e il Theme Review Team ha anche incontrato temi che utilizzano un exploit simile con TIFF.) Quindi, sì: controllerei ognuno, per assicurarsi che faccia parte della Libreria multimediale. (Scansione semplice di alto livello: controlla le immagini che non hanno dimensioni miniatura definite.)

Chip Bennett Chip Bennett
10 giu 2011 16:16:41

@Chip Bennet Grazie per la buona lettura su Otto - davvero incredibile quello che gli spammer provano ;)

TheDeadMedic TheDeadMedic
10 giu 2011 19:03:52
Mostra i restanti 1 commenti
1
13

Spiacente di sentire che sei stato hackerato - sembra però che tu abbia fatto un ottimo lavoro di ripristino!

Il tuo filesystem sembra in ottime condizioni, non credo ci sia altro che tu possa fare qui.

Penso che Exploit Scanner lanci un avviso se trova script, iframe, codice PHP (sebbene pericoloso solo se eseguito con eval) o altro codice insolito nel tuo database.

Non sono sicuro se controlli tabelle diverse da post e commenti, potrebbe valere la pena dare un'occhiata a /wp-admin/options.php per vedere se noti qualcosa di strano.

Consiglio anche di controllare la tabella degli utenti in un client MySQL (potrebbero esserci utenti nel database non visibili nell'amministrazione).

10 giu 2011 15:49:16
Commenti

sicuramente una buona idea eseguire una query MySQL sulla tabella degli utenti per assicurarsi che non ci sia nulla di inaspettato, e l'ho fatto. Ottimo consiglio!

Jeff Atwood Jeff Atwood
6 lug 2011 07:10:03
1

Controlla gli strumenti per i webmaster di Google per due cose:

  • verifica che il tuo sito non sia stato segnalato come compromesso e, in caso affermativo, richiedi una nuova verifica
  • controlla il tuo sito come Googlebot e verifica che non venga inserito spam visibile solo a Googlebot - un esempio è l'hack WP Pharma

Inoltre, reimplementerei il tema o lo controllerei con estrema attenzione. Poche righe di PHP possono ridefinire le funzioni core di PHP in modo che estraggano codice dannoso dal database, in particolare dalle tabelle chiave/valore wp_options

10 giu 2011 16:10:41
Commenti

sì, ho sicuramente ripresentato il sito tramite Google Webmaster Tools, e ora sembra essere "ripulito".

Jeff Atwood Jeff Atwood
11 giu 2011 00:38:30
0

Cerca nel database tramite phpmyadmin per "iframe" o esegui il dump del database e cerca il testo.

E controlla gli utenti invisibili nella tabella degli utenti; ho visto utenti nelle tabelle che non comparivano in WP Admin >> Utenti.

Clean Options « WordPress Plugins mostrerà quali dati residui di vecchi plugin, potenzialmente vulnerabili, sono rimasti nel database.

Anche il tuo tema manca del tag <head>, quindi lo controllerei nel caso tu abbia modificato il tema per rimuovere link dannosi.

E le solite verifiche: Come trovare una backdoor in un WordPress hackerato e Hardening WordPress « WordPress Codex

10 giu 2011 15:58:58
1

"C'è qualcos'altro che dovrei controllare?" Devi esaminare il tuo processo e scoprire come sei stato violato (quasi sicuramente perché non hai applicato le patch in tempo o correttamente) e risolvere anche quello, non solo i sintomi.

10 giu 2011 16:00:32
Commenti

Dubito che abbia a che fare con il mancato aggiornamento di WordPress (sebbene sia possibile, non è probabile). WordPress stesso è quasi mai il vettore dell'exploit. I vettori abituali sono la configurazione non sicura dell'host e le credenziali FTP rubate.

Chip Bennett Chip Bennett
10 giu 2011 16:03:42
0

Mi è successo una volta, a causa di una falla su mediatemple. Ho dovuto scrivere un plugin per controllare il database alla ricerca di link iniettati. Puoi trovarlo qui come GitHub gist.

È abbastanza intuitivo, ha diversi passaggi che forniscono feedback e ricontrolla il database dopo che hai finito.

Buona fortuna!

10 giu 2011 16:01:11
0

Ho dovuto risolvere un hack molto simile su uno dei siti dei miei clienti.

Erano presenti script malevoli nel filesystem (codice php con base64_decode). Inoltre, le tabelle 'posts' e 'comments' del database erano state compromesse e il codice iframe era sparso anche tra quei dati.

Consiglierei almeno di eseguire alcune ricerche nel database, giusto per sicurezza. :)

10 giu 2011 16:11:06
0

Controlla i tuoi plugin! Finora quest'anno ci sono stati 60 exploit rilasciati da plugin .org, sospetto che il numero reale sia molto più alto dato che nessuno lo fa a tempo pieno.

Hai elencato di avere solo un plugin, beh aveva una falla di sicurezza (non sono sicuro da quanto tempo fosse presente, e potrebbe non essere il vettore).

wp-recaptcha-plugin
L'exploit è stato rilasciato: 2011-03-18
Versione exploit: 2.9.8

L'autore ha dichiarato di averlo riscritto con la versione 3.0, ma non c'è menzione della patch di sicurezza.

http://www.wpsecure.net/2011/03/wp-recaptcha-plugin/

Change log: http://wordpress.org/extend/plugins/wp-recaptcha/changelog/

11 giu 2011 04:43:24
0

Utilizzo un server cloud e ho numeri di porta SSH casuali e bizzarri, senza alcun FTP. Le password sono estremamente difficili da violare. L'accesso root è completamente negato. Sono d'accordo sul fatto che WordPress non sia il tuo colpevole. Un'altra cosa da verificare sono le sessioni FTP che non si chiudono, virus sul tuo computer personale (ricorda che puoi caricare un file sul tuo sito e chiunque carichi quel file può contrarre lo stesso virus), inoltre non conservare le tue password su siti pubblici o privati, scrivile sempre su carta, mai su un documento Word o su un blocco note.

Infine, chiedi al tuo host se hanno recentemente subito una violazione, poiché dovrebbero avere un firewall configurato.

11 giu 2011 05:50:21
0

Controlla la data dei tuoi file. Nessun file dovrebbe avere una data di modifica più recente del tuo ultimo aggiornamento/installazione!

Ma anche questo può essere falsificato. L'unico modo per essere sicuri è confrontare (ad esempio con un confronto di hash) tutti i file con quelli dell'installazione originale.

11 giu 2011 12:49:56