|
|
Инструкции, модификации и статьи для DLE Сборник инструкции, модов и статей по движку DataLife Engine |
|
Опции темы | Поиск в этой теме |
30.01.2011, 17:56 Вверх | #1 | |||||
Коварный тип
|
Защищаем свой сайт DLE от кулхацкеров
Защищаем свой сайт DLE от кулхацкеров
Преамбула: Нажми для просмотра
Написать эту статью меня поддёрнул вчерашний инцедент, короче хакнули один из моих сайтов. Залили шел, вставили ссылок в шаблоны и подключили вредоносный код в шаблон. Сайт просто утонул и гугл с яндексом на него "обиделись", посещуха упала в 10 раз. Мне конечно стало обидно и я решил разобраться с вопросом защиты своего сайта и заодно поделиться своим опытом.
Итак, хакнули у меня сайт на DLE 8.5, я решил попробовать поискать причины и методы взлома сайта. Для того чтобы понять как защищаться, надо сначала узнать как сайты ломают. Поэтому я полез на хацкерские ресурсы, покурил много мануалов и даже наткнулся на статьи в которых описывалось как что делать, что полностью совпадало с тем что мне сделали. Итак, для начала я вам в кратце расскажу что обычно делают взломщики, если это интересно - читайте материалы под спойлером, т.к. в целом темы защиты не касается. Как обычно ломают сайты: Нажми для просмотра
Всем известно что DLE скрипт самый распространенный и поэтому его постоянно проверяют на уязвимости всякие кулхацкеры и некоторым удается найти дыры о которых они молчат. Большинство же "школьных" кулхацкеров пользуются материалами которые есть в паблике, а именно они заливают Шелл (shell). Для этого обычно нужны права админа которые можно получить каким то хитрым способом, который я не нашел. Дальше в админке они заходят в настройки сайта и в меню загрузки файлов добавляют расширение php и загружают через стандартный аплоадер php файлы (а именно шел). Через него они уже могут свободно оперировать файлами вашего движка и базой. Ну естественно теперь они получают полную свободу действий. На этом собственно я пока и закончу мой мини файк о том как ломают.
Вот пример одного из старых шелов:
Обзор уязвимостей DataLife Engine:
Осмыслив выше описанное я понял что для наибольшего противодействия заливке шела нужно закрыть доступ к возможности выполнения скриптов в папке аплоад, для этого в корень папки upload нужно вложить файл: .htaccess с содержимым: Код:
<FilesMatch ".*"> Order allow,deny Deny from all </FilesMatch> <FilesMatch "\.(jpg|gif|png|xml)$|^$"> Order deny,allow Allow from all </FilesMatch> Дальше, подобный файл стоит затолкать в папку с шаблонами, только внести в него дополнительно tpl, css, html. Если у Вас DLE 9.х и старше, то на папку upload обязательно поставьте права CHMOD 0777, это автоматически запрещает выполнение php скриптов в данной папке на уровне самого скрипта. Допустим мы не дадим теперь залить им шел, но они могут вставить в код шаблона какой нить левый скрипт или навтыкать ссылок через редактор шаблонов дижка. Лично я не фанат этого редактора и редактирую все шаблоны всегда из под FTP, поэтому попрощаться с этим редактором мне не страшно и я просто беру и ставлю на все tpl файлы шаблона права CHMOD 444, этим самым я запрещаю редактировать файлы шаблона абсолютно всем и из скрипта уже ничего не сделать. Так, эту дырочку мы тоже залотали. Что еще может сделать взломщик ? забрать базу данных. Он зайдет в менеджер управления базой данных, сделает бэкап базы и сольет ее, если версия вашего DLE ниже чем 9.0. Что делать ? да все просто, нужно в папке backup разместить .htaccess с содержимым: Код:
Order Deny,Allow Deny from all Защита файла админпанели: Идем дальше, что еще стоит защитить. Стоит спрятать панель администратора, переименуйте файл admin.php во что нибудь еще и укажите в настройках системы новое имя файла admin.php. Сохраняемся, панель админа перепрятали. Так же если у Вас статический IP, то можно сделать ход конем и отсечь доступ к панели всем кто захочет в нее прорваться, для этого в конец корневого файла .htaccess прописываем: <Files "admin.php"> Order Deny,Allow Deny from all Allow from 95.106.70.220 </Files> Где admin.php - имя файла админки, а 95.106.70.220 - Ваш IP. В этом случае в адмику зайдет только владелец IP 95.106.70.220, остальные получат 500-ую ошибку сервера. Если у Вас динамический IP адрес, то страшного ничего нет. Заходим по ссылке http://2ip.ru/whois/ и смотрим информацию о своем IP, в самом конце находим строку типа: route: 95.106.0.0/17 , это диапазон динамических IP адресов которые есть у Вашего провайдера. нужно скопировать этот диапазон и поставить его вместо статического IP, например вот так: <Files "admin.php"> Order Deny,Allow Deny from all Allow from 95.106.0.0/17 </Files> Теперь в админку можно зайти с IP адресов Вашего провайдера, тут шанс взлома резко падает ) Запрет запуска любых левых скриптов (повышаем надежность защиты): Открываем корневой .htaccess и дописываем в него строчки: Код:
<FilesMatch ".(php|h|c)$"> Order allow,deny Deny from all </FilesMatch> <FilesMatch "(index.php|go.php|ajax.php|download.php)$|^$"> Order deny,allow Allow from all </FilesMatch> Код:
<FilesMatch "(index.php|go.php|ajax.php|download.php|admin.php)$|^$"> Order deny,allow Allow from all </FilesMatch> +++++++++++++++ Так же сидел и думал, а если все же этим товарищам удастся попасть в админку и каким нить чудным способом залить мне шел или что то испортить. Для того чтобы залить шел, им нужно будет разрешить к загрузке тип файлов и добавить php. Я подумал и придумал. Короче говоря я выставляю все настройки в Основных настройках системы так как мне надо и я понимаю что изменю теперь тут может что нить раз в 100 лет, т.к. я обычно настройки не меняю. Теперь я перекрываю кислород злоумышленикам, а именно. Я иду в папку engine/data/ и ставлю на файл config.php и dbconfig.php права 444, по рекомендациям защиты скрипта я выставляю на саму папку data права 765 (это взял тут). Все, теперь настройки системы из адмнки менять нельзя, и соотвественно тип файлов php добавить не получится. Дальше, на счет шаблонов. Ставить шаблоны надо только проверенные и проверять их самому перед установкой. Об этом я подробно расписывал в статьте: Проверка шаблонов перед их использованием и видео уроке Чистка шаблонов от внешних ссылок и скриптов на примере шаблона DLE. Дальше, после того как вы переименуете файл админки - зайдите в Антивирус скрипта, сделайте тестирование, там долен быть показан новый файл админки как неизвестный системе файл. Вам предлагается сделать новый снимок - НИКОГА НЕ ДЕЛАЙТЕ ЭТОГО. Почему ? Потому что Вы можете контролировать изменения в ФС, а именно. Если к примеру кулхацкерам все же удастся залить вам шел, то зайдя в антивирус вы его найдете как неизвестный системе файл. А если злоумышленик зальет шел и решит его скрыть от вас сделав новый снимок системы - то он скроет и свой шел и ваш новый файл админки и при очередном сканировании если вы не видите свой файл админки как неизвестный файл - значит что кто то делал снимок и стоит начать копать скрипт. Полезные советы: 1. После того как вы закончили работать с ftp - обязательно выключайте аккаунт ftp или удаляйте его, если нельзя выключить - это дополнительная защита. 2. Выбирайте нормальных хостеров, из слов одного хакера с сайта античат, он залил шел на сайт через саппорт хостера, дав хостеру всего 10 WMZ. Так что ШКОЛОХОСТ - это не наш выбор. Автор инструкции: Serberg Статья написана только из собственных соображений и обобщения полученной по взлому информации. Если найдете недочеты - пишите. Если помог Вам - жми спасибку. При копировании статьи - ссылка на оригинал обязательна. Писал долго и нудно, а перед этим много читал. Я думаю ее заслужил ) |
|||||
Последний раз редактировалось Serberg; 06.09.2011 в 18:18.. |
||||||
07.02.2011, 01:20 Вверх | #5 | |||
Новичок
|
доброго времени суток, меня заинтересовала вот эта тема http://www.bormotuhi.net/showthread.php?t=11279
так как у меня на сайте есть подобного рода проблема. просмотреть я не могу так стоит вот тая надпись: Обзор уязвимостей DataLife Engine: Скрытый текст требуется (1 сообщение(ий), сейчас у вас 0): У вас нет прав чтобы видеть скрытый текст, содержащейся здесь. подскажите пожалуйста куда мне отправить 1 сообщение? |
|||
25.02.2011, 19:42 Вверх | #10 | |||
Коварный тип
|
Добавил в первый пост инфу о методе защиты админки с привязкой доступа на определенный IP.
|
|||
Последний раз редактировалось Serberg; 25.02.2011 в 19:46.. |
||||
25.02.2011, 19:57 Вверх | #11 | |||
Знаток
|
Здесь вроде есть,
Доступ в данную директорию будет разрешён только пользователю с ip xxx.xxx.xxx.xxx PHP код:
|
|||
08.04.2011, 12:22 Вверх | #13 | |||
::.V.I.P.::
|
Для версий начиная с 9 добавилась опция безопасности.
Настройка системы - Настройки безопасности скрипта - Максимальное количество ошибочных авторизаций Укажите максимальное количество ошибочных вводов пароля на сайте, после превышения данного лимита, для IP пользователя будет установлена автоматическая блокировка на 20 минут. Данная мера позволяет предотвратить подбор паролей злоумышленниками к аккаунтам пользователей. Если вы не хотите устанавливать данное ограничение, то оставьте поле пустым. Можно добавить в мануал. |
|||
Cказали cпасибо: |
24.04.2011, 19:13 Вверх | #18 | |||
Пользователь
|
Статья очень полезная, я многое из неё взял для защиты своего сайта, хотя с обновлением до 9.2 версии дле, там уже немного есть защиты. Но основное конечно же взято из статьи. спасибо.
|
|||
Метки |
datalife engine, dle, безопасность, взлом, защита |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ON-LINE вещание чего либо на свой сайт | apelisin | DataLife Engine | 5 | 11.10.2010 20:11 |
Google Поисковик. Как добавить туда свой сайт ? | PaSaD | SEO (поисковая оптимизация сайта) | 3 | 19.01.2010 17:56 |
[Статья] Свой сайт и его администрирование (основные моменты) | Serberg | vBulletin 3.х | 2 | 28.05.2009 06:30 |
Создай Свой Сайт | Spartak | Сайтостроение | 35 | 11.05.2009 13:44 |