LINUX.ORG.RU
ФорумAdmin

Взломали сайт на движке Joomla


0

1

Закинули скрипт reset.php (The Kabus - Sh3ll) и сменили пароль админа сайта.
В связи с этим есть несколько вопросов. Владельцем сайта есть www-data, злоумышленник может прочитать конфигурационный файл в котором хранятся логин и пароль к базе данных.

Вопрос 1: как спрятать логин и пароль к базе, что б злодей не узнал его?

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

Вопрос 2: как защитить соседние сайты?

Есть ли утилита, которая может следить за файлами сайта и в случае изменения/удаления/добавления будет вести учёт и отправлять его админу?

Спасибо!

Вопрос 1: как спрятать логин и пароль к базе, что б злодей не узнал его?

зависит от настроек того на чём крутится и где лежит

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

Вопрос 2: как защитить соседние сайты?

утилиты основанные на inotify

guilder
()

1. если шелл уже залили - никак

2. suphp/php-cgi+suexec/mpm_itk на выбор

утилита - tripwire хотя бы

leave ★★★★★
()
Ответ на: комментарий от guilder

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

Вопрос 2: как защитить соседние сайты?

утилиты основанные на inotify

inotify не защитит от изменения.

Deleted
()
Ответ на: комментарий от Deleted

не ту строку процитировал

Есть ли утилита, которая может следить за файлами сайта и в случае изменения/удаления/добавления будет вести учёт и отправлять его админу?

guilder
()
Ответ на: комментарий от leave

> если шелл уже залили - никак

есть методы защититься от залития шелла? или тут уже зависит от метода взлома?

suphp/php-cgi+suexec/mpm_itk на выбор


я так понимаю можно создать для каждого сайта по пользователю и использовать suexec/mpm_itk?

SlavikSS ★★
() автор топика

Главным вопросом остаётся вопрос N1, конфигурационный файл лежит к примеру site.com/configs/config.xml
Логин и пароль не шифрованные, злоумышленнику не составит труда слить или испортить БД!

Вопрос 1: как спрятать логин и пароль к базе, что б злодей не узнал его?

SlavikSS ★★
() автор топика
Ответ на: комментарий от SlavikSS

Да. Создаете структуру каталогов вида /home/userX/site, развешиваете пермишены, и радуетесь. В случае mpm_itk проще всего, но он есть не во всех дистрах.

leave ★★★★★
()
Ответ на: комментарий от SlavikSS

Вопрос 1: как спрятать логин и пароль к базе, что б злодей не узнал его?

а) положить конфиг в config.php, который при внешнем запросе обрабатывается интерпретатором и показывает красивую пустую страницу

б) в .htaccess вписать

<Files config.xml>
Order allow,deny
Deny from all
</Files>

leave ★★★★★
()
Ответ на: комментарий от SlavikSS

есть методы защититься от залития шелла? или тут уже зависит от метода взлома?

для начала отключить в php.ini, если возможно, allow_url_fopen() и все функции для работы с сокетами;

можно поставить mod_security, но тут уже нужны знания, чтобы его грамотно настроить и оттюнить

leave ★★★★★
()
Ответ на: комментарий от leave

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

SlavikSS ★★
() автор топика
Ответ на: комментарий от SlavikSS

Уже никак. Гипотетически, можно применить симметричное шифрование, а ключ захардкодить в за-zend'енном скрипте, но это все равно лишь немногим усложнит жизнь взломщику.

leave ★★★★★
()
Ответ на: комментарий от Frakhtan-teh

И я бы еще в сторону расширенных атрибутов доступа к файлам посмотрел, если на сервере ext* файловая система, чтобы код не напортили, да по хтакцесам своих редиректов не понаставили.

Frakhtan-teh ★★
()
Ответ на: комментарий от Frakhtan-teh

> http://www.ioncube.com/

Если у взломщика есть доступ к серверу, то не поможет: делаешь require('configuration.php'), потом print_r(new JConfig()). Как-то так.

http://www.php.net/manual/en/ini.core.php#ini.open-basedir

curl с использованием протокола file:// позволяет это обойти. Кроме него есть еще много способов.

sjinks ★★★
()

> Вопрос 2: как защитить соседние сайты?

Если сайты живут в /hone/<username>/<sitename>:

chmod 0711 /home/
chmod 0700 /home/*

и использовать mpm_itk.

Для каждого сайта отдельный пользователь.

sjinks ★★★
()
Ответ на: комментарий от sjinks

curl vs. open_basedir

http://www.php.net/manual/en/ini.core.php#ini.open-basedir

curl с использованием протокола file:// позволяет это обойти.

Тут написано, что это проблема закрыта ещё в 2005 году.

Кроме него есть еще много способов.

Было бы очень интересно про них послушать.

a_eto_on
()
Ответ на: curl vs. open_basedir от a_eto_on

> Тут написано, что это проблема закрыта ещё в 2005 году.

Ыыы… Не верьте всему, что пишут. В 2009 еще был баг с «file:file:////etc/passwd». Погуглите, найдёте эксплойт для 5.2.9.

Было бы очень интересно про них послушать.

http://www.google.ru/search?q=open_basedir+bypass

Найдёте и для 5.3.x.

sjinks ★★★
()
Ответ на: комментарий от a_eto_on

> На работу mpm_itk нареканий нет?

Не было. Правда, мы с него свалили на nginx + php-cgi + самописный Zend Extension, который ставил нужный UID/GID для каждого пользователя (в зависимости от UID/GID document root).

sjinks ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.